COMP 599 - Fundamentals of Computer Animation
Winter 2009

Mini-project Highlights Reel

Final Exam

Location LEA 210
Time 2:00 pm - 5:00 pm
Date Friday, April 17, 2009

General Information

Web Page
Lectures 4:05 PM - 5:25 PM, Tuesdays and Thursdays
Location Trottier Building 2100
Credits 3
Instructor Paul Kry
Telephone 514 398 2577
Office MC113N
Office Hours 2 pm Tuesdays, or by appointment (any time!)

Overview and Objectives

This course will provide an introduction to computational techniques for generating animation. Topics will include methods which have applications in the creation of movie effects, as well as the development of video games and training simulations. While the focus will largely be on physically based methods for the automatic generation of motion, approximately half the course will cover methods for user control of animation and reuse of captured motion data. See the schedule below for a list of topics.

The main objective of this course is to have students develop an understanding of fundamental techniques used for computer animation. At the end of the term, students will be able to identify the advantages and disadvantages of using simulation, procedural animation, motion capture, and hand designed animations, with respect to both online and offline applications. You will also be able to implement animation techniques, such as physically based simulations, inverse kinematics, and key-frame interpolation, using common software languages and tools. Finally, in addition to an understanding of current practices in computer animation, a general objective is for students to better recognize current important challenges in computer animation.


Consent from instructor, or COMP 557 (Fundamentals of Computer Graphics), or COMP 350 (Numerical Computing). Students taking this course should have good knowledge of linear algebra, calculus, and be comfortable programming in Java for assignments.

Course format and evaluation

The class will be taught through a series of lectures. Grading will be largely based on assignments as the intent is for students to get hands on experience with the material in the course. There are three components to the grading scheme.

  • 50% assignments (5 programming assignments, may also have small written component)
  • 25% midterm exam (in class)
  • 25% final exam


Assignments must be all your own work. You are still encouraged to discuss material related to the assignments with your classmates, that is, discuss your assignments, problems, or solutions as a group, but you are ultimately responsible for understanding the material and the programming and write up must be all your own work. If you do talk with your classmates about the assignment, then you must list the names of everyone with which you discussed the assignment. See below the section on things you should already know about academic integrity. If you feel you can't complete the work, talk to me, or your advisor, and we can help you figure out what to do.

Programming assignments must be submitted electronically via WebCT and all assignments will be due at 11:59 pm on their due date. Late assignments will be accepted up to two days after the deadline and will receive a penalty of 10%. Once the deadline has passed you will not able to resubmit your assignment in the regular submission box. In this case, submit your assignment into the problematic submission box and send me an email. You should always check your submission by downloading your assignment from the server and checking that it is what you intended to submit. The written component of an assignment, if any, will usually be due in the in class following the deadline and will be specified in the assignment.

Here follows a list of assignments (and tentative future assignments).

Texts and Resources

Material in this course will come from a number of sources. While no text is required for the course, the following material is either available online or will be on reserve in the library.

Schedule (Tentative)

