Portfolio

“The Entertainer”

This was my final project for CS184, Computer Graphics, during Fall 2008. I worked on it in conjunction with CS students Richard Mar, Trevor Lee, and Shendy Kurnia. The complete animation may be found below.

Our objective in this project was to produce a short animation with frames rendered in an NPR (Non-photorealistic) renderer. The renderer would have two major features: cel-shading and contour outlining, to provide a “toon” shading look for each frame. Further, we decided to create original models and animations for the project, a player piano with keys moving in synch with music, on display via a dynamic camera. We would then export each frame of animation into .obj and .mtl files, and combine individually rendered frames into a complete animation.

Piano model while in progress

Post-rendering view

I modeled and animated the piano, keys, stool, pedals, and scroll in Blender. I wrote a Python script to animate the key movements in synch with the music (”The Entertainer” by Scott Joplin), and customized another script to produce frame-by-frame output with camera location data. I was also responsible for directing camera movements. For the renderer itself, I wrote a hierarchical bounding-box routine to greatly speed up rendering time. I also wrote the sections for cel-shading and pseudo anti-aliasing. Finally, I was responsible for compiling the generated frames into the final animation and synchronizing it with the music.

Further details on the production of the project, as well as code (Python, possibly our C++ source code at some point) and OBJ files, are at the bottom of this page.

The finished animation (with music) is below. Recommended: It can also be viewed in its full 1280×720 HD resolution at http://vimeo.com/2486431.

More on this project:

« Return to main Portfolio page