This class is over. It was taught in a previous semester.

CS599 Physically Based Modeling for Interactive Simulation and Games

This is the Spring 2010 class version. Click here for Spring 2011.

Administrative Matters


Spring 2010, Tuesday and Thursday, 12:30-1:50, VHE 210

Instructor: Jernej Barbic

·      Office: SAL 230

·      Office hours: Tue 1:50 - 2:35, Thu 1:50 - 2:35

·      Phone: 213-740-1914

·      Email:

TAs: none

Introduction and Purposes


This course introduces students to physically based simulation for computer graphics and related fields. Physically based simulation is an active research area in computer graphics, with applications to computer games, virtual reality systems, and movie special effects. Efficient numerical methods for simulating a variety of visually interesting physical phenomena will be discussed in the context of interactive simulation. Topics include deformable objects (solids, cloth), fluids, sound simulation, collision detection, haptics, rigid body dynamics, and GPU programming. In addition to computer science students, this course should also be appropriate for graduate students in related disciplines such as mathematics and physics.




Date Topic Reading, slides, and other material Notes Scribe notes
Tue Jan 12 2010

Overview of physical simulation in computer graphics and interactive applications

Thu Jan 14 Overview of physical simulation in computer graphics and interactive applications
Tue Jan 19 Primer on numerical simulation and linear algebra for graphics D. Baraff and A. Witkin: Physically Based Modeling, course notes, SIGGRAPH 2001
Thu Jan 21

OpenGL Red Book, Chapters 1-3

CMU slides on OpenGL

OpenGL "Hello world" application (with GLUT)    Makefile (Mac OS X)

Assignment 1 out
Tue Jan 26

OpenGL Red Book, Chapters 4 (Color), 5 (Lighting), 9 (Texture Mapping)

CMU slides on OpenGL shading CMU slides on texture mapping
Thu Jan 28

Structured deformable objects: cloth

D. Baraff and A. Witkin: Large steps in cloth simulation, SIGGRAPH 1998

Tue Feb 2

Structured deformable objects: hair

F. Bertails, B. Audoly, M.P. Cani, B. Querleux, F. Leroy, J.L. Lévêque: Super-Helices for Predicting the Dynamics of Natural Hair, SIGGRAPH 2006

S. Hadap and co-organizers: Strands and Hair: Modeling, Animation, and Rendering, course notes, SIGGRAPH 2007

Zhiyang Wang
Thu Feb 4 Structured deformable objects: FEM M. Mueller and M. Gros: Interactive virtual materials, Graphics Interface 2004 Sikai Zhu
Tue Feb 9

Lagrange mechanics and FEM

J. Barbic: Real-time Reduced Large-Deformation Models and Distributed Contact for Computer Graphics and Haptics , PhD thesis, 2007 (pages 33-42)

M. Mueller and co-organizers: Real-time physics, course notes, SIGGRAPH 2008 (pages 43-51)

S. Capell, S. Green, B. Curless, T. Duchamp, Z. Popovic: Interactive Skeleton-Driven Dynamic Deformations, SIGGRAPH 2002

Assignment 1 due

Video of the student solutions

Chi Zhou
Thu Feb 11

Rigid body dynamics

D. Baraff and A. Witkin: Physically Based Modeling, course notes (the chapter on Rigid Body Dynamics), SIGGRAPH 2001 Jingqiao Fu
Tue Feb 16 Constraints and contact D. Baraff and A. Witkin: Physically Based Modeling, course notes (the chapters "Constrained Dynamics" and "Collision and Contact"), SIGGRAPH 2001 Michael Carroll
Wed Feb 17
11am-12:30pm, SAL 322
Collision detection

Ming Lin's course notes on collision detection    Collision detection at UNC, Chapel Hill

The Gilbert-Johnson-Keerthi Algorithm (

Y. Kim, M. Otaduy, M. Lin, D. Manocha: Fast Penetration Depth Computation for Physically-based Animation, ACM SIGGRAPH/Eurographics Symposium on Computer Animation, 2002

Kushan Narendra Shah
Thu Feb 18 Collision detection

Ming Lin's course notes on bounding volume hierarchies and spatial partitioning   

S. Gottschalk, M. Lin, D. Manocha: OBB-Tree: A Hierarchical Structure for Rapid Interference Detection, SIGGRAPH 1996

S. Quinlan: Efficient Distance Computation between Non-Convex Objects, ICRA 1994

Project proposal due

Assignment 2 out

Evan Hatch
Tue Feb 23 No class
(instructor at a workshop; extra class on Feb 17)
Thu Feb 25 No class
(instructor at a workshop; extra class on Feb 17)
Tue Mar 2

Fracture and cutting

J. O'Brien and J. Hodgins: Graphical Modeling and Animation of Brittle Fracture, SIGGRAPH 99. Yu Yu Xu
Thu Mar 4 Fracture and cutting E. Parker and J. O'Brien: Real-Time Deformation and Fracture in a Game Environment, ACM SIGGRAPH/Eurographics Symposium on Computer Animation, 2009 Brandon Booth
Tue Mar 9

Fluids (Navier-Stokes)

J. Stam: Stable Fluids, SIGGRAPH 1999 Assignment 2 due Amol Sahijwani
Thu Mar 11 Fluids (Navier-Stokes)

N. Foster, D. Metaxas: Realistic animation of liquids, Graphical Models and Image Processing, 58(5), 1996

Yili Zhao
Tue Mar 16 No class (spring break)
Thu Mar 18 No class (spring break)
Tue Mar 23 Fluids (Navier-Stokes)

A. Treuille, A. Lewis, Z. Popovic: Model reduction for real-time fluids, SIGGRAPH 2006

Chih-Kuang Chen
Thu Mar 25


K. Salisbury and F. Conti: Haptic Rendering: Introductory Concepts, IEEE Computer Graphics, 2004 (a survey)

M. Lin and M. Otaduy: Recent Advances in Haptic Rendering & Applications, SIGGRAPH 2005 Course Notes

J. Barbic and D. James: Six-DoF Haptic Rendering of Contact between Geometrically Complex Reduced Deformable Models, IEEE Transactions on Haptics 2008

Project report due

Heejin Choi
Tue Mar 30

Sound simulation

J. O'Brien, C. Shen, and C. Gatchalian: Synthesizing Sounds from Rigid-Body Simulations, SCA 2002

Project milestone

Deepanshu Malik
Thu Apr 1 Sound simulation J. Chadwick, S. An, and D. James: Harmonic Shells: A Practical Nonlinear Sound Model for Near-Rigid Thin Shells , SIGGRAPH Asia 2009 Ankit Sharma
Tue Apr 6

Simulation on programmable graphics hardware (GPUs)

C. Everitt: OpenGL ARB Vertex Program, E. Hart: OpenGL ARB Fragment Program, Game Developers Conference 2003
L. Wei: A Crash Course on Programmable Graphics Hardware   GP-GPU Tutorial
OpenGL API OpenGL Shading Language Sample Code & Tutorials   Cg (Nvidia)

David Mazzocco
Thu Apr 8

Simulation on programmable graphics hardware (GPUs)

J. Georgii, R. Westermann: Mass-spring systems on the GPU
Nvidia's CUDA   Trefftz and Wolffe: Tutorial on CUDA   OpenCL

Akshay Shukla
Tue Apr 13

Multiresolution simulation

M. Otaduy, D. Germann, S. Redon, M. Gross: Adaptive Deformations with Fast Tight Bounds, ACM SIGGRAPH/Eurographics Symposium on Computer Animation, 2007

A. Brandt: Multi-level Adaptive Solutions to Boundary-value Problems, Math. of Computation, 31(138), 1977

E. Grinspun, P. Krysl, P. Schroeder: CHARMS: A Simple Framework for Adaptive Simulation, SIGGRAPH 2002

Paul Heckbert's Scientific Computing Slides

Thu Apr 15

Case study: Havok engine for physics in games

Slides (ppt)

Havok Physics  Open Dynamics Engine (ODE)

Tue Apr 20

Data-driven approaches to simulation (motion capture)

Jessica Hodgins's slides on motion capture

J. Lee, J. Chai, P. Reitsma, J. Hodgins, N. Pollard: Interactive Control of Avatars Animated with Human Motion Data, SIGGRAPH 2002

J. Barbic, A. Safonova, J. Pan, C. Faloutsos, J. Hodgins, N. Pollard: Segmenting Motion Capture Data into Distinct Behaviors, Graphics Interface, 2004

Sunil Ingle
Thu Apr 22 Data-driven approaches to simulation (motion capture) V. Zordan, N. Horst: Mapping optical motion capture data to skeletal motion using a physical model, ACM SIGGRAPH/Eurographics Symposium on Computer Animation, 2003    Slides    Videos
Tue Apr 27 Project presentations
Thu Apr 29 Project presentations Project due



  • A grade of at least B in CS580, or explicit permission of instructor
  • Familiarity with calculus, linear algebra, and numerical computation
  • C/C++ programming skills



  • Overview of physical simulation in computer graphics and interactive applications
  • Primer on numerical linear algebra
  • Dynamical systems, numerical integration of ODEs
  • Constraints and contact
  • Rigid body dynamics
  • Collision detection
  • Structured deformable objects (solids, cloth, hair)
  • Fracture and cutting
  • Fluids (Navier-Stokes)
  • Multiresolution geometric and physical modeling
  • Haptics
  • Sound simulation (acoustics)
  • Programmable graphics hardware (GPUs)
  • Case study: Havok engine for physics in games
  • Data-driven approaches to simulation (motion capture)




    There is no required textbook. Selected articles, book chapters, and course notes will be made available online. A reference book on OpenGL is recommended for help with the homework and the project. Examples of selected articles to be covered in class:


    Baraff, Witkin: Large steps in cloth simulation, SIGGRAPH 1998


    Jos Stam: Stable Fluids, SIGGRAPH 1999


    E. G. Parker and J. F. O'Brien: Real-Time Deformation and Fracture in a Game Environment, ACM SIGGRAPH/Eurographics Symposium on Computer Animation, 2009


    Assignments and project


    There will be two programming homework assignments, and a programming class project.


    In each assignment, the student will program an interactive computer graphics simulation, related to the material covered in class. Tentative topics are a mass-spring system simulation, and a dynamic simulation of rigid bodies with constraints.


    Students will be able to select their individual topic for the final project.  Examples: implement a SIGGRAPH paper of your choice, implement an elaborate demo using a physics game engine (e.g., Havok), a fluid solver, a collision detection algorithm, a robotic rigid multi-body system, a real-time sound simulator, a fast FEM deformable object simulation, a simulation in CUDA, etc.


    Backgrounds in OpenGL or Direct3D are going to be very helpful for the homework assignments and the project. There will be at least one programming assignment in OpenGL and C. Students who do not have experience with OpenGL can still take the course, but they have to be ready to spend additional time to gain the necessary OpenGL proficiency to program the assignments.


    Scribe notes


    Every student will be taking scribe notes in one lecture during the semester, establishing a common reference point for the class. The quality of the scribe notes will be a factor in the student's class participation grade. The scribe notes should accurately represent the material discussed in class. Expected length of the notes is 1-2 pages. For example, see the following notes for a lecture in the CMU machine learning course. The notes are due 1 week after the lecture, and must be submitted by email to the instructor. In order to reserve a lecture to scribe, students should send an email to the instructor. If a student does not have a lecture assigned by Thursday, Jan 28, he or she will be assigned one by the instructor.


    All scribe notes will be published publicly on the course website, so that the rest of the class can use them to review the class material. By default, the student's name will be included with the notes - but a student may, at his or her discretion, request for the notes to be made anonymous. Doing so will have no effect on the student's grade.




    All the assignments and the note-scribing must be done individually. The project can be done either individually, or in a group of two students. All assignments, scribe notes, and the project must be completed to pass the course.


    ·      Assignments: 20% each (40% total)

    ·      Project: 50%

    ·      Class participation: 10%


    The project grade will include the quality of the project proposal, project progress report, project milestone results, final project report, and the mandatory in-class project presentation.


    Late policy


    All work submitted after the deadline will receive a substantial score deduction, including potentially a zero score. Exceptions will be granted only under most dire circumstances and must be discussed with and approved by the instructor in advance.


    Statement for Students with Disabilities


    Any student requesting academic accommodations based on a disability is required to register with Disability Services and Programs (DSP) each semester. A letter of verification for approved accommodations can be obtained from DSP. Please be sure the letter is delivered to me (or to TA) as early in the semester as possible. DSP is located in STU 301 and is open 8:30 a.m.–5:00 p.m., Monday through Friday. The phone number for DSP is (213) 740-0776.


    Academic integrity


    All students are expected to maintain the utmost level of academic integrity. Passing off anyone else's (whether it be a fellow student or someone outside the university) work as your own is a serious infraction, and will lead to appropriate sanctions. Files that are clearly the same, or altered copies of each other, will receive zero credit and the USC Office of Student Judicial Affairs and Community Standards will be notified. Please consult the USC Student Conduct Code for details on what is and is not appropriate, and for the possible consequences of infractions.


    USC Statement on Academic Integrity


    USC seeks to maintain an optimal learning environment. General principles of academic honesty include the concept of respect for the intellectual property of others, the expectation that individual work will be submitted unless otherwise allowed by an instructor, and the obligations both to protect one’s own academic work from misuse by others as well as to avoid using another’s work as one’s own. All students are expected to understand and abide by these principles. Scampus, the Student Guidebook, contains the Student Conduct Code in Section 11.00, while the recommended sanctions are located in Appendix A. Students will be referred to the Office of Student Judicial Affairs and Community Standards for further review, should there be any suspicion of academic dishonesty. The Review process can be found at: