Home

Awesome

CSC417/CSC2549-Physics-based Animation Fall 2021

image courtesy David Levin

Instructors

Prof. David I.W. Levin
Email: diwlevin@cs.toronto.edu
Webpage

Office Hours: Thursdays 17:00-18:00 first two weeks on Zoom Zoom link will be sent to registered students

TA

Yixin Chen

Haoda Li

Jonathan Panuelos

Email Instructor and TAs: csc417tas@cs.toronto.edu

Lectures

Thursday 15:00-17:00 first two weeks on Zoom

Tutorials

Tuesday 10:00-11:00 first two weeks on Zoom

Zoom links will be emailed to registered students

Links

Discussion board using Piazza
Hand in assignments using MarkUs.

Course Overview

This course is designed to introduce students to the field of physics-based animation by exposing them to the underlying mathematical and algorithmic techniques required to understand and develop efficient numerical simulations of physical phenomena such as rigid bodies, deformable bodies and fluids. In Physics-Based Animation we will learn how to develop algorithms that produce visually compelling representations of physical systems. We will learn the underlying continuous mathematics describing the motion of physical objects, explore how to discretize them and how to solve the resulting discrete equations quickly and robustly.

Prerequisites: C/C++ Programming, Linear Algebra, Calculus, Numerical Methods

The student is expected to read background material as necessary and should be comfortable with elementary linear algebra, geometry, and vector calculus. It is also assumed that the student is comfortable programming in basic C++.

(Strongly) Recommended preparation: Multivariable Calculus

Helpful Resources

The Variational Principles of Mechanics (Book)

Calculus of Variations

Numerical Methods for Evolutionary Differential Equations (Book)

Fluid Simulation for Graphics (Book)

Fluid Simulation for Graphics (Notes)

Real-time Collision Detection (Book)

Real Time Physics (Website)

FEM Simulation of 3D Deformable Solids (Website)

Matrix and Linear Algebra Identities (PDF)

Geometric Tools (Website)

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

Great Book on Geometric Time Integration by Hairer

libigl for geometry processing

Lecture Schedule (Due dates are day/month)

NOTE: Video and Assignment content maybe updated as the course progresses

WeekTopic / Event
1Reading<br>Academic Policy<br>Grading Scheme<br>Late Policy<br>Videos<br>Introduction<br>Slides<br>Research Highlight<br>Fast Mass-Spring Systems<br>Assignment 1 (1D mass-springs) bonus 24/9
2Video<br>Explicit and implicit time integration<br>Slides<br>Research Highlight<br>Discrete Elastic Rods<br>Working on A1
3Video<br>Mass-spring systems in three dimensions<br>Slides<br>Research Highlight<br>Shape Matching<br>Assignment 2 (3d mass-springs) bonus 1/10
4Videos<br>Finite Elements for Solids I<br>Gradients and Hessians with MATLAB’s Symbolic Toolkit<br>Derivatives!<br>Avengers:Endgame Simulation Breakdown<br>Slides<br>Research Highlight<br>Position-Based Dynamics<br>Assignment 3 (3d FEM) bonus 15/10
5Video<br>Finite Elements for Solids II<br>Slides<br>Research Highlight<br>Frame-Based Elastic Models<br>Working on A3
6Video<br>Finite Elements for Simulating Cloth and Shells<br>Slides<br>Research Highlight<br>Homogenized Yarn-Level Cloth<br>Assignment 4 Finite Elements for Cloth Simulation bonus 29/10
7No new videos but there will be class
8Videos<br>Rigid body mechanics<br>Rotation Matrix Time Derivatives<br>Slides<br>Assignment 5 Rigid body simulation bonus 5/11
November 8Drop date (consider if grade so far is <50%)
9Video<br>Jointed Rigid Body Systems<br>Work on A5
10Video<br>Rigid Body Collision<br>Slides<br>Research Highlight<br>Anisotropic Elasticity for Inversion-Safety and Element Rehabilitation<br>Assignment 6 (Collision Resolution) due (26/11)
11Videos<br>The Material Derivative<br>Fluid Simulation<br>Slides<br>Research Highlight<br>Variational Stokes<br>Work on A6
12Research Highlight<br>On the accurate large-scale simulation of ferrofluids

Academic Honesty (required reading)

Final Project

The final project should involve implementing one physics-simulation algorithm from a number of choices provided by the professor (coming soon). The projects will be taken from popular research papers. While the course will cover all the mathematical an technical concepts required to complete the projects, it will not cover the algorithms in detail. Projects can be done in up to groups of two (2) with no exceptions.

UPDATE: Implement an algorithm from one of these papers, more complete implementations are expected from lower degree of difficulty submissions

Difficulty (1 Easiest, 4 Hardest)Paper
1Large Steps in Cloth Simulation
1Stable Fluids
1Projective Dynamics
1Discrete Shells
1Meshless Deformations Based on Shape Matching
1Stable Neo-Hookean Flesh Simulation
2Discrete Elastic Rods
2Discrete Viscous Threads
2FEPR: Fast Energy Projection for REal-Time Simultion of Deformable Objects
2Velocity-based shock propagation for multibody dynamics animation
2Position Based Fluids
2Animating Sand as a Fluid
3Variational Stokes: A Unified Pressure-Viscosity Solver for Accurate Viscous Liquids
3Incremental Potential Contact: Intersection- and Inversion-free Large Deformation Dynamics
3Linear-Time Dynamics using Lagrange Multipliers
3High-order Differentiable Autoencoder for Nonlinear Model Reduction
3A Fast Variational Framework for Accurate Solid-Fluid Coupling
3The Affine Particle-In-Cell Method
3Interactive Differentiable Dynamics
4ADD: Analytically Differentiable Dynamics for Multi-Body Systems with Frictional Contact

Deliverable: The code for your algorithm (in Python, C++ or MATLAB) along with instructions to compile and run the implementation. A two (2) page writeup of the algorithm in the style of a short SIGGRAPH paper. A 5-minute SIGGRAPH style video showing the results of your method.

Due Date: December 21st at 11:59pm.

Example Report

Example Video

Suggested Structure

Treat your video like a 5-minute presentation of your work (in lieu of a final presentation). You don't have to show yourself in the video, but a good suggested organization is (1) Introduce the problem (2) Mention the important resources you used (3) Outline the algorithm (4) show some results.

Document Templates (use Technical Brief)

Grading

%Item
60%Assignments (top 5 of 6)
40%Final Project

Lateness Policy

Please read, this course has an involved late policy aimed at giving you maximum flexibility in scheduling your semester

Assignments are due by 11:59pm on the three due dates below.

0.007% off for every minute late.

Assignments 1,2,3,4 must be handed in by November 19th at 11:59 pm.
Assignments 5 and 6 must be handed in by December 17th at 11:59 pm.
The final project must be handed in by December 21st at 11:59 pm.

Extensions to the dates above can only be issued by the instructor.

THERE ARE NO LATE PENALTIES APPLIED TO ANY OTHER DEADLINES ASIDE FROM THE THREE (3) DEADLINES DIRECTLY ABOVE THIS TEXT.

**IMPORTANT: ** Students who hand in their assignments on the due dates in the schedule above will be awarded a five (5) percent bonus on the assignment grade up to a maximum score of one-hundred (100) percent.

Academic Honesty

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:

Email & Bulletin Board Traffic