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