UPDATE!! I finally got around to porting this over to Windows using Visual C++. You can download the exe here:biomech.zip
Biomech began as an attempt to model the walking movement of a human.
Since I have always been interested in bipod motion, I began work on the
biomech movement algorithm.
I immediately ran into problems modeling the transformations that a pair of
legs undergo during movement. Since this is essentially a non-linear movement,
I ended up doing a primitive form of video modeling to capture the motion.
This began by video taping a friend of mine walking around the room. From here,
I played the tape in slow-mo and recorded the angles of each segment of the leg.
This was a time intensive process that involved a lot of trial and error. After about
a month of tinkering with this, I came up with a reasonable data set that had the look
that I was after. During initialization, the data is read in from files and stored in vectors
for later iteration. Since the biomech leg has 6 levels of hierarchy, I quickly learned that
a multi-tiered segment transformation and rotation was quite complex.
The first version was just a set of stick legs that walked in a straight
line. Once this modeling was complete, I set out to create a "world" for biomech to
move about in and interact with.
The result was the biomech storage facility, where biomech is stored until called upon to
defend the universe. When duty calls, biomech leaves the storage unit, undergoes a battle transformation in which he is equipped with a rocket pack, and flies off into battle, only to
be struck down by an enemy meteorite!
Biomech technology includes:
C++ Object-Oriented Paradigm to model the objects.
OpenGL api to handle the modeling.
GLUI, a nice widget library written by Paul Rademacher.
Cinematic animation sequence with action shots and camera movement.
The Animation sequence begins with a "fly-in" camera sequence into the biomech
storage facility. The chain-link fence was modeled using fence segments stored
in display lists. Each light pole is an indiidual light source which can be controlled
from the panel under the lighting dropdown list. I played around with the stencil
buffer so the lights would cast soft shadows on the ground, but couldn't quite get
it to look right.
The camera pauses its motion while the biomech storage unit actiates and the
For our non-hardware accelerated friends, biomech is rendered with a minimum
number of segments and texture mapping set to a minimum.
Biomech awaiting rocket pack attachment.
Biomech on the move again. This time the mech is rendered with nearly
maximum segments and smooth shading enabled. The mech-name was originally
intended to allow functionality for a network connection where multiple mechs
could join in and interact with each other. Thanks to finals, this hasn't happened yet!