The code is cross platform (built on SDL/OpenGL) but I have only compiled it on Windows so far.
In the current version you can throw one puppet around. In a soon-to-be-released version, you can create your own puppets and throw them around. In the future you will be able to film puppets being thrown around, and throw around puppets with friends and loved ones.
There will be source available under a BSD-like license soon.
The first version was part of a project for a student-run class at Berkeley, in the spring of 1996. Each group pretended it was a video game company. My friend May Jong was the "artistic director" and I was the "lead programmer." She and I came up with the idea of basing our graphics on collage. She drew a cut-out dude in a space suit and I animated it to walk across a spaceship background that someone else drew. DOS, Borland C++, VGA Mode X graphics.
I returned to the project in December 1999 with my childhood friend David Pollatsek. He helped me write a DirectX 7 version. This time it recorded movements like "turn the arm 40 degrees" and then you could arrange them in time. But then I got hung up thinking about how you would abstract out actions like "walk" and apply them to different puppets. Productive thoughts, but no viable code...
The 2.* series is built on SDL and OpenGL and features a physics engine based on Thomas Jakobsen's Advanced Character Physics (also recommended by David). Seems to be a pretty natural way to manipulate these puppets, but so far the puppet looks rather lifeless.
Next we'll see what happens if you can go back over the same time sequence over and over tweaking things.
Also there has got to be some way to restrict what part of the puppet reacts to a tug.
Also we want to use lots of joysticks and mice at once. And sound too.
And what else?