Over the Spring 2006 semester, I worked closely with
Lee
Thompson and Andrew Chizhik to built a virtual marionette. For
those unfamiliar with the term, a marionette is a type of puppet
controlled by strings (see
Wikipedia). There were two components in our system: the physical
marionette controller and the software to animate the virtual puppet.
I was
primarily responsible for the hardware, which needed to capture
three-degrees of motion: rotation left/right, tilt up/down and tilt
left/right (yaw, pitch and roll respectively). This was achieved
using a custom built, tabletop controller fitted with three potentiometers.
Two were combined in a joystick configuration (giving pitch and
roll) while a third, mounted above, provided 270 degrees of rotation.
Using the controller like a real marionette, natural and unencumbered.
Values
from the controller were read and processed by a BASIC
Stamp board, which packaged the data and passed it to a computer
running the front end. The user application was written in C++ and
used OpenGL for the graphics. A simple physics engine provided momentum
and gravity, which added to the realism.
Ultimately,
the software and hardware that was developed could be used for a
collaborative, remote, virtual puppet show. Several users, each
with their own controller, could direct a cast of puppets. The movement
data is simple (integer triplets), and could be streamed over the
internet for a collaborative and totally remote puppet show.
Download
low-resolution MEPG Video
Download
medium-resolution QuickTime Video
Images
Go to Home Page
Go to Projects Page
|