The coursework will focus on seven themes. Each theme is divided into weekly assignments, or "milestones." Each milestone will include successful implementation of new technical features, and an artistic scene that demonstrates these features.
Theme 01: Mass-spring systems, in which you will implement point masses, gravity, springs, dampers, time integrators (explicit Euler, symplectic Euler, linearized implicit Euler).
Theme 02: Collision handling, in which you will implement detection against fixed obstacles (discs, half-planes, polygonal objects), response against fixed obstacles (using reflection with a coefficient of restitution, and penalty methods), advanced pairwise detection between polygonal objects, and broad-phase accelerations using spatial hashing and hierarchical bounding volumes.
Theme 03: Rigid bodies, in which you will implement computations of center of mass and moment of intertia for polygonal objects, time integration for rigid bodies, and contact with fixed obstacles.
Theme 04: Elastica, in which you will implement the constant strain finite element, a discrete bending force for polygonal objects, and plastic and viscous flow.
Theme 05: Fluids, in which you will implement a fast and stable fluid simulation including advection, convection, and viscosity, in an Eulerian framework.
Theme 07: Project, in which you are the boss.