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