INF585 - Computer Animation

General description

This 3D Computer Animation course teaches the computational methods for real-time animation and deformation of 3D shapes used in video games, special effects, and animated films, or more generally in animated and interactive virtual worlds. The course details geometric-based animation approaches such as procedural animation, manual 3D deformers, and character animation, as well as physically-based simulation for particle systems, cloth and fluid simulation.

Learning outcome

The lectures bring knowledge of the industry-standard methods for real-time and interactive animation methods used in VFX, animation cinema, and video games, as well as toward research oriented approaches. In addition, students following the class should acquire fundamentals of physically-based simulation, and in particular advanced knowledge on particle-based methods.
The class has a strong focus toward programming application. Enrolled students will therefore not only be able to understand these approach, but also to fully implement them in C++/OpenGL in an interactive context.

Application area

The applications illustrated throughout the class will be mostly related to the field of entertainment (animated films, video games, virtual and/or augmented reality), or real-time simulation for modeling physical phenomena. The underlying mechanisms can further be applied in other scientific disciplines (medical sciences, biology, etc.).

Examples of cases treated in the lectures and practical exercises: Implementing animation and interactive deformation of an articulated character, Modeling the deformation of a garment and managing collisions in real time, Simulating the surface of a moving fluid, Managing crowds of characters moving coherently, etc.


The course is largely practice-oriented with half lectures and half practical sessions. The practice is done in the form of programming exercises in the computer machine room in C++ language, with OpenGL. A short project involving an animated virtual scene is carried out in the last sessions.


C++ programming, and basics of Computer Graphics. Knowledge of OpenGL is a plus, but not required.


Open source course

The content of this course is fully available in open-source:


The practical session are done in C++ and OpenGL using a dedicated library to facilitate the scene display.

The first step is to make sure that you can compile and execute some code using the first tutorial. Then all the exercises will follow the same principle.

Go to practice webpage

Lectures content

2. Procedural Particles Trajectories

Use of kinematics-based particle systems to model complex looking animation, and their representation using sprites.

Lab: Procedural motion

Exercise on simple procedural motion applied to particles displayed as spheres and billboards.

3. Procedural Noise

The use of procedural noise - Perlin Noise - to add details to shapes and animations.

4. Interpolation Position

Keyframe-based interpolation position using Spline curve - focuss on Catmull Rom spline.

5. Facial Animation

Facial animation using Blend Shape.

Lab: Blend Shape

Facial deformation using blend shape interpolation.

6. Affine Transformation

Facial animation using Blend Shape.

7. Rotation and Quaternion

Facial animation using Blend Shape.

8. Volume Deformation (I)

User-based deformation using local parametric deformers - pull, twist, pinch.

Lab: Procedural deformers

Interactive sculpting brush deformers.

9. Volume Deformation (II)

Presentation of different methods for volume based deformation. Free Form Deformation (FFD) using a lattice. Cage based deformation using mean value coordinates and extensions.
Vector field deformation with a focus on divergence free constraint.

Lab: Free Form Deformation

Implementation of a Free Form Deformation for interactive volume deformation.

10. Surface Deformation

Notions of differential coordinates on discrete surface with a focuss on Laplacian coordinates, and their use for smooth surface deformation in solving a sparse least square problem. Extension to As-Rigid-As-Possible (ARAP) deformation.

Lab: Laplacian editing, ARAP

Implementation of a Free Form Deformation for interactive volume deformation.

11. Animation Pipeline

A general introductive presentation on methods and steps used in the 3D Animation Production PipeLine such as Animation Cinema and Visual Effects.
A final focus on expressive animation principles.

12. Skinning

Skin deformation using Skinning. Presentation of Rigid skinning, Linear Blend Skinning, and improvement using Dual Quaternion Skinning.

Lab: Skinning

Implementing a Linear Blend Skinning, followed by Dual Quaternion Skinning.

13. Skeletal Animation

Encoding and animating a skeletal structure using Forward Kinematics and Inverse Kinematics.
Motion synthesis and design: Motion Graphs, Controlers, Learning-based approaches, User control.

14. Crowd

Crowd animation using Boids models.

15. Simulation Models

Presentation of the fundamental models of physically-based simulation. Particle based models; Rigid bodies: angular velocity, inertia, dynamics of forces and torques; Continuum material: Notion of stress and strain; Lagrange representation and fundamental equation of dynamics, Euler representation and derivation of Navier-Stokes equation.

16. Rigid Spheres

Application case of colliding spheres in a box. Collision between sphere and plane, collision between spheres.

Lab: Colliding Spheres Simulation

Implementing a box filled with colliding spheres using numerical integration. Handle collision betwenn spheres and the box as well as between spheres.

17. Cloth Simulation

Modeling elastic shape and cloth surfaces using mass spring structure.

Lab: Mass-spring simulation of cloth

Cloth simulation using mass springs: generate spring topology and compute spring forces, handle collisions with surrounding elements.

18. Numerical solution to ODE

Numerical solution of ODEs: Explicit methods, Implicit methods, Runge Kutta, Symplectic integrators.
Cloth simulation using mass springs, collision handling and extensions.

19. Fluids (I)

Interactive grid based solution using Stable Fluids.

Lab: Stable fluids

Implementing a stable fluids simulation on a grid: Compute diffusion and divergence free constraint in solving a Poisson equation using Gauss Seidel method.

20. Fluids (II)

Presentation of various fluids models: Procedural method for ocean models; Level set approaches; PIC/FLIP approaches mixing grid and particles; and final focus on Smoothed Particle Hydrodynamics (SPH) for purely particle based model.

Lab: SPH

Implementing a SPH fluid simulation: Compute the density, pressure force and viscosity.