Prof. David I.W. Levin
diwlevin@cs.toronto.edu
Tuesday 13:00-15:00 (first two weeks online) NOTE: link sent via Quercus to registered students
Room: BA B026
Tuesday 15:00-16:00 (first two weeks online)
This course is a graduate-level seminar course on physics-based animation. It will involve reading state-of-the-art papers in the field and implementing algorithms from those papers. The course will feature a final project based on the topic.
Students are expected to read background material as necessary and should be comfortable with elementary linear algebra, geometry, and vector calculus.
This course is a graduate seminar course on physics-based animation which will involve reading, analyzing, implementing and commenting on both seminal and cutting-edge works in the field. Each week students will be assigned one of several roles (presenter, implementer, blogger, reviewer) and are charged with carrying out the associated responsibilites.
Presenter: Prepare a 20-30 minute conference style presentation about the paper. After your presentation you will take 10 minutes of questions from the audience.
Articles on reading papers
How to read a research paper (CMU)
How to read a realisitc rendering paper (Morgan McGuire)
Implementer: You will have up to two (2) weeks to implement as much of the paper as you can. Each week you will demonstrate your progress and discuss, the things you have learned, and issues that have arisen.
Blogger: You will write a medium style blog post (i.e. like this) about the paper and submit it here. Posts are due one week after the implementation is finished.
Reviewer: You will submit a high-quality review of the paper. Submit your review using the review form here
Projects will be done in groups of no more than three (3) people. The project must involve implementing a physics algorithm that falls into the grand challenges listed below. Check with the instructor to ensure that your chosen project is of sufficient scope.
Deliverable: a micro-SIGGRAPH submission comprised of a two (2) page extended abstract and five (5) minute submission style video.
Due Date: December 21st, 11:59pm
All projects must fall into one of the grand challenge categories below:
- Differentiable Physics Simulation
- Direct Simulation from Computer-Aided-Design Tools
- Biomechanical Simulation for Digital Humans
- Machine Learning for Material Behaviour
- Simulation on non-traditional geometric representation
Intro Physics-based Animation Course /w Video Lectures
The Variational Principles of Mechanics (Book)
Numerical Methods for Evolutionary Differential Equations (Book)
Fluid Simulation for Graphics (Book)
Fluid Simulation for Graphics (Notes)
Real-time Collision Detection (Book)
FEM Simulation of 3D Deformable Solids (Website)
Matrix and Linear Algebra Identities (PDF)
Material Point Method SIGGRAPH Course (PDF)
Two-Minute Papers (YouTube not strictly physics, but cool)
Prof. Shinjiro Sueda's Rigid Body Mechanics Notes for Joints
Blender: Open-Source Modelling and Rendering Software
libigl: Lightweight C++ Geometry Processing Library
gptoolbox: MATLAB Geometry Processing Library
Bartels: C++ and MATLAB Utilities for Physics Simulation
Academic Honesty (required reading)
% | Item |
---|---|
15% | Presentations |
10% | Reviewing |
15% | Blogger |
25% | Implementation |
30% | Final Project |
5% | Participation |
Project is due by 11:59pm on the due date.
0.007% off for every minute late.
Academic honesty is a very serious matter and can result in very serious consequences. Note that academic offences may be discovered and handled retroactively, even after the semester in which the course was taken for credit. This is a challenging class aimed at teaching you the fundamentals of computer graphics. You wont learn much if you cheat but you might get a good grade if you get away with it. If all you want is a good grade take an easier class where you wont have to cheat!
For purposes of this class, academic dishonesty is defined as:
- Any attempt to pass off work on a test that didn't come straight out of your own head.
- Any collaboration on written or programming assignments (its ok to share ideas on programming assignments but the code MUST be your own) in which the collaborating parties don't clearly and prominently explain exactly who did what, at turn-in time.
- Any activity that has the effect of significantly impairing the ability of another student to learn. Examples here might include destroying the work of others, interfering with their access to resources (e.g., digital cameras), or deliberately providing them with misleading information.
- The GitHub issues are for answering questions about class or about the assignments. The TAs will be monitoring the posted issues.
- Appropriate use of the issues: clarifications on assignment, on lecture material, general concerns about the course, or other remarks that are appropriate for all students to see/participate in.
- Do NOT broadcast pieces of your code or answers to written assignments to the issues page. Specific or general implementation questions whose answer would benefit all students in the class are appropriate. However: the bulletin board is NO replacement for the tutorial hour. That should be the main forum for asking/answering questions of this sort.
- Questions of the form "I cannot find the problem with my code; here it is, can you help me" are unlikely to be replied, so don't count on it. If you have a question with code, take it to the TA office hours or to the tutorials.