CS5643 Physically Based Animation for Computer Graphics

Spring 2025
Location: Statler 196
Time: T/R 10:10–11:25am
Professor: Steve Marschner
PhD TAs: Caroline Sun and Yi Xu
MEng TA: Zane Neelin

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.

Schedule

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
21Jan intro slides    
23Jan particle systems slides demo demo    
28Jan ODEs slides notes demo    
30Jan mass/spring systems slides demo demo demo demo PBM course notes, Particle Dynamics section  
4Feb intro to Taichi slides notes  
6Feb deformation energies slides notes Dynamic Deformables course notes, Sec. 2  
11Feb deformation energies FEM Deformation course notes, part 1  
13Feb collision detection slides    
18Feb —February Break—    
20Feb collision response slides   Problem Set 1 due
25Feb collision response demo demo    
27Feb rigid body dynamics slides PBM course notes, Rigid Body Dynamics, Part I  
4Mar resolving rigid collisions notes PBM course notes, Rigid Body Dynamics, Part II Implementation 1 due 3/1
6Mar systems of collisions slides notes demo [Catto 2005] Analysis 1 due
11Mar systems of collisions [Erleben 2007]  
13Mar systems of collisions    
18Mar frictional contact    
20Mar final projects slides   Problem Set 2 due
25Mar fluid simulation slides    
27Mar —no class—   Implementation 2 due, Project proposals due
1Apr —Spring Break—    
3Apr —Spring Break—    
8Apr fluid simulation    
10Apr fluid simulation   Proposal revisions due
15Apr current topics TBD    
17Apr current topics TBD   Problem Set 3 due
22Apr current topics TBD    
24Apr current topics TBD   Implementation 3 due
29Apr current topics TBD    
1May current topics TBD    
6May project milestones    
17May Final Project presentations (date TBD)    

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