Date             Material Events            
1 January 6
January 8
Introduction, background, methods for computer animation.
Physical based animation with ODEs, numerical vs exact solutions.
PBA 1, PBM Differential Equation Basics
(related: PBA 8)
2 January 13
January 15
Numerical solutions to ODEs, and absolute stability (forward Euler, midpoint, etc.).
Second order motion, springs, dampers, gravity
(briefly: collision response and constraints for the assignment)
PBM Differential Equation Basics, Particle Dynamics
(related: GP 9, PBA 8.2, 23.1)
A1 released
3 January 20
January 22
Backward Euler, Trapezoidal rule, absolute stability, monotonicity. Verlet, momentum and CFL condition, constraints (soft/penalty).
PBM Constrained Dynamics, Implicit Methods
(related: PBA 7, 8.6)
4 January 27
January 29
Soft constraint examples (energy formulation), constraint damping, critically damped systems.
Pause to talk about the big picture, assignment 1 solutions.
Stiff systems and cloth simulation,
(related: PBA 8.7, 19.9)
A1 due
A2 released
5 February 3
February 5
Stiff systems and cloth simulation, stiffness matrix, solving large sparse systems.
More on constraints (with implicit and explicit systems), constraint gradients and time derivatives, constraint stabilization, Baumgarte, Post-step stabilization and issues. PBM Implicit Methods
(related: PBA 8.7, 19.9)
6 February 10
February 12
Assignment 2 written solutions.
Motion capture technology, advantages, disadvantages.
Rescheduled class: 5:35-6:55 pm February 10, motion capture lab session, camera setup and calibration.
Passive marker motion capture pipeline, issues.
Retargeting motion capture to different character, reuse in new scenarios.
Rescheduled class: 5:35-6:55 pm February 10, skeleton calibration and full body capture for assignment 3.
7 February 17
February 19
Mini review for midterm.
Brief review of rotations and homogeneous transformations.
Short introduction to rigid motion
In class midterm exam, 4:05-5:25 February 19.
A2 due
A3 released
Midterm Exam
February 24
February 26
No classes - reading week  
8 March 3
March 5
Rigid body motion
Forward and inverse kinematics
PBA 2, 3, CAAT 5
PBA 22, GP 3, CAAT 7.4, PBM
9 March 10
March 12
Key frame animation
PBA 4, CAAT 3, 4
A3 due
A4 released
10 March 17
March 19
Collision detection and response
PBA 12, 13
11 March 24 Rigid body dynamics
PBA 22, GP 3, CAAT 7.4, PBM
No class Thursday 26 (rescheduled)
A4 due
A5 released
March 31
April 2
No class Tuesday 31 (rescheduled)
No class Thursday 2 (rescheduled)
12 April 7
April 9
Skeletal deformations and skinning.
Deformable solids.
PBA 9, 10
13  April 14 Rescheduled class:
We will meet, even though this Tuesday follows Monday schedule

Deformable solids continued.
Review for final.
A5 due
  April 17 Final exam, 2 pm, room TBA (tentative date and time)  

In case you didn't already know...

McGill University values academic integrity. Therefore, all students must understand the meaning and consequences of cheating, plagiarism and other academic offences under the Code of Student Conduct and Disciplinary Procedures. See for more information, as well as, the Student Guide to Avoid Plagiarism.

It should be noted that, in accordance with article 15 of the Charter of Students' Rights, students may submit examination answers in either French or English.

According to Senate regulations, instructors are not permitted to make special arrangements for final exams. Please consult the Calendar, section, General University Information and Regulations at Special arrangements in emergencies may be requested at your Student Affairs Office. If you have a disability, please advise the Office for Students with Disabilities (398-6009) as early in the term as possible so that we can provide appropriate accommodation to support your success.

In the event of circumstances beyond the instructor's control, the evaluation scheme as set out in this document might require change. In such a case, every effort will be made to obtain consensus agreement from the class.

Additional policies governing academic issues which affect students can be found in the Handbook on Student Rights and Responsibilities, Charter of Students' Rights.

Image credits, from left to right and down

  • M. B. Cline and D. K. Pai, Post-Stabilization for Rigid Body Simulation with Contact and Constraints, IEEE ICRA, 2003.
  • D. Baraff and A. P. Witkin, Large Steps in Cloth Simulation, SIGGRAPH 98, pp. 43-54.
  • S. Quinlan, Efficient distance computation between non-convex objects, 1994 IEEE ICRA, pp. 3324-3329.
  • J. Stam, Stable Fluids, Proceedings of SIGGRAPH 99, pp. 121-128.
  • Pixar, Witkin and Baraff course notes on Physically Based Modeling, SIGGRAPH 2001.
  • X. C. Wang and C. Phillips, Multi-Weight Enveloping, ACM Symposium on Computer Animation, pp. 129-138, 2002.
  • Naturalpoint motion capture dude and Optitrack camera.
  • Blender key-frame animation tutorial at Feeblemind.