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

CSCI 520 Computer Animation and Simulation
Spring 2021

Spring 2021, Monday and Wednesday, 2:00-3:50, online on zoom

Instructor: Jernej Barbic
Office: online on Zoom
Office hours: Wednesday 4:00 - 5:00   
Email: jnb@usc.edu

TA: Mianlun Zheng
Office: online on Zoom
Office hours: Tue 3-5pm
Email: mianlunz@usc.edu
Grader: Yaoyuan Cui, yaoyuanc@usc.edu

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 18 2021 No class (Martin Luther King Day)
Wed Jan 20

Overview of computer animation and simulation

Course slides
Mon Jan 25

Overview of computer animation and simulation

Wed Jan 27 Primer on numerical simulation and linear algebra for graphics D. Baraff and A. Witkin:

Physically Based Modeling, course notes, SIGGRAPH 2001

Mon Feb 1

Helper slides for hw1 (jello cube) | 6X-BW

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

The official guide to learning OpenGL | CMU slides on OpenGL | CMU slides on OpenGL shading | CMU slides on texture mapping

Wed Feb 3

Structured deformable objects: cloth

Slides (thanks to Andy Pierce, USC REU)

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

Assignment 1 out
Mon Feb 8

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

Wed Feb 10

Rigid body dynamics

D. Baraff and A. Witkin: Physically Based Modeling, course notes (the chapter on Rigid Body Dynamics), SIGGRAPH 2001
Mon Feb 15 No class (President's Day)
Wed Feb 17 Keyframe Animation

Lecture slides

Mon Feb 22

Motion capture

Motion capture slides

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 24 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

Assignment 1 due
Assignment 2 out
Mon Mar 1 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

Wed Mar 3 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
Mon Mar 8 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

Wed Mar 10 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

Fri Mar 12

Wellness day

Mon Mar 15 Maya

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

Autodesk: The Art of Maya

The Maya scene used in class.

Wed Mar 17 Maya

Assignment 2 due

Mon Mar 22

Constraints and contact

D. Baraff and A. Witkin: Physically Based Modeling, course notes (the chapters "Constrained Dynamics" and "Collision and Contact"), SIGGRAPH 2001
Tue Mar 23

Wellness day

Wed Mar 24

Inverse Kinematics homework (theory and implementation)

Eigen example 1     Eigen example 2     Eigen example 3 Assignment 3 out
Mon Mar 29

Catch-up day

Wed Mar 31

Collision detection

Ming Lin's course slides used in class

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

Christer Ericson: Real-Time Collision Detection (The Morgan Kaufmann Series in Interactive 3-D Technology).
Accompagnying website to the book.

The Gilbert-Johnson-Keerthi Algorithm

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

Mon Apr 5

Catch-up day

Optional Assignment 4 out
Wed Apr 7

Wellness day

Mon Apr 12

Haptics

F. Conti's haptics slides: Introduction to Haptics

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

Wed Apr 14

Fluids (Navier-Stokes)

J. Stam: Stable Fluids, SIGGRAPH 1999

Stable Fluids presentation

Fri Apr 16

Background reading: Sound simulation

J. O'Brien, C. Shen, and C. Gatchalian: Synthesizing Sounds from Rigid-Body Simulations, SCA 2002
Mon Apr 19 Guest lecture: Dr. Doug Roble, Digital Domain Assignment 3 due
Wed Apr 21

Simulation on programmable graphics hardware (CUDA)

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

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

Thu Apr 22

Wellness day

Mon Apr 26

Computer Animation Engines

Slides |  Unity  Unreal Engine  Havok Physics  Open Dynamics Engine (ODE)  Vega FEM 

Wed Apr 28

Review for exam

Mon May 10 Final exam Online on Zoom

Prerequisites

  • A grade of at least B in CS420 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


Readings

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


Assignments

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.


Grading

  • 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. Students must take the final exam to pass the course.

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. Assignment and exam grading may be discussed within three weeks of them being returned to the students.


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.

Statement on Academic Conduct and Support Systems

Academic Conduct
Plagiarism - presenting someone else's ideas as your own, either verbatim or recast in your own words, is a serious academic offense with serious consequences. Please familiarize yourself with the discussion of plagiarism in SCampus in Section 11, Behavior Violating University Standards, https://scampus.usc.edu/1100-behavior-violating-university-standards-and-appropriate-sanctions/. Other forms of academic dishonesty are equally unacceptable. See additional information in SCampus and university policies on scientific misconduct, http://policy.usc.edu/scientific-misconduct/.

Discrimination, sexual assault, and harassment are not tolerated by the university. You are encouraged to report any incidents to the Office of Equity and Diversity http://equity.usc.edu/ or to the Department of Public Safety http://capsnet.usc.edu/department/department-public-safety/online-forms/contact-us. This is important for the safety whole USC community. Another member of the university community -- such as a friend, classmate, advisor, or faculty member -- can help initiate the report, or can initiate the report on behalf of another person. The Center for Women and Men http://www.usc.edu/student-affairs/cwm/ provides 24/7 confidential support, and the sexual assault resource center webpage sarc@usc.edu describes reporting options and other resources.

Support Systems
A number of USC's schools provide support for students who need help with scholarly writing. Check with your advisor or program staff to find out more. Students whose primary language is not English should check with the American Language Institute http://dornsife.usc.edu/ali, which sponsors courses and workshops specifically for international graduate students. The Office of Disability Services and Programs http://sait.usc.edu/academicsupport/centerprograms/dsp/home_index.html provides certification for students with disabilities and helps arrange the relevant accommodations. If an officially declared emergency makes travel to campus infeasible, USC Emergency Information http://emergency.usc.edu/will provide safety and other updates, including ways in which instruction will be continued by means of blackboard, teleconferencing, and other technology.


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.