As you are probably aware, Seadragon’s schtick is zooming technology and user interface experiments. We have also done some work in creating design patterns to help with best practices and interaction. Here in the office we also talk a lot about how to apply a third idea to our projects: a Seadragon philosophy. In fact, our technologies (Silverlight Deep Zoom, Seadragon Mobile, Seadragon Ajax, etc) can all be seen as manifestations of our philosophy; our vision brought to reality through design and technology. In this vein I thought I’d post about this technological coda, instead of code, in a series of posts from time to time.
One of the core tenets of our philosophy is that the user should never have to wait for the technology. Though a simple idea, take a moment to think about all of the times you’ve wanted to do something on a computer and been unable until it finished whatever task it was working on. Moving email, loading a document or image, starting a program, a piece of software locking up; all of these things cause you to wait. In Seadragon, we try to make every experience wait-free.
One way to think about the user never waiting is that the UI thread is never blocked. Even in the middle of a lengthy process, we’re still accepting and responsive to user input. This is expressed in Seadragon by allowing you to zoom and pan constantly, even when we haven’t loaded all of the imagery for the current view. In addition, we try to give you something to work with as soon as possible, so even while we’re waiting for the high-res data, we load a little low-res data to show in the meantime. You always have something to look at and you always have control.