Asa and I were clear and focused from the very beginning: from the moment we got our Kinect, we were hoping to make a puppet. We wound up with something that can be controlled with our bodies, which is a step in the right direction, but I think we hold the most stock in the process that got us there and what we can do to improve our project.
The first major problem was my laptop… which refused to install OSCeleton, which did all of the talking in between Processing and OpenNI. Because of this itsy bitsy snafu, all debugging and the majority of programming had to be done on Asa’s computer, which was only possible when both of us were free. Despite this, once we got things running on Asa’s laptop(which didn’t happen until Wednesday of last week) we took off running, using primarily a Processing sketch by OSCeleton’s creator Sensebloom, Stickmanetic. Our original plan was to create a series of puppets that could be controlled by two or more users, using Kitchen Budapest’s Animata software, but we quickly hit our second wall: Animata can only take in one set of skeleton points at a time, as it uses a limited OSC mode that does not send user# information. We could not use Animata, as we had planned, to make cooperative puppets: after trying and failing to get max.msp.jitter working with .pngs (max isn’t really an image-friendly software, it much prefers sound and video), we decided to bite the bullet and try to re-create a very basic Animata in Processing.
We wanted to make puppets that would be interesting to interact with, and that did not adhere to human anatomy; I sketched up a Behemoth, a Leviathan, and a dragon and handed them over to Asa to get cleaned up and separated into puppet parts in Flash.
We brought the .pngs into Processing, got Processing to recognize two separate users and assign them puppet parts, and we got the puppet parts following our skeletons, but then ran into a problem that took up the rest of our night, and ultimately spelled our defeat: ROTATE. We were trying to link the .pngs with pivot points that the pieces would rotate around as if they were riveted down, but no matter what we tried we could not get the rotating pieces to behave correctly. In the interest of keeping the puppet from flying off into the abyss, we scrapped the rotate function-for now- and made a much stiffer puppet that sits directly on our skeletons, rather than a puppet that is controlled by our skeleton but keeps it’s own, non-humanoid skeleton. (Click any of the following images to view a video of the Behemoth doin’ it’s thing).
Behemoth’s got chickin’ legs (for now- we drew bones from the hip to the knee on each leg as a temporary fix for Wandering Foot Syndrome).
Asa and I trying to work out how to walk forward, back to back (documentation of our physical puppetry process on it’s way).
DESTROY THE COUNTRYSIDE.
It is incredibly difficult to control coherently- it takes a lot of back and forth conversation between the front and back half of the behemoth to get anything that looks like a solid creature; in the featured video, I am controlling the front and Asa has the back. It’s also challenging to move your body the way the puppet needs to be moved, but I think this works FOR the puppet… in order to be the puppeteer, you have to learn how to move your limbs in counter intuitive ways.
We re-wrote our code, and got our Behemoth off the ground!