Archive for the ‘Seadragon Philosophy’ Category


Seadragon Philosophy: The User is Never Lost

December 28, 2009

Welcome back from the Holidays, the Seadragon team hopes yours were pleasant.  Looking ahead to the new year, we continue with another post in our fledgling series on the Seadragon Philosophy.  Previously, we posited that an ideal experience will never cause the user to wait, here we submit a complementary idea that the user should never be lost.

The user never getting lost has to do with visual continuity and spatial coherence. For instance, when we zoom in and you need higher resolution data, we keep the low-res data while we wait and smoothly blend the high-res in, unlike the “pop” of tiles you see on, say, Google Maps.  In this particular case, this technique also serves to help the user never to wait; not only are we allowing them to move at their leisure, but we always provide visual cues as to where they are and what they are looking at.

Never being lost can also mean constraining the experience.  In Seadragon Ajax, we limit your zoom out so that you always have a meaningful image on the screen.  On zoom in, we don’t let you go too far past a 1:1 pixel ratio.  We also implement “hard” boundaries on the screen; if you try to drag an image off of the screen, it will bounce back in.  We do this because we never want the user to wonder where their image went, or what exactly they are looking at.

There are other tricks you can use to try and ensure your user always knows where they are in the experience.  Things like providing a mini-map that details what and where you are currently viewing is certainly one way.  A slider to indicate zoom level (as in both Bing and Google Maps on the web) is also a nod in this direction.  These are decent measures, to be sure, but we tend to prefer the other tricks mentioned above to keep the user informed and aware.  The Bing Maps iPhone experience being an excellent example of a zoom situation in which you are never lost and never have to wait.

Kevin Hanes