Stanford CS248B
Resources
References and learning tools for physics-based animation and simulation. General material comes
first, followed by readings for each lecture, which are added after the lecture is given. For a
specific offering's schedule, slides, and assignments, see the
list of course offerings.
General
Free course notes and books
- Andrew Witkin and David Baraff. Physically Based Modeling: Principles and Practice. SIGGRAPH 1997 course notes.
The classic introduction, with short chapters on differential equations, particle
dynamics, implicit methods, constrained dynamics, and rigid bodies.
- Daniel Shiffman. The Nature of Code:
Simulating Natural Systems with JavaScript. No Starch Press, 2024. Free to read online.
All examples are in p5.js, the library we use. Chapters on vectors, forces,
oscillation, particle systems, and physics libraries.
- Justin Solomon. Numerical Algorithms. A K Peters/CRC Press, 2015. Free PDF from the author.
Chapter 15 of the PDF, Ordinary Differential Equations, covers the integrators
used in this course.
- Theodore Kim and David Eberle. Dynamic Deformables: Implementation and Production Practicalities. SIGGRAPH 2020
and 2022 Courses (ACM: 2020,
2022).
Notes and code for deformable simulation as practiced at Pixar.
- Eftychios Sifakis and Jernej Barbič. FEM Simulation of 3D Deformable Solids: A Practitioner's Guide to Theory, Discretization
and Model Reduction. SIGGRAPH 2012 Courses
(ACM).
- Robert Bridson and Matthias Müller-Fischer. Fluid Simulation for Computer Animation. SIGGRAPH 2007 course
notes.
Free notes that later grew into Bridson's book, listed below.
Books
Surveys and tutorials
On publisher sites; these may need Stanford library access.
- Adam W. Bargteil and Tamar Shinar. An Introduction to Physics-Based Animation. SIGGRAPH 2019 Courses.
- Andrew Nealen, Matthias Müller, Richard Keiser, Eddy Boxerman, and Mark Carlson.
Physically
Based Deformable Models in Computer Graphics. Computer Graphics Forum, 2006.
- Jan Bender, Matthias Müller, Miguel A. Otaduy, Matthias Teschner, and Miles Macklin.
A Survey on Position-Based
Simulation Methods in Computer Graphics. Computer Graphics Forum, 2014.
- Matthias Müller, Bruno Heidelberger, Marcus Hennix, and John Ratcliff.
Position Based
Dynamics. Journal of Visual Communication and Image Representation, 2007.
Numerical linear algebra
Background for solving the large sparse linear systems in this course, such as the pressure
Poisson equation in fluids and the systems in implicit integration. If scientific computing is new to you, start
with the first two.
- Jonathan Richard Shewchuk. An Introduction to the Conjugate Gradient Method Without the Agonizing Pain.
Carnegie Mellon University, 1994. Free PDF.
Builds conjugate gradients step by step from quadratic forms and steepest descent, with
many illustrations, and covers preconditioning. A gentle first read on the method.
- Solomon, Numerical Algorithms (listed
above): Chapter 3 (Linear Systems and the LU Decomposition), Chapter 4 (Designing and Analyzing Linear Systems),
and Chapter 11 (Iterative Linear Solvers).
- Lloyd N. Trefethen and David Bau III. Numerical Linear Algebra. SIAM,
1997; twenty-fifth anniversary edition, 2022.
A standard introduction to classical numerical linear algebra.
- Gene H. Golub and Charles F. Van Loan. Matrix Computations,
4th edition. Johns Hopkins University Press, 2013.
A comprehensive reference, including direct factorizations.
- Timothy A. Davis. Direct Methods for Sparse Linear Systems. SIAM,
2006.
Sparse Cholesky and LU factorization, fill-reducing orderings, and the CSparse
code.
- Richard Barrett, Michael Berry, Tony F. Chan, James Demmel, June Donato, Jack Dongarra, Victor Eijkhout, Roldan
Pozo, Charles Romine, and Henk van der Vorst. Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods.
SIAM, 1994. Free electronic version on Netlib.
Short, practical descriptions of the standard iterative methods, including conjugate
gradients, and of preconditioners such as Jacobi, SSOR, and incomplete factorizations.
- Yousef Saad. Iterative Methods for Sparse Linear Systems, 2nd edition.
SIAM, 2003. Free PDF from the author.
Krylov subspace methods and preconditioning in depth, with a chapter on multigrid.
- William L. Briggs, Van Emden Henson, and Steve F. McCormick. A Multigrid Tutorial,
2nd edition. SIAM, 2000.
An introduction to multigrid, through algebraic multigrid.
Websites, videos, and talks
- Christopher Batty. Physics-Based Animation blog.
Lists new papers by conference, such as SIGGRAPH and SIGGRAPH Asia, and catalogues
people and software in the field. Good for browsing what is current in research.
- Matthias Müller. Ten Minute Physics
(YouTube).
Short videos, each with a small JavaScript demo that runs in the browser.
- Erin Catto. Box2D
publications.
GDC talks by the author of the Box2D physics engine, with slides and some source
code, on integration, constraints, contact, GJK distance, continuous collision, and bounding volume
hierarchies.
Programming tools
- p5.js and its
reference documentation.
- OpenProcessing.
- Shadertoy, co-founded by Inigo
Quilez and Pol Jeremias, a site for creating and sharing real-time graphics programs. Many SDF and
ray-marching examples run live in the browser.
- Graphtoy, Inigo Quilez's browser tool
for graphing functions. Handy for trying out SDF formulas and boolean combinations.
By Lecture (Fall 2026)
Lecture 2: Particle Systems and ODEs
- Witkin and Baraff, Physically Based Modeling: the chapters "Differential Equation Basics", "Particle
Dynamics", and "Implicit Methods".
- Solomon, Numerical Algorithms: Chapter 15 of the PDF, Ordinary Differential Equations.
- Uri M. Ascher and Linda R. Petzold. Computer Methods for Ordinary Differential Equations and Differential-Algebraic
Equations. SIAM, 1998.
Chapters 2 to 4 (On Problem Stability; Basic Methods, Basic Concepts;
One-Step Methods) are the most relevant to this lecture.
- Shiffman, The Nature of Code:
Chapter 2 (Forces) and Chapter 4 (Particle Systems), in p5.js.
- John Denker. Basic Properties of a Symplectic Integrator.
A visual explanation of why a symplectic integrator behaves better than a
non-symplectic one.
- Erin Catto, "Numerical Integration" (GDC 2009) and "Numerical Methods" (GDC 2015), on the
Box2D publications page.
- William T. Reeves. Particle
Systems—a Technique for Modeling a Class of Fuzzy Objects. ACM Transactions on Graphics, 1983.
- Andrew P. Witkin and Paul S. Heckbert. Using Particles to Sample and Control Implicit Surfaces. SIGGRAPH '94.
Lecture 3: Resolving Particle Collisions
- Robert Bridson, Ronald Fedkiw, and John Anderson. Robust Treatment of Collisions, Contact and Friction for Cloth
Animation. ACM Transactions on Graphics, 2002.
- Inigo Quilez on signed distance functions:
- John C. Hart. Sphere
Tracing: A Geometric Method for the Antialiased Ray Tracing of Implicit Surfaces. The Visual
Computer, 1996.
The basis of the ray-marched ball collisions in P1.
- Matthias Müller, Ten Minute Physics, How to write a pinball simulation
(video,
code).
Ball-capsule collisions, collisions against boundaries made of line segments, and
touch and mouse input. A useful companion to P1.
Lecture 4: Collision Detection I
- Ericson, Real-Time Collision
Detection.
- Real-Time Rendering, Object/Object Intersection.
A grid of intersection tests for common shapes, pointing to code and
references.
- Jonathan Richard Shewchuk. Adaptive
Precision Floating-Point Arithmetic and Fast Robust Geometric Predicates. Discrete &
Computational Geometry, 1997.
The exact orientation tests mentioned in lecture.
Code and an
overview.
- Stefan Gottschalk, Ming C. Lin, and Dinesh Manocha. OBBTree: A Hierarchical Structure for Rapid Interference
Detection. SIGGRAPH 96.
The source of the 15-axis separating axis test for OBBs.
- David Eberly. Dynamic Collision Detection using Oriented Bounding Boxes.
Geometric Tools, 1999 (revised 2008). Free PDF.
- J. T. Klosowski, M. Held, J. S. B. Mitchell, H. Sowizral, and K. Zikan.
Efficient Collision Detection
Using Bounding Volume Hierarchies of k-DOPs. IEEE Transactions on Visualization and Computer
Graphics, 1998.
- Gino van den Bergen. Efficient Collision Detection of Complex Deformable Models using AABB Trees.
Journal of Graphics Tools, 1997.
- Philip M. Hubbard. Approximating
Polyhedra with Spheres for Time-Critical Collision Detection. ACM Transactions on Graphics,
1996.
Lecture 5: Collision Detection II
- Jonathan D. Cohen, Ming C. Lin, Dinesh Manocha, and Madhav Ponamgi.
I-COLLIDE: An Interactive and Exact Collision
Detection System for Large-Scale Environments. Symposium on Interactive 3D Graphics, 1995.
Sweep and prune.
- David Baraff. Dynamic Simulation of Non-Penetrating Rigid Bodies. Ph.D. thesis, Cornell University,
1992 (Cornell CS Technical Report 92-1275). Listed on the
author's page.
- Scott Le Grand. Broad-Phase
Collision Detection with CUDA. GPU Gems 3, Chapter 32. Free online from NVIDIA.
- Matthias Teschner, Bruno Heidelberger, Matthias Müller, Danat Pomeranets, and Markus Gross.
Optimized
Spatial Hashing for Collision Detection of Deformable Objects. Vision, Modeling, and Visualization
(VMV) 2003.
- Matthias Müller, Ten Minute Physics episodes, each with a browser demo and PDF notes:
- Erin Catto, "Dynamic Bounding Volume Hierarchies" (GDC 2019), on the
Box2D publications page.
- M. Teschner, S. Kimmerle, B. Heidelberger, G. Zachmann, L. Raghupathi, A. Fuhrmann, M.-P. Cani, F. Faure,
N. Magnenat-Thalmann, W. Strasser, and P. Volino. Collision
Detection for Deformable Objects. Computer Graphics Forum, 2005.
A survey.
- Doug L. James and Dinesh K. Pai. BD-Tree:
Output-Sensitive Collision Detection for Reduced Deformable Models. ACM Transactions on Graphics,
2004.
- Danny M. Kaufman, Rasmus Tamstorf, Breannan Smith, Jean-Marie Aubry, and Eitan Grinspun.
Adaptive Nonlinearity for Collisions in Complex Rod
Assemblies. ACM Transactions on Graphics, 2014
(project page).
- Huamin Wang. Defending Continuous Collision
Detection against Errors. ACM Transactions on Graphics, 2014.
Deformable Models (Lectures 6 and 7)
- Andrew Witkin and David Baraff. Physically Based Modeling, online SIGGRAPH 2001 course notes.
Cited in lecture. The Pixar address in the slides now redirects to a general Pixar page, so use the
Internet Archive copy of the
course
index. Its "Cloth and Fur Energy Functions" slides are the source of the hair bending model and the
length-dependent bending stiffness used in lecture. The course page allows the lecture-note chapters,
but not the slide sets, to be freely duplicated and distributed.
The 1997 Witkin and Baraff notes listed under General are the live companion,
but they do not include the cloth and fur material.
- David Baraff and Andrew Witkin. Large
Steps in Cloth Simulation. SIGGRAPH 98.
Author's PDF.
Where the energy, constraint function, and Jacobian formulation used in these
lectures comes from, together with the implicit integration that makes stiff cloth practical.
- Rasmus Tamstorf and Eitan Grinspun. Discrete
Bending Forces and Their Jacobians. Graphical Models, 2013.
Disney
Animation page, with the PDF.
Compact closed-form bending derivatives, and the answer to the lecture's
"what went wrong" with naive symbolic differentiation.
- Eitan Grinspun, Anil N. Hirani, Mathieu Desbrun, and Peter Schröder. Discrete Shells.
Eurographics/SIGGRAPH Symposium on Computer Animation, 2003 (Eurographics Digital Library).
The dihedral-angle bending model behind the cloth and shell bending slides.
- Naive
Mathematica codegen example, linked from the lecture slides.
A cautionary tale: differentiating a hinge bending energy symbolically, with no
structure imposed, explodes into an unusable number of terms.
- Also listed under General, and worth reading for these lectures:
Deformable Collision Processing (Lectures 8 and 9)
- Cem Yuksel. High-Performance
Polynomial Root Finding for Graphics. Proceedings of the ACM on Computer Graphics and
Interactive Techniques, 2022.
Author's page,
with code.
Cited in lecture. Why the textbook root formulas are not good enough when
collision detection generates billions of polynomials.
- Xavier Provot. Collision
and Self-Collision Handling in Cloth Model Dedicated to Design Garments. Computer Animation and
Simulation '97, Eurographics.
The classic cloth collision pipeline these lectures descend from.
- David Harmon, Etienne Vouga, Rasmus Tamstorf, and Eitan Grinspun.
Robust Treatment of
Simultaneous Collisions. ACM Transactions on Graphics, 2008.
What to do when the iterative impulse loop will not converge, and why the order
collisions are processed in matters.
- Minchen Li, Zachary Ferguson, Teseo Schneider, Timothy Langlois, Denis Zorin, Daniele Panozzo,
Chenfanfu Jiang, and Danny M. Kaufman. Incremental
Potential Contact: Intersection- and Inversion-free, Large-Deformation Dynamics. ACM Transactions
on Graphics, 2020.
A modern alternative that guarantees no interpenetration, rather than detecting
and repairing it.
- Also listed above, and central to these lectures:
- Bridson, Fedkiw, and Anderson, Robust
Treatment of Collisions, Contact and Friction for Cloth Animation (under Lecture 3): the
reference for combining impulses, repulsion forces, and a fallback for the hard cases.
- Wang, Defending
Continuous Collision Detection against Errors, and Kaufman et al.,
Adaptive Nonlinearity
for Collisions in Complex Rod Assemblies (under Lecture 5): floating-point robustness in
exactly these tests.
- Baraff and Witkin, Large
Steps in Cloth Simulation (under Deformable Models): the implicit integration that closes
the lecture, and the constraint filtering that inverse-mass filtering descends from.
- Ascher and Petzold, Computer
Methods for Ordinary Differential Equations and Differential-Algebraic Equations (under
Lecture 2): stiffness and implicit methods in general.
Fluids (Lecture 10)
- Robert Bridson and Matthias Müller-Fischer. Fluid Simulation,
SIGGRAPH 2007 course notes (course page).
The main reference for this lecture. The course page also has public-domain code for
conjugate gradients with modified incomplete Cholesky preconditioning, for the pressure equations.
- Robert Bridson. Fluid Simulation for Computer Graphics, 2nd edition
(listed above): the book these notes grew into.
- Smoothed particle hydrodynamics (SPH) and particle fluids
- SPH began in astrophysics: L. B. Lucy, A Numerical Approach to the Testing of the Fission Hypothesis,
The Astronomical Journal, 1977; and R. A. Gingold and J. J. Monaghan,
Smoothed Particle Hydrodynamics: Theory and Application to Non-Spherical Stars,
Monthly Notices of the Royal Astronomical Society, 1977. For a review, see J. J. Monaghan,
Smoothed Particle Hydrodynamics, Annual Review of Astronomy
and Astrophysics, 1992.
- Matthias Müller, David Charypar, and Markus Gross. Particle-Based Fluid Simulation for Interactive Applications.
Symposium on Computer Animation, 2003.
Author's PDF.
- Barbara Solenthaler and Renato Pajarola. Predictive-Corrective Incompressible SPH.
ACM Transactions on Graphics, 2009.
- Miles Macklin and Matthias Müller. Position Based Fluids. ACM
Transactions on Graphics, 2013.
- Nadir Akinci, Markus Ihmsen, Gizem Akinci, Barbara Solenthaler, and Matthias Teschner.
Versatile Rigid-Fluid Coupling for Incompressible SPH. ACM Transactions
on Graphics, 2012.
- Fernando de Goes, Corentin Wallez, Jin Huang, Dmitry Pavlov, and Mathieu Desbrun.
Power Particles: An Incompressible Fluid Solver Based on Power Diagrams. ACM
Transactions on Graphics, 2015.
- Jihun Yu and Greg Turk. Reconstructing Surfaces of Particle-Based Fluids Using Anisotropic Kernels.
ACM Transactions on Graphics, 2013; first presented at the
Symposium on Computer Animation, 2010.
Turning particles into a smooth fluid surface: each particle's smoothing kernel is
stretched into an ellipsoid along the directions found by principal component analysis of its neighbors,
which captures thin streams and sharp features.
- Grid-based (Eulerian) fluids
- Hybrid particle-grid methods
- Yongning Zhu and Robert Bridson. Animating Sand as a Fluid. ACM
Transactions on Graphics, 2005.
Cited in lecture for FLIP.
- Matthias Müller, Ten Minute Physics, how to write a FLIP water simulator:
video,
demo,
notes.
- Chenfanfu Jiang, Craig Schroeder, Andrew Selle, Joseph Teran, and Alexey Stomakhin.
The Affine Particle-in-Cell Method. ACM Transactions on Graphics, 2015.
- Alexey Stomakhin, Craig Schroeder, Lawrence Chai, Joseph Teran, and Andrew Selle.
A Material Point Method for Snow Simulation. ACM Transactions on
Graphics, 2013.
- Solving the pressure Poisson equation
Forward Kinematics and Articulated Characters (Lecture 11)
- Kevin M. Lynch and Frank C. Park. Modern Robotics: Mechanics, Planning, and Control.
Cambridge University Press, 2017.
Free preprint from the authors.
Chapter 3 (Rigid-Body Motions) and Chapter 4 (Forward Kinematics). Chapter 6 covers
inverse kinematics.
- Steven M. LaValle. Planning Algorithms. Cambridge University Press,
2006. Free online from the author.
Chapter 3 (Geometric Representations and
Transformations): rigid-body transformations, 3D rotations, and transforming kinematic chains and
trees.
- Ijaz Akhter and Michael J. Black. Pose-Conditioned Joint Angle Limits for 3D Human Pose Reconstruction.
IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015.
Open access PDF.
Cited in lecture on how complex human joint limits are.
- Yifeng Jiang and C. Karen Liu. Data-Driven Approach to Simulating Realistic Human Joint Constraints.
IEEE International Conference on Robotics and Automation (ICRA), 2018.
arXiv version.
The learned, pose-dependent joint limits shown in lecture.
- Fernando de Goes, William Sheffler, and Kurt Fleischer.
Character Articulation through Profile Curves. ACM Transactions on
Graphics, 2022.
CurveNets, cited in lecture as an example of how film character rigs go beyond a
skeleton.
Inverse Kinematics (Lecture 12)
- Samuel R. Buss. Introduction
to Inverse Kinematics with Jacobian Transpose, Pseudoinverse and Damped Least Squares
Methods. University of California, San Diego. Free PDF from the author.
A short introduction to the Jacobian methods the lecture builds on: the Jacobian transpose, the pseudoinverse, and damped least squares, which handles near-singular poses.
- Andreas Aristidou and Joan Lasenby. FABRIK:
A Fast, Iterative Solver for the Inverse Kinematics Problem. Graphical Models, 2011.
Author's FABRIK page and
PDF,
both linked from the slides.
The heuristic alternative shown in lecture, which finds each joint position by locating a point on a line.
- Ladislav Kavan, Steven Collins, Jiří Žára, and Carol O'Sullivan.
Skinning with Dual
Quaternions. Symposium on Interactive 3D Graphics and Games, 2007.
A widely used alternative to linear blend skinning that avoids the twisting (candy-wrapper) artifact the lecture demonstrates.
- Matthew Loper, Naureen Mahmood, Javier Romero, Gerard Pons-Moll, and Michael J. Black.
SMPL: A Skinned
Multi-Person Linear Model. ACM Transactions on Graphics, 2015.
Project page.
Cited in lecture as an example of learning-based skinning.
- Yiming Xie, Varun Jampani, Lei Zhong, Deqing Sun, and Huaizu Jiang.
OmniControl:
Control Any Joint at Any Time for Human Motion Generation. International Conference on Learning
Representations, 2024. arXiv
version.
The text-to-motion example cited in lecture, which also lets users constrain any joint at any time.
- Setareh Cohan, Guy Tevet, Daniele Reda, Xue Bin Peng, and Michiel van de Panne.
Flexible Motion
In-betweening with Diffusion Models. SIGGRAPH 2024.
The in-betweening example that closes the lecture.
- Also listed above: Lynch and Park,
Modern
Robotics (under Lecture 11), whose Chapter 6 is a full treatment of inverse kinematics,
including the Newton-Raphson method.
Keyframe Interpolation (Lecture 13)
- Rick Parent and Andrew Hogue. Basic
Animation Techniques, in Computer Animation. Elsevier, 2026.
A textbook chapter on basic animation techniques.
- Doris H. U. Kochanek and Richard H. Bartels.
Interpolating Splines with
Local Tension, Continuity, and Bias Control. SIGGRAPH 84.
TCB splines: Catmull-Rom-style interpolation with tension, continuity, and bias controls at each key.
- John Lasseter. Principles
of Traditional Animation Applied to 3D Computer Animation. SIGGRAPH 87.
The principles of traditional animation, such as timing and slow in and slow out, applied to computer animation.
- Freya Holmér. The
Continuity of Splines. Video.
A long (about 74-minute) animated video on splines and their continuity.
- Also listed under General: Solomon,
Numerical
Algorithms, for the tridiagonal linear system that the natural C2 interpolating spline solves
for its tangents.
3D Orientation (Lecture 14)
- Stanley W. Shepperd. Quaternion
from Rotation Matrix. Journal of Guidance and Control, 1978.
The numerically stable conversion cited in lecture, which picks a formula based
on which term is largest.
- Yi Zhou, Connelly Barnes, Jingwan Lu, Jimei Yang, and Hao Li.
On the Continuity of
Rotation Representations in Neural Networks. CVPR, 2019.
The two-column representation covered in Part 5.
- Ken Shoemake. Animating
Rotation with Quaternion Curves. SIGGRAPH 85.
The paper that introduced slerp, the spherical linear interpolation of
quaternions used in lecture.
- F. Sebastian Grassia. Practical
Parameterization of Rotations Using the Exponential Map. Journal of Graphics Tools, 1998.
On using the exponential map, the axis-angle parameterization of the lecture,
in practice.
- Doug L. James and Christopher D. Twigg. Skinning
Mesh Animations. ACM Transactions on Graphics, 2005.
Project page.
Cited in lecture as an example of clustering rotation sequences.
- Also listed under Lecture 11: Lynch and Park,
Modern
Robotics, whose Chapter 3 covers rotation matrices and exponential coordinates for
rotation.