Final Project

Music Box Dancer

Kiersten McConnell

This project began as a dream to digitally recreate a treasured childhood possesion but ended up being much more difficult and painful than I had originally planned.

Concepts

Hierarchical Modeling

Hierarchical Model Pieces

The ballerina is an animated hierarchical model made of about 30 pieces of GL_QUADRICS. Most of
the pieces are contolled by at least one variable which controls the angle at which each piece
is oriented in relation to the other pieces. The angles are circular so they reset if any of
them reach 360 degrees so she is able to dance forever. She is also hierarchically connected
to the box so that as the box lid moves, she moves.

Mouse Listening

The box lid is controlled by a mouse listener so that when the mouse is clicked in the window,
the box opens and the ballerina rises with it and begins to dance. Another click halts the
ballerina's dancing and closes the box. Clicking while the box lid is in motin has no effect
on it.

Problems

Shading

This program did not turn out exactly as I had originally planned. The shading on the box is
/ot working properly. It is set up to use a buffer object of normals for each vertex of
the top and bottom of the box but it is only using one normal for the top and one for the
bottom. However, I was able to shade the GL_QUADRICS properly using phong shading and
transformations of the ballerina's normal vectors.

Music

The music playing on this page was intended to play when the ballerina began dancing and stop
when she stopped. After wrestling with OpenAL and FMOD, I was not able to compile the music
players with the program so she is simply dancing to a tune only she can hear.

Future Work

I am hoping to figure out why the shading is not working properly and fix that. After
shading begins to work, I would like to use a wood testure to make the box look more interesting
and realistic. As stated above, I want the music to play as the ballerina dances. I am hoping
to be able to use FMOD because I had marginally more success with it than with OpenAL. If
there are any other suggestions for music implementations, I would gladly accept them.