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

CSCI 520 Computer Animation and Simulation
Spring 2013

Spring 2013, Monday and Wednesday, 2:00-3:20, SGM 601

Instructor: Jernej Barbic
Office: SAL 230
Office hours: Wednesday 3:35 - 5:00   

TA: Yili Zhao
Office: SAL 211
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 14 2013

Overview of computer animation and simulation

Course slides
Wed Jan 16

Overview of computer animation and simulation

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

OpenGL Red Book, Chapters 1-3

CMU slides on OpenGL

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

Wed Jan 30

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

CMU slides on OpenGL shading CMU slides on texture mapping
Mon Feb 4

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 6

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 11

Rigid body dynamics

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

Lecture slides

Assignment 1 due
Mon Feb 18 No class (President's Day)
Wed Feb 20

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

Assignment 2 out

Mon Feb 25 Quaternions

Course slides | version for printing

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

Wed Feb 27 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 Mar 4 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 Mar 6 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 11 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 13 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 18 No class (spring break)
Wed Mar 20 No class (spring break)
Mon Mar 25 Maya

Wed Mar 27

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 Apr 1

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 Apr 3


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 8

Sound simulation

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

Fluids (Navier-Stokes)

J. Stam: Stable Fluids, SIGGRAPH 1999

Stable Fluids presentation

Mon Apr 15 Catch-up day

Catch-up day

Wed Apr 17

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 22

Guest Lecture: Side Effects Software

Wed Apr 24

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

Mon Apr 29

Case study: Havok engine for physics in games

Slides (ppt)

Havok Physics  Open Dynamics Engine (ODE)

Wed May 1

Review for exam

Mon May 13 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.