COMP 599 - Fundamentals of Computer Animation
Winter 2010

General Information

Web Page
Lectures 4:05 PM - 5:25 PM, Tuesdays and Thursdays
Location moved to MC 103
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.


Undergraduate students taking this course should have already taken COMP 557 (Fundamentals of Computer Graphics) and COMP 350 (Numerical Computing), or in special cases ask for consent of the instructor. 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 and a mini-project as the intent is for students to get hands on experience with the material in the course. There are four components to the grading scheme.

  • 40% assignments (4 programming assignments, may also have small written component)
  • 20% mini-project (e.g., an extension or combination of previous assignments, with write up)
  • 10% midterm exam (in class)
  • 30% final exam (during exam period)


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 (or state that you discussed with nobody). See below the section on things you should already know about academic integrity, or submitting work in French if you prefer. If ever you feel you can't complete the work, talk to me, or your advisor, and we can help you figure out what to do (i.e., don't wait until the end of the term).

Programming assignments must be submitted electronically via WebCT. Assignments will typically be due at 11:59 pm on their due date. Late assignments will be accepted up to three 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, must be submitted as a PDF (i.e., a clear scan, or photo, or use latex or some other typesetting software).

Here follows the list of assignments. Note that there will only be 4 assignments and for each you will have approximately two weeks to complete the objectives (you will have more than two weeks for the mini-project).

Texts and Resources

Material in this course will come from a number of sources. All suggested and supplementary texts will be on reserve at the Schulich library. The CAAT book is highly recommended for students wanting an general resource and slightly gentler introduction to the material, while the PBA book is suggested as a good supplementary resource on the Physics-Based Animation topics. The course will also make use of a number of excellent free online resources (PBM, MLS), and additional notes on selected materials will be provided through out the term.

Schedule (Tentative)

1 January 5 Introduction
2 January 7 Physics-based animation with ODEs, numerical vs exact solutions.
3 January 12 Numerical solutions to ODEs, and absolute stability
4 January 14 Second order motion, springs, dampers, gravity
5 January 19 Implicit and explicit methods,
6 January 21 Implicit methods and solving sparse systems
7 January 26 Collision detection
8 January 28 Collision response
9 February 2 Collision penalty forces and slides (BVs and hierarchies)

10 February 4 Constraints with energy formulation
11 February 9 Constraints with Lagrange multipliers
12 February 11 Constraint stabilization (brief comments on Contact and friction)
13 February 16 Motion capture, technology
14 February 18 Motion capture reuse challenges, A3 discussion
Spring Break
15 March 2 Midterm (in class)
16 March 4 Motion capture (in lab)
17 March 9 Rigid body motion, exponential map and Rodrigues' formula
18 March 11 Rigid body motion, logarithmic map
19 March 16 Eulerian fluid simulation
20 March 18 Eulerian fluid simulation review, and survey of alternative methods
21 March 23 Rigid body motion, adjoint transformation
22 March 25 Rigid body dynamics
23 March 30 Skinning techniques, Elastic solids, corotational finite elements
24 April 1 Forward and inverse kinematics, Space time optimization
25 April 6 Camera motion, Key frame animation, squash and stretch
26 April 8 Review for final exam
April 13 Extra class available for class rescheduling
April 15 Final Exam, 2pm, LEA 109 (tentative)

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.