Stanford University, Fall 2017
CS 348C: Computer Graphics: Animation and Simulation

Instructor:
Prof. Doug James




Description: Core mathematics and methods for computer animation and motion simulation. Traditional animation techniques. Physics-based simulation methods for modeling shape and motion: particle systems, constraints, rigid bodies, deformable models, collisions and contact, fluids, and fracture. Animating natural phenomena. Methods for animating virtual characters and crowds. Additional topics selected from data-driven animation methods, realism and perception, animation systems, motion control, real-time and interactive methods, and multi-sensory feedback.

Location
Gates B12 (new location!)
Mitchb67
Time
TuTh 1:30PM - 2:50PM
Office Hours (Prof)
Wed 4:30-6:00 PM (Gates 362), or by appointment
TA
Ante Qu (CS PhD student)
Office hours: Mondays 1-3 pm (Gates B21) and Fridays 3-5 pm (Gates 260), also Thursday 10/19 at Gates 498, but no OH Friday 10/20 or Monday 11/27
Prerequisites
Recommended: CS148 and/or CS205A. Prerequisite: linear algebra. (or permission of instructor)
Textbook
None; lecture notes and research papers assigned as readings will be posted here.
Communication
Piazza: http://piazza.com/stanford/fall2017/cs348c/home
Requirements
Students are expected to attend the lectures, participate in class discussions, and read the supplemental materials.
Assignments
There will be programming assignments, and a final project based on a student-selected topic.
Exams
None.
ExploreCourses
Link

