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

CSCI 520 Computer Animation and Simulation
Spring 2012

Spring 2012, Monday and Wednesday, 3:30-5:00, WPH B27

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

TA: Yili Zhao
Office: SAL 235
Office hours: Tuesday 1:00 - 3:00

Introduction and Purposes

This course introduces students to computer animation and related simulation techniques, as applicable 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 both interactive and offline simulation. Topics include deformable objects (solids, cloth), fluids, character rigging, quaternions, inverse kinematics, motion capture, sound simulation, collision detection, haptics, rigid body dynamics, and GPU programming.

Schedule | Prerequisites | Readings | Assignments | Grading | Class participation | Academic Integrity

Date Topic Reading, slides, and other material Notes
Mon Jan 9 2012

Overview of computer animation and simulation

Course slides
Wed Jan 12

Overview of computer animation and simulation

Mon Jan 16 No class (Martin Luther King Day)
Wed Jan 18 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 23

OpenGL Red Book, Chapters 1-3

CMU slides on OpenGL

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

Wed Jan 25

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

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

Structured deformable objects: cloth

Slides (thanks to Andy Pierce, USC REU)

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

Wed Feb 1

Structured deformable objects: FEM

M. Mueller and M. Gros: Interactive virtual materials, Graphics Interface 2004

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

Mon Feb 6

Rigid body dynamics

D. Baraff and A. Witkin: Physically Based Modeling, course notes (the chapter on Rigid Body Dynamics), SIGGRAPH 2001
Wed Feb 8 Keyframe Animation

Lecture slides

Assignment 1 due
Mon Feb 13

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

Wed Feb 15 Quaternions

Course slides

Ken Shoemake: Animating rotation with quaternion curves, SIGGRAPH 1985

Alan H. Barr, Bena Currin, Steven Gabriel, John F. Hughes: Smooth interpolation of orientations with angular velocity constraints using quaternions, SIGGRAPH 1992

Assignment 2 out

Mon Feb 20 No class (President's Day)
Wed Feb 22 Inverse Kinematics

Rick Parent's slides on Inverse Kinematics

Chris Welman: Inverse Kinematics and Geometric Constraints for Articulated Figure Manipulation, M.S. Thesis, Simon Fraser University, 1993

Mon Feb 27 Character Rigging
Ladislav Kavan, Steven Collins, Jiří Žára, Carol O’Sullivan: Geometric Skinning with Approximate Dual Quaternion Blending, ACM Transaction on Graphics, 27(4), 2008
Wed Feb 29 Facial Animation

Ming Lin's course slides on facial animation    Digital Emily video    Video on paired muscles

Jun-yong Noh, Ulrich Neumann: A Survey of Facial Modeling and Animation Techniques, University of Southern California

E. Sifakis, I. Neverov and R. Fedkiw: Automatic Determination of Facial Muscle Activations from Sparse Motion Capture Marker Data, SIGGRAPH 2005

Mon Mar 5 Crowd Animation

Craig W. Reynolds: Flocks, herds and schools: A distributed behavioral model, SIGGRAPH 1987.
SIGGRAPH 1997 course notes     A pseudocode implementation

Matt Anderson, Eric McDaniel and Stephen Chenney: Constrained Animation of Flocks, Symposium on Computer Animation 2003

Crowd research at UNC

Course slides on crowd animation, Ohio State University

Wed Mar 7 Maya

Maya tutorials at (free of charge access for USC students).

Autodesk: The Art of Maya

The Maya scene used in class.

Assignment 2 due
Mon Mar 12 No class (spring break)
Wed Mar 14 No class (spring break)
Mon Mar 19 Maya

Wed Mar 21

Constraints and contact

D. Baraff and A. Witkin: Physically Based Modeling, course notes (the chapters "Constrained Dynamics" and "Collision and Contact"), SIGGRAPH 2001 Assignment 3 out
Mon Mar 26

Collision detection

Ming Lin's course slides on collision detection | PDF     Collision detection at UNC, Chapel Hill

Ming Lin's course slides on bounding volume hierarchies and spatial partitioning | PDF    

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

Wed Mar 28


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

Mon Apr 2

Sound simulation

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

Fluids (Navier-Stokes)

J. Stam: Stable Fluids, SIGGRAPH 1999

Stable Fluids presentation

Mon Apr 9 Catch-up day

Catch-up day

Wed Apr 11

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)

Assignment 3 due
Mon Apr 16

Simulation on programmable graphics hardware (CUDA)

Nvidia's CUDA
Trefftz and Wolffe: Tutorial on CUDA | (modified; used in class)

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

Wed Apr 18

Guest Lecture: Dr. Doug Roble, Digital Domain

Mon Apr 23

Case study: Havok engine for physics in games

Slides (ppt)

Havok Physics  Open Dynamics Engine (ODE)

Wed Apr 25

Review for exam

Fri May 4 Final exam 2p.m.-4 p.m.


  • A grade of at least B in CS480 or CS580, or explicit permission of instructor. If you took a similar course at another university, contact the instructor.
  • Familiarity with calculus, linear algebra, and numerical computation
  • C/C++ programming skills


There is no required textbook. Selected articles and course notes will be made available online.

A good reference on computer animation:

  • Rick Parent: Computer Animation, Second Edition: Algorithms and Techniques, Second edition, Publisher: Morgan Kaufmann, ISBN: 9780125320009

A reference book on OpenGL is recommended for help with the homeworks:

  • Dave Shreiner: OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 3.0 and 3.1, Seventh edition, Publisher: Addison-Wesley Professional, ISBN: 9780321552624


There will be three programming homework assignments in C/C++ and OpenGL, related to the material covered in class. Please see the schedule for links to assignments and due dates. All assignments must be done individually.


  • Assignments: 21% each (63% total)

  • Final exam: 37%

All assignments must be completed to pass the course. The assignments will have a small amount of extra credit.

Late policy: Programming assignments should be turned in by midnight on the day they are due. A total of three late days may be taken during the semester on programming assignments. For example, you can use one late day on the second assignment, and two on the third assignment. All days are counted, including any weekends and holidays, as follows:
Less than 24 hours late = 1 late day, 24-48 hours late = 2 late days, 48-72 hours late = 3 late days, and so on.
The flexibility provided by the late days is intended to get you through the time where all your classes just happen to have assignments due on the same day. Beyond the three late days, there will be a penalty of 10% of the value of the assignment / day. Exceptions will be granted only under most dire circumstances and must be discussed with and approved by the instructor at least one week in advance.

Academic integrity

All students are expected to maintain the utmost level of academic integrity. Do not copy any parts of any of the assignments from anyone. Do not look at other students' code, papers, assignments or exams. The university policies on academic conduct will be applied rigorously, and the USC Office of Student Judicial Affairs and Community Standards will be notified.

Please consult the USC Student Guidebook (for example, Section 11.00 in the University Governance chapter) for details on what is and is not appropriate, and for the possible consequences of violating the rules. 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:

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 c an 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.