Final Project: OpenGL Skateboarder

CPE-471 - Michael Haskell


Modern smartphones have gyroscopic sensors and accelerometers built into their hardware. The final goal (outside the scope of this project) will be to use a smartphone as a game input controller. A player will throw the device in the air in a combination of flips and spins that mimics the movement a skateboard makes while a skateboarder performs tricks.

For example, in skateboarding there is a trick called a "kick-flip". In order to perform a kick-flip a human skateboarder needs to kick down hard on the tail of the skateboard, sending the skateboard into the air, then they must kick the upper side of the skateboarding to make the skateboard flip 360 degrees on the z-axis before landing back on the skateboard.

Performing a kick-flip using the smartphone as a game controller will require a player to throw the game controller in the air and flipping it 360 degrees on the z-axis. This project's aims is to render a hierarchical skateboarding model performing the trick that is completed using the game controller. Simply put, when a user flips the phone in the air to perform a kick-flip, they will see a computer-generated animation of a skateboarding performing a kick-flip.

471 - Final Project Requirements

As discussed with professor Zoe Wood the scope of CPE-471's final project was to implement a simple prototype of a kickflip scene and more importantly, build a keyframing tool to support further animations. I believe the project was a success. Below are some of the technologies used.

Highlighted Graphic Technologies


Skeletal Animation Tutorial (PDF)


The two images above show how the textures are pulled in via the fragment shaders. And the third shows the texture map used for the skinned mesh coloring, prior to it being converted to a 24-bit bmp file.

An image showing the structure of the scene directories

The images above show the format of the .scene files for the skateboard animation and for the character animation.

Without the texture mapping and shading, the object looks a bit plain.

Here we see a still-shot representing a combination of all the computer graphics techiniques listed above.


Video of the rigged mesh's skeletal joints in Maya.
Video of keyframing in Maya.
Video of the animation in Maya.
Navigation of the OpenGL scene.
Kickflip animation in OpenGL.
Slow-motion kickflip animation in OpenGL.
Changing skateboard textures in OpenGL.