ASSIGNMENTS (Tentative--depends on student interest)
  1. Programming assignment #1: Robust Collision Processing
  2. Programming assignment #2: Constrained Dynamics (inextensible strands)
  3. Programming assignment #3: Affine Particle-in-Cell (APIC) fluid simulation
  4. Final project (student's choice)


SCHEDULE (Fall 2017)

DATE
TOPIC
SUPPLEMENTAL MATERIALS
TuSep26
Introduction

Slides (PDF)

Readings:

ThSep28
Particle Systems


Material:
  • Particle dynamics
  • Energy-based modeling of forces
  • Numerical integration

References:

ThSep28
TuOct03
ThOct05
Robust Collision Processing


Material:
  • Collision detection basics (broad/narrow phases)
  • Velocity-level collision resolution
  • Continuous collision detection
    • 2D (point-edge, sphere-sphere), and 3D (point-face, edge-edge) tests
  • Impulse resolution; restitution coefficient
  • Supporting pin/trajectory constraints
    • Inverse-mass-matrix filtering
  • Penalty forces
  • Rigid cloth zones
References:

Assignment #1:
Robust Collision Processing

(a.k.a. "The Spaghetti Factory (Take 2)")

Starter Code available on Canvas.
TuOct10
TuOct17
Constrained Dynamics

Material:
  • Holonomic constraints, C(p)=0.
  • Example: Bead on a wire
  • Differentiating constraints w.r.t. time.
  • Constraint Jacobian, J
  • Lagrange multipliers, lambda, and constraint forces, J^T lambda
  • Solving for Lagrange multipliers
  • (Implicit constraint (and half-explicit) DAE integration schemes)
  • Post-step projection schemes
    • Position- vs velocity-based corrections
  • Applications: Mechanical linkages, inextensibility constraints, incompressible flow, contact constraints
References:
[Advanced] References for Differential-Algebraic Equations (DAEs):
ThOct12
Taking Derivatives:
From Tensor Calculus, to Symbolic and Automatic Differentiation

Material: Differentiating the following quantities with respect to particle position vectors, p_i:
  • constant, c
  • position, p_j
  • vectors, (p_j-p_k)
  • distances, ||p_j-p_k||
  • distance powers, ||p_j-p_k||^n
  • functions of distance, W(||p_j-p_k||)
  • dot products, (p_1-p_0)^T (p_3-p_2)
  • cross products
  • Example: hair bending energy derivative, E = k*sin^2(theta/2)  [handout] [Mathematica]
Other topics:
Reference:
ThOct12
ThOct19
TuOct24
Rigid-Body Dynamics
References:

Assignment #2: Constrained Dynamics


  • Starter Code: Use your code from Assignment #1.
  • Relevant 2016 written assignment on inextensibility constraints (handout, solution)
TuOct24
Final Project Proposal
ThOct26
TuOct31
ThNov02
TuNov07
Fluid Animation

Topics:
  • Navier-Stokes equations; Euler equations for inviscid fluids
  • Advection; semi-Lagrangian methods
  • Splitting schemes
  • Incompressibility constraint & divergence-free flow
  • Helmholtz-Hodge decompositions; pressure projection
  • PIC/FLIP methods [Zhu & Bridson 2005]
  • APIC method [Jiang et al. 2015]
Materials:

Assignment #3: APIC Fluid Simulation


ThNov09
Application of Rigid-Body Motion:
Shape Matching Methods

Discussed:
  • Projecting particle motion to be rigid motion
  • Rigid-body shape matching
  • Fast Lattice Shape Matching (FastLSM)
  • Other methods (adaptive FastLSM; oriented particles)
Material:
  • Matthias Müller, Bruno Heidelberger, Matthias Teschner, Markus Gross, Meshless deformations based on shape matching, ACM Transactions on Graphics, 24(3), August 2005, pp. 471-478. [ACM] [PDF] [AVI]
  • Alec R. Rivers, Doug L. James, FastLSM: Fast Lattice Shape Matching for Robust Real-Time Deformation, ACM Transactions on Graphics, 26(3), July 2007, pp. 82:1-82:6. [ACM] [PDF]
  • Denis Steinemann, Miguel A. Otaduy, Markus Gross, Fast Adaptive Shape Matching Deformations, ACM SIGGRAPH/Eurographics Symposium on Computer Animation, Dublin, July 7-9, 2008. [PDF] [AVI]
  • Matthias Müller and Nuttapong Chentanez. Solid simulation with oriented particles. ACM Trans. Graph. 30, 4, Article 92 (July 2011), 10 pages, 2011. [ACM] [PDF] [MOVIE]
TuNov14
ThNov16
Rigid-body Contact:
Impulse- and Contraint-based Methods:




Material: 
TuNov28
Particle-based Fluids



Material:
ThNov30
Animation Sound



Material:
TuDec05
Guest Speaker


Guest Speaker:
Title:
  • "Just Enough Non-Linearity"
BONUS:
  • LUNCH: Attend the student lunch (noon-1pm) with Ted in Gates 392 to hear more about life at Pixar, etc.
ThDec07
Project Presentations













Related prior course on Physically Based Animation (Cornell)

SCHEDULE (Fall 2016 CS348C Course):
DATE TOPIC SUPPLEMENTAL MATERIALS

Prog. Assignment #1:
Position-Based Fluids


ThOct13
TuOct18
Implicit Integration
& Cloth Simulation

Material:
ThOct27
TuOct29
Position-Based Simulation Methods                                                     
and other relaxation-based dynamics
 
References:
  • Jan. Bender, Matthias. Müller, Miles. Macklin, Position-Based Simulation Methods in Computer Graphics, EUROGRAPHICS Tutorial Notes, 2015, Zürich, May 4-8. (Course Notes)(Slides)
  • M. Müller, B. Heidelberger, M. Hennix, J. Ratcliff, Position Based Dynamics, Proceedings of Virtual Reality Interactions and Physical Simulations (VRIPhys), pp 71-80, Madrid, November 6-7 2006, Best Paper Award, PDF, (video), (slides)
    • Miles Macklin, Matthias Müller, Nuttapong Chentanez: XPBD: Position-Based Simulation of Compliant Constrained Dynamics in Proceedings of ACM Motion in Games, San Francisco, October 2016
      [PDF][Slides][Video][Youtube] (An improved PBD approach)
Other Reading:
TuNov01
Prog. Assignment #2:
Position-Based Dynamics


ThNov03
Fracture Animation

Material:

ThNov17
Guest Speaker

Guest Speaker:

Material:

Power Particles: An incompressible fluid solver based on power diagrams
de Goes, Wallez, Huang, Pavlov, Desbrun
SIGGRAPH / ACM Transactions on Graphics (2015)
preprint video I video II dl.acm

TuNov22
ThNov24
Thanksgiving Break
(No classes)

TuNov29
No class (Adobe-Stanford retreat)

ThDec01
Final-Project Working Class

  • Come to class prepared to discuss & work on your final project
  • Bring questions
TuDec06
Noise & Turbulence Modeling
from [Kim et al. 2008]
Materials:
TuDec13
Final Project Due Date
Submit your project online via Canvas.