CS 6660 - Spring 2016 - Physics-based Animation

Instructor:Ladislav Kavan
Time:Tuesday & Thursday @ 9:10pm - 10:30pm
Location:WEB 1248


Physically based simulation techniques have revolutionized special effects in film and video games, creating extremely realistic effects while allowing high levels of artistic control. This course explores physically based simulation methods for computer animation of a wide variety of phenomena and materials, such as rigid and deformable solids, cloth, and liquids. Students will be introduced to numerical methods, physical models, and theoretical results which form the building blocks of these methods. In addition to traditional off-line simulation approaches, this course will also focus on real-time physics, highly relevant e.g. in computer games and interactive simulators, such as virtual surgery. To gain hands-on experience, students will implement basic simulators for several phenomena. The course is appropriate for both upper level undergraduate and graduate students. At the conclusion of the course, a short presentation session will be held where teams will present their final projects.


In this course the students will be asked to complete three programming homework assignments, and a larger programming class project. In each assignment, the student will program an interactive computer graphics simulation, related to the material covered in class. The assignments will cover rigid body simulation, deformable bodies (cloth), and fluids. The teams will be able to select their individual topic for the final project. All the assignments must be done individually. The students may work in groups for the final project, typically of one to three students.


Students should have a good knowledge of C++ programming (or another object oriented language) and basic familiarity with linear algebra, caculus, and physics. Basic computer graphics skills are needed, the homework assignements assume familiarity with OpenGL.

Schedule (subject to change)

1Jan 12Introduction
Jan 14Multi-variate calculus
2Jan 19Gradient and Hessian of a Hookean spring
Jan 21Mass-spring Systems 1
3Jan 26Mass-spring Systems 2
Jan 28Position Based Dynamics
4Feb 2Project 1: Soft-body physics
Feb 4Rotations and quaternions
5Feb 9Unconstrained rigid body motion
Feb 11Nonpenetration constraints for rigid bodies
6Feb 16Project 2: Rigid-body physics
Feb 18Partial differential equations
7Feb 23Fluids 1: Grid-based methods
Feb 25Fluids 2: Smoothed Particle Hydrodynamics
8Mar 1Project 3: Fluids
Mar 3Collision detection 1
9Mar 8Collision detection 2
Mar 10Final projects kick-off
10Mar 15— Spring Break —
Mar 17— Spring Break —
11Mar 22Singular Value Decomposition
Mar 24Finite element method 1
12Mar 29Finite element method 2
Mar 31Fracture
13Apr 5Variational implicit integration, Newton's method
Apr 7Projective dynamics
14Apr 12Skinning
Apr 14Biomechanics and anatomical simulation
15Apr 19Final project demos 1
Apr 21Final project demos 2
16Apr 26Open problems in physics-based animation
Apr 28