I am NOT responsible for the art or narrative, just for putting it online with an OpenSeadragon-based implementation.
Yeah, I think it could be better. I had a lot of trouble getting it right, and it required hacking with OpenSeadragon a bit to adjust from the default easing, which was meant for applying to user-drag actions not automated pan-and-zoom, and was definitely inappropriate by default.
Do you have any suggestions as to what characterstics of the animation/easing are causing eye strain or what sorts of changes would result in better?
It's tricky to figure out good algorithms for moving from any arbitrary view to any other, with easing and timing etc. Sometimes the pan/zoom is just moving a little bit, in those cases zooming all the way out and back in again would be wrong. So you've got to take all of that into account with some good heuristics in an algorithm.
Tricky, but also kind of fun, I'll take another go at it sometime.
IMHO Seadragon feels much nicer and fluid compared to the host of Leaflet-based viewers that appeared on that day. But maybe I'm biased because I was involved in this viewer ;)
We use have a Python tile_generator: https://github.com/IMAmuseum/tile_generator
Also, I just developed a PHP composer package: https://github.com/jeremytubbs/deepzoom
Furthermore, Seadragon employs animations to bridge perceptible performance gaps, e.g. loading new tiles. You get the blurry mess when zooming in as well, it gets slowly replaced by the sharper versions as new tiles get loaded. The use of the fading animation here helps mask the actual change, which makes it less visually jarring.
Another thing is that zooming uses a bit of inertia for the animation, with an easing effect. This takes much longer than Google Maps' or Leaflet's immediate zoom but (a) again, reduces the effect that the new frame upon interaction is totally different from the previous, and (b) during the animation new tiles are loaded already and replaced. This often means that by the time the zoom animation ends you already have the sharper tiles on your screen and the blurry ones were used predominantly during the animation during which you didn't notice the blurryness.
Panning also uses a spring to have some sort of easing for drags which means things are animated longer, thus more time for tiles to load without you noticing. Some people dislike that behaviour, I actually like it. It feels less "stiff" than what other tile-based viewers usually do.
In general, it's not blazingly fast, or at least not faster than other technologies. It just makes good use of animations and a few perceptual tricks to make it feel fast. Which is actually, what user-facing applications should concentrate much more, in my opinion. Raw performance matters much less than what users perceive (for interactive things anyway).
It also looks like Leaflet may be focused on geographic data? OSD is not, it has no special geo features (which would be a problem if you need them), but is focused on _images_, which may end up giving it the sort of features (back-end and UI) and API suitable for people concered with high-res images as images, rather than maps. (Does Leaflet actually have facility
for dealing with multi-resolution-level tiling? I would assume so, but it's not clear from a quick skim of the docs...)
Or it could just be that there are multiple products with overlapping feature sets. I don't think OpenSeadragon is neccesarily _newer_ than Leaflet, as I think you imply.
Looks like the first commit in Leaflet repo is Aug 2010; the first commit in OpenSeadragon is Nov 2011. I imagine both took a while to reach maturity. It's also worth pointing out that OpenSeadragon is the open source continutation of an originally proprietary Microsoft product. I'd say they were both developed relatively simulataneously, neither one was developed after a mature competitor already existed.
It does seem from this thread that OpenSeadragon was news to many people who already knew about Leaflet, so I guess Leaflet is better known? A year ago when I was looking for an open JS tiling image viewer, I found OpenSeadragon, and somehow didn't even come accross leaflet!
One key point is that OpenSeadragon allows you to set the zoom level precisely where you want it without rounding to the nearest tile level. Leaflet is getting this feature (they call it fractional zoom) in 1.0, but it's not released yet and it's been missing for a long time. If you are presenting a painting, for instance, and you want the contents to fill the available space on the page, this feature is essential.
Probably the biggest difference (as far as I'm aware) is that OpenSeadragon allows you to lay out and animate hundreds of high-resolution images in the same zoomable scene. For some examples of that in action, see:
Thanks for pointing to it!
Unfortunately, I was thinking it was going to be a crowd-sourced version of a sea-launched space vehicle... https://en.wikipedia.org/wiki/Sea_Dragon_(rocket)
Ah well, this is pretty awesome too.
You can have a look here.
Some examples below.
Envisat Radar Image of Netherlands, European Space Agency (8346 x 8525)
Mountain View in High Resolution - Markus Spiske (2912 x 4368)
KTM Motorcycle - Markus Spiske (2912 x 4368)
Xmas Tools - Markus Spiske (4368 x 2912)
Horse Eye - Markus Spiske (4368 x 2912)
Hurricane Isabel - National Aeronautics and Space Administration (NASA) (11600 x 8800)
360 Degree Panorama of the Southern Sky - European Southern Observatory (ESO)/H.H. Meyer (15204 x 4620)
When resolution becomes Counter Productive - Lies Through a Lens (3337 x 5000)
PIA16568 - First Drilling Target of Curiosity Rover - Jet Propulsion Laboratory/NASA (12858 x 6312)
USS Vulcan (Engineering Drawing) (17600 × 13600)