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

CS599 Physically Based Modeling for Interactive Simulation and Games
Spring 2011

Administrative Matters

Spring 2011, Monday and Wednesday, 2:00-3:20, SGM 226

Instructor: Jernej Barbic
Office: SAL 230
Office hours: Monday 3:30 - 5:00   

TA: Yili Zhao
Office: SAL 112
Office hours: Thursday 1:00 - 3:00

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 film 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.


Schedule | Prerequisites | Assignments and project | Grading


Date Topic Reading, slides, and other material Notes Scribe notes
Mon Jan 10 2011

Overview of physical simulation in computer graphics and interactive applications

Wed Jan 12 Overview of physical simulation in computer graphics and interactive applications
Mon Jan 17 No class (Martin Luther King Day)
Wed Jan 19 Primer on numerical simulation and linear algebra for graphics D. Baraff and A. Witkin: Physically Based Modeling, course notes, SIGGRAPH 2001 Assignment 1 out
Mon Jan 24

OpenGL Red Book, Chapters 1-3

CMU slides on OpenGL

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

Wed Jan 26

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

CMU slides on OpenGL shading CMU slides on texture mapping
Mon Jan 31

Structured deformable objects: cloth

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

Ankit Chaudhari
Wed 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

Doke Hrudesh
Mon Feb 7 Structured deformable objects: FEM M. Mueller and M. Gros: Interactive virtual materials, Graphics Interface 2004

Assignment 1 due

Fun Shing Sin
Wed 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

Rejah Anuvar
Mon Feb 14

Rigid body dynamics

D. Baraff and A. Witkin: Physically Based Modeling, course notes (the chapter on Rigid Body Dynamics), SIGGRAPH 2001 Jonathan Culp
Wed 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

Project proposal due

Assignment 2 out

Yufeng Zhu
Mon Feb 21 No class (President's Day)
Wed Feb 23 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

Recep Doga Siyli
Mon Feb 28 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

Yezhisai Murugesan
Wed Mar 2

Fracture and cutting

J. O'Brien and J. Hodgins: Graphical Modeling and Animation of Brittle Fracture, SIGGRAPH 99.

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

Akshay Hegiste
Mon Mar 7

Fluids (Navier-Stokes)

J. Stam: Stable Fluids, SIGGRAPH 1999 Assignment 2 due Vishak Nag Ashoka
Wed Mar 9 Fluids (Navier-Stokes)

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

Rohit Vishal Kotian
Mon Mar 14 No class (spring break)
Wed Mar 16 No class (spring break)
Mon Mar 21

Simulation on programmable graphics hardware (GPUs)

Slides on shaders and 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)

Samuel Woo
Wed Mar 23

Guest Lecture: Christopher Cameron, NVIDIA:
Simulation on programmable graphics hardware (CUDA)

Nvidia's CUDA   Trefftz and Wolffe: Tutorial on CUDA   OpenCL

J. Georgii, R. Westermann: Mass-spring systems on the GPU

Project report due

Yongqiang Li
Mon Mar 28 Fluids (Navier-Stokes)

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

Project milestone

Samuel Yung
Wed Mar 30


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

Ningyuan Shi
Mon Apr 4 Haptics

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

Christopher Mangus
Wed Apr 6

Sound simulation

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

Case study: Havok engine for physics in games

Slides (ppt)

Havok Physics  Open Dynamics Engine (ODE)

Wed Apr 13

Guest lecture: Dr. Doug Roble, Digital Domain

Mon Apr 18

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

Ting-Chun Sun
Wed Apr 20 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
Mon Apr 25 Project presentations
Wed Apr 27 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

    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: