General Information - Winter 2024

Lectures 8:35 AM - 9:55 PM, Tuesday and Thursday
Last lecture is April 9 as April 11 is a make-up lecture day.
Location ENGTR 1080
Credits 4
Instructor Paul Kry
Office Hours See information on MyCourses, or by appointment (any time!)
Teaching Assistants See information on MyCourses for TAs and office hours

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, the development of video games, and training simulations. While the focus will largely be on physically based methods for the automatic generation of motion, part of the course may 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 have knowledge of different formulations for different physical systems (rigid bodies, elastic solids, fluids), handling collision and contact, techniques for stable time stepping of these systems and necessary solvers (sparse linear systems, constrained optimization). Students will also be able to identify the advantages and disadvantages of different simulations with respect to both online and offline applications. Students will also be able to implement animation techniques, 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.


Students taking this course should have good knowledge of linear algebra (linear systems, eigenvalues), calculus (basic differential equations, vector calculus, partial derivatives), and be comfortable programming in Python for assignments. Some review will be done in class when necessary or appropriate.

While a computer graphics background is an asset for studing computer animation, it is not critial given the material covered. Undergraduates who have taken the COMP 557 prerequisites (MATH 222, MATH 223, COMP 250, COMP 206) should have the necessary background to succeed.

COMP 350 is now officially no longer a prerequisite, though please note that numerical computing is a big part of computer animation. While computer graphics (COMP 557) is useful algorithms and datastructures related to 3D geometry, viewing and drawing, which is likewise useful for the course, it is not critical to learn the fundamentals of comptuer animation (some of the examples and the assignments will focus on simpler 2D systems which can be extended to 3D). Topics of transformations and interpolation will be covered as necessary in this course. See also the prerequisites section of this web page for more information.

Course format and evaluation

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

  • 45% assignments (5 of varying weight and complexity)
  • 20% midterm exam
  • 5% class participation
  • 30% 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, or state that you discussed with nobody.

You must not share your solutions publicly with version control websites such as github or bitbucket. If you are sharing course work with potential employers, do this with a private repository.

All work must be submitted through MyCourses. There are generous accommodations for cases where students have time management problems, but the late deadline must be considered as a HARD deadline.

See below the section on things you should already know about academic integrity. Also note that you can submit 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., do not wait until just before the assignment deadline, or the end of the term).

Programming assignments MUST be submitted electronically (follow the instructions in the assignment specification). If there is any directory structure in the provided starter code, it must be preserved in your zip file. Do not use any other archive type. Please check carefully the time at which assignments are due and do not leave it until the last minute to submit!

Late assignments will be accepted up to three days after the deadline and will receive a penalty of 10%. Late penalties can be waived once via a request in the readme file submitted with the assignment.

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). Please make sure that readme files always have either a .txt or .md ending. You will not receive marks for missing or corrupt files or work that is incorrectly submitted.

Texts and Resources

Material in this course will come from several sources. The course will make use of the following online resources:

Additional notes on selected materials will be provided through out the term on MyCourses. Finally, for assignments based on recent and seminal publications, links to online PDF files will be provided.

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 with respect to student rights and responsibilities.

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.