From the Author:
Explore simultaneously in space and time with GigaPan Time Machine.
Each Time Machine captures a process in extreme detail over space and time, with billions of pixels of explorable resolution. Choose a time machine and manually zoom into the image while simultaneously traveling backwards or forwards through time. Select a Time Warp and the time machine’s authors will take you on a guided space-time tour with text annotations explaining what you are viewing. You can make your own time warps in each time machine, and you can even learn to create your own new time machine.
On the backend, our work varies depending on the image source -- if it's a GigaPan imager, we optically align the mosaics over both space and time to generate an aligned sequence of gigapixel-scale imagery. Other sources of gigapixel-scale video might not require this step. We then break the images up into overlapping videos at multiple scales of resolution.
The web client is smart -- as you pan and zoom small amounts, it simply moves and scales the video currently displayed. As you move more, the client switches to a new video more closely aligned with your viewport. Part of the challenge making this work with browsers is that a seamless transition between videos requires instantiating a new video tag before the old is finished, and then queuing it to align perfectly in time before the swap. Instantiating videos and removing them on the fly initially initially caused browsers to crash; the Chrome team was very responsive to the bugs we reported and what you see now is the result! Other challenges include responding well to DOM requests to move and resize the video (IE9 for example blanks the video for each motion, so it flickers unacceptably) and just being able to have multiple videos at all in the same document (Firefox 4 still fails this test).
Between the client's smarts switching between videos and the browser's support for the HTTP/1.1 Range request for seeking, the server only needs to serve static content. This makes the system scale very well -- no need for the server to do any special computation or compression for each client. It also keeps the experience fast and responsive.