Hierarchical Animation

Bridget Winn

CPE 471 - 01

Final Project

Skipping Figure Walking Figure Floating Figure


My final project features three hierarchically modeled figures: a skipping young figure with a festive hat, a strolling middle-aged figure, and a floating astronaut. Each figure cycles through its individual animation.


User Functionality

To cycle through the three models, press the 'P' key.

To rotate any model about the y-axis, press the 'A' or 'D' keys.

Additionally, the astronaut model can be rotated about all axes. To rotate the astronaut model about the x-axis, press the 'W' or 'S' keys. To rotate the astronaut about the z-axis, press the 'Q' or 'Z' keys.

Lessons Learned

How Hierarchical Modeling Works

I had been exposed to hierarchical modeling from previous class work, but creating my final project really solidified my understanding of how it works. I also have a great appreciation for trig functions! Each cyclical animation is run on versions of sin(x). The astronaut needed to move slowly, so that movement is determined by sin(x / 5.0), which really slows that function down. The skipping figure moves much faster, and that movement is based on 10 * sin(x * 0.8). As a bonus, taking the absolute value of a sin function let me have further control of specific movements such as the middle-aged figure's slight up and down motion while walking.

An Appreciation for Animation and Movement

I looked into traditional animation and read a few chapters on animating walks in The Animator's Survival Kit. This book is fantastic. It has great diagrams, sketches, and explanations.

Animator's Survival Kit Animator's Survival Kit

I was surprised to find out how much I enjoy animating like this and dissecting movement. I spent a bit of time in the mirror working out how skipping works. This project really strengthened my appreciation for traditional animation; I can't imagine animating by hand.


Click here to download a zip file of the project through Google Drive. Building this project requires CMake, GLFW, GLEW, and Eigen (see README.txt for more info).


Project base code was provided by Zoe Wood (CPE 471 Lab 6).

Williams, Richard. The Animator's Survival Kit. London: Faber, 2001. Web.

Click here to view the CPE 471 Hierarchical Modeling Slides.