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