CSE 169: Computer Animation

Winter 2007


Steve Rotenberg (steve@graphics.ucsd.edu)
Office Hours: Tuesday & Thursday, 5:00 pm - 6:00 pm, EBU3 4112


Arash Keshmirian (arash@ucsd.edu)
Office Hours: Tuesday & Wednesday, 1:00 pm - 3:00 pm (extended to 5:00 pm on tuesday assignment due dates)


Time: Tuesday & Thursday, 6:30 pm -- 7:50 pm
Location: Warren Lecture Hall 2111


Time: Tuesday, 2:00 pm -- 3:00 pm
Location: CSE Building, B250


CSE169 has a WebBoard available to you.


Lab: EBU3 basement


Required Reading

There are no required textbooks. Several papers will be required reading and will be added to this list throughout the quarter.

Optional Reading

For an introduction to both computer graphics and OpenGL, I suggest:
            "3D Computer Graphics: A Mathematical Introduction with OpenGL", S. Buss

For a non-mathematical introduction to OpenGL:
            "OpenGL Programming Guide", Woo

For a good book on C++ software architecture:
            "Large Scale C++ Software Design", Lakos

An older computer graphics book, but one of very few that talks about animation:
            "Advanced Animation and Rendering Techniques", Watt & Watt

Course Objective

This advanced graphics class focuses on the programming techniques involved in computer animation. Algorithms and approaches for both character animation and physically based animation will be covered. Particular subjects may include skeletons, skinning, keyframing, facial animation, inverse kinematics, locomotion, motion capture, video game animation, particle systems, rigid bodies, clothing, hair, and other techniques. A good understanding of linear algebra and computer graphics is essential and CSE167 or approval from the instructor is required.

Lecture Schedule

Here is a rough outline of the course. This will be updated throughout the quarter with any changes.

Programming Projects

There will be four programming projects, due at the beginnings of week 3, 5, 7 and 10.

Some (very) basic C++/OpenGL graphics code will be provided to get some of the simple stuff out of the way, but students are allowed to use a different graphics API and/or object oriented programming language if they prefer.

Project 1: Due Jan 23rd, 6 pm

- Skeleton Hierarchy: Load a .skel file and display a 3D pose-able skeleton.

Project 2: Due Feb 6th, 6 pm

- Skin: Load a .skin file and attach it to the skeleton from Project 1.

Project 3: Due Feb 20th, 5:30 pm

- Skin: Load an .anim file and apply it to the skin from Project 2.

Project 4: Due Mar 13th. 5:30 pm

- Final Project: Pick from a variety of possible projects.

Turning in Projects

Projects must be shown to the professor or the TA's either on one of the lab computers or on a student laptop.


This class is for 4 units and grading will be based on programming projects plus a midterm and a final.

Project 1:  15%
Project 2:  15%
Project 3:  15%
Project 4:  20%
Midterm:  15%
Final:  20%

Sample Code

Some basic C++/OpenGL code is provided to get you started. The example is a simple object oriented spinning cube.