CS5643 Physically Based Animation for Computer Graphics

Spring 2023
Location: Hollister 362
Time: T/R 9:40am-10:55am
Professor: Steve Marschner;
PhD TAs: Joy Zhang and Caroline Sun;

This course introduces students to fundamental physically based modeling techniques used in computer graphics for animation of rigid and deformable solids, virtual characters, fluids and gases, and other systems. Students learn the techniques by implementing a series of interactive computer programs that apply a range of representative simulation methods to simple, primarily 2D systems, and by proposing and implementing a final project.


Links to non-open-access articles will work from on campus, or go to library.cornell.edu and search for an article title or DOI to get NetID authenticated access. Most articles also have author-hosted versions that can be readily discovered.

Demos can be run in a Python 3.8 environment with NumPy and Taichi installed. You can get this by installing Anaconda then running conda create --name cs5643 python=3.8; conda activate cs5643; pip install taichi. For some you might also need to pip install pywavefront.

Due dates and lecture topics are subject to change.

date topic reading assignments
24Jan intro slides    
26Jan particle systems slides demo demo    
31Jan ODEs slides notes demo    
2Feb ODEs | procedural noise slides demo    
7Feb mass/spring systems slides demo PBM course notes, Particle Dynamics section  
9Feb intro to Taichi slides demo demo demo notes Problem Set 1 due
14Feb Taichi cont'd    
16Feb deformation energies slides notes Dynamic Deformables course notes, Sec. 2  
21Feb deformation energies   Assignment 1 due
23Feb Quiz 1    
28Feb —February Break—    
2Mar deformation energies    
7Mar deformation energies FEM Deformation course notes, part 1  
9Mar collision detection slides    
14Mar —snow day—    
16Mar collision detection   Problem Set 2 due
21Mar collision response slides   Assignment 2 due
23Mar Quiz 2 | final projects slides    
28Mar collision response demo    
30Mar collision response demo    
4Apr —Spring Break—    
6Apr —Spring Break—    
11Apr rigid body dynamics slides PBM course notes, Rigid Body Dynamics, Part I  
13Apr resolving rigid collisions notes PBM course notes, Rigid Body Dynamics, Part II  
18Apr systems of collisions slides notes demo [Catto 2005] Project proposals due
20Apr systems of collisions [Erleben 2007] Problem Set 3 due
25Apr systems of collisions   Proposal revisions due
27Apr frictional contact    
2May survey of fluids slides   Assignment 3 due
4May Quiz 3    
9May project milestones    
18May Final Project presentations    

About CS5643

Questions, help, discussion: The instructor is available to answer questions, advise on projects, or just to discuss interesting topics related to the class at office hours and by appointment as needed. The TAs also hold regular office hours. For electronic communication we are using Ed Discussion (access via Canvas).

Collaboration: You are welcome (encouraged, even) to discuss the coursework among yourselves and to help one another track down problems. In particular, in this course you should feel free to discuss the problem sets and work on them collaboratively, though you should write up the homework individually. When it comes to implementing the programming assignments, your code needs to be your own work (or you and your partner's). In particular, it's certainly never OK to copy parts of one person's or team's writeup, code, or results into another's, even if the general solution was worked out together.

Academic integrity: We assume the work you hand in is your own, and the results you hand in are generated by your program. You're welcome to read whatever you want to learn what you need to do the work, but we do expect you to build your own implementations of the methods we are studying. If you're ever in doubt, just include a citation in your code or report indicating where some idea came from, whether it be a classmate, a web site, another piece of software, or anything—this always maintains your honesty, whether the source was used in a good way or not. The principle is that an assignment is an academic document, like a journal article. When you turn it in, you are claiming that everything in it is your original idea (or is original to you and your partner, if you're handing in as a pair) unless you cite a source for it.

School can be stressful, and your coursework and other factors can put you under a lot of pressure, but don't let that lure you into dishonesty. If you feel you can't complete the work on your own, come talk to the professor, or your academic advisor, and we can help you figure out what to do. I want you to learn, I can be flexible about how, and you are not going to fail the class if you are putting in good effort.

For more information see Cornell's Code of Academic Integrity.

Office Hours