CSC474 - Computer Animation

Professor: Zoë J. Wood

Welcome to Computer Animation. Animation is the process of bringing something to life. In this course we will write our own computer graphics applications to bring computational scenes to life. We will be using OpenGL*, GLSL, (your choice of windowing system), along with C or C++ to create applications to animate scenes. *Note that I expect your OpenGL code to mostly conform to modern graphics programming standards.

Topics are still being finalized but in general this course will cover: Basic and advanced algorithms for generating sequences of synthetic images. Interpolation in time and space, procedural and keyframe animation, particle systems, dynamics and inverse kinematics, quaternions, and skinning.

A note about text books. We will predominantly use Robert Bridson's course notes (linked below) in addition to other resources. If you would really like a physical book for reference, consider:
"Computer Animation: Aglorithms and Techniques" by Rick Parent
And if you'd like a smaller reference book for modern graphics programming (even though its focused on mobile, it is a good resource):
"OpenGL ES 2.0 Programming Guid" by Aaftab Munshi, et. al.

Useful Links:
Principals of Traditional Animation Applied to 3D Computer Animation
Great course notes on Computer Animation by R. Bridson

Final Proejct pages
Top voted projects (by students in the class)
Fall 2012

Learning Modern 3D Graphics Programming
For a good list of generally useful graphics/game related links see: Resources compiled by past student Bob Somers

General Information about getting started
We will be using OpenGL, GLSL to develop graphics applications in this class (your choice of windowing as long as I can grade your programs). You are welcome to use either C or C++ in conjunction with OpenGL to write your programming assignments. A very useful site for information about OpenGL is:
If you would like to write your programs on your home machine, you may need to download GLUT. You can do so from a variety of places, including: