svn co https://subversion.umiacs.umd.edu/slithy/slithyComment out MAC=1 in the Makefile if you're not on a mac.
Slithy is a Python library for creating PowerPoint-style animated presentations rendered using OpenGL and freetype. I use Slithy because it allows me to treat presentations as code and I am happy giving presentations when I'm proud of my animated explanations. That is, giving an animated presentation makes me more animated.
Presentations as Code
I write papers using emacs, latex, and makefiles. I write code using emacs, gcc, and autoconf. I like that Slithy lets me use emacs, Python, and makefiles to make presentations. If you're not excited yet, Slithy is not for you. Skip to the bottom, see the eye-candy, and move along.
By expressing presentations in code, it is easy to encapsulate, parameterize, and reuse. I can collect my current best practices in color and font selection, fancy zoom-in transitions, and primitives for drawing graphs of nodes and edges, all into one shared library. I can create macros for common tasks and refactor implementation gunk.
It is easy to spend a lot of effort on an important talk. I've been bored and frustrated with a talk that I spent too much time preparing and lost enthusiasm. Presenting with Slithy provides a fresh source of excitement.
I gave a talk at a small workshop where the audience spent entirely too much time looking at their laptop screens. As soon as one animated transition gathered some "ooohs" from those few who paid attention, heads snapped up, if only to see what they missed, and stayed up. At the same time, I became excited at having grabbed their attention. It was a gimmicky strategy, but that doesn't matter as long as they're entertained and engaged.
Spatial relationshipsZooming in to detail works well for me, both because it is intuitive and because it shows off the OpenGL rendering. I show network maps in my presentations, and these nodes and edges render well using Slithy.
To make use of Slithy, I've had to write a bunch of code to port it to the Mac and to output quicktime movies to be made available on the Web.
Slithy does not work out of the box for my 12 inch (nvidia) powerbook. I maintain a patch that drives Apple's OpenGL interface in full-screen mode. It used to be hard to find an Intel laptop with 3D acceleration small enough to take to a conference, so the Mac is a perfect platform for Slithy.
Publishing to the web is easy for static presentations: PowerPoint will output to web pages and LaTeX to pdf. I have written a small tool to generate Quicktime movies from 10fps screenshots. It uses the same wired sprites used by Keynote to animate transitions but pause the "movie" at each slide boundary. Send me mail if you have a Mac and this code is of interest to you.
The nice part about Quicktime is that I can now give my Slithy presentation on someone else's laptop in case a disaster occurs. Most of the animation features are still available (though not the interactive behaviors I have yet to use).
The downside of output to Quicktime is that only the quicktime player seems to understand the scripting that pauses at each slide. Xine, the free movie player that runs on Linux, can decode the Sorenson encoded video stream, but flies right through the presentation. Publishing to Quicktime is also a time-consuming process because frames must be rendered in software to be grabbed, and encoding a reasonable presentation takes about ten minutes of processor time. I haven't determined how to make the Quicktime movie "fast start" (start playing before the whole movie has been downloaded), or how to disable auto-play at the client so that the title slide stays up, without using html embed tricks.
Summary and Future Directions
Slithy is not ready for the masses. It is, however, ready for PowerPoint-hating LaTeX-slide-using free software zealots (like me). That is, if you've spent time trying to make LaTeX format slides with images and give your presentation using pspresent, you might be a future Slithy user.
With the original author gainfully employed, who knows what the future will bring. However, Lamport, not Knuth, turned TeX into LaTeX. And Doug has placed a liberal license on Slithy.
SamplesBelow are some sample presentations in Quicktime format. You may want to save these movies to disk and open them with an external viewer because they are large (800x600 or 640x480) and may not render well embedded in your browser.
Quantifying the Causes of Path Inflation, a talk I gave at SIGCOMM'03.
As a Quicktime movie (8.2 MB) or source code.
Reverse-Engineering the Internet, a talk I gave at HotNets'03.
As a Quicktime movie (2.6 MB) or source code.
On Creating Animated Presentations, a talk by Doug Zongker.
This is a beautiful demonstration and introduction.
Download as a Quicktime movie (13 MB) with a couple glitches.
Source code is part of the Slithy distribution.