├── README.md └── images └── EolPenguinFallZoomedOut.gif /README.md: -------------------------------------------------------------------------------- 1 | # CSC2504-Physics-Based-Animation *Fall 2021* 2 | ![_image courtesy David Levin_](images/EolPenguinFallZoomedOut.gif) 3 | 4 | - [Lectures](#Lectures) 5 | - [Course Overview](#course-overview) 6 | - [Resources](#helpful-resources ) 7 | - [Lecture Schedule](#lecture-schedule) 8 | - [Grading](#grading) 9 | - [Lateness Policy](#lateness-policy) 10 | 11 | ## Instructors 12 | Prof. [David I.W. Levin](http://www.cs.toronto.edu/~diwlevin/) 13 | diwlevin@cs.toronto.edu 14 | 15 | ## Lectures 16 | Tuesday 13:00-15:00 (first two weeks online) **NOTE: link sent via Quercus to registered students** 17 | 18 | Room: BA B026 19 | 20 | ## Office Hours 21 | Tuesday 15:00-16:00 (first two weeks online) 22 | 23 | [Discussion Board via Piazza](http://piazza.com/utoronto.ca/fall2021/csc2504) 24 | 25 | ## Course Summary 26 | 27 | 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. 28 | 29 | Students are expected to read background material as necessary and should be comfortable with elementary linear algebra, geometry, 30 | and vector calculus. 31 | 32 | ## Course Structure 33 | 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. 34 | 35 | ## Roles and Responsibilities ## 36 | 37 | **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. 38 | 39 | ***Articles on reading papers*** 40 | [How to read a research paper (CMU)](http://graphics.cs.cmu.edu/courses/15-869-F15/How%20to%20read%20a%20paper.pdf) 41 | 42 | [How to read a realisitc rendering paper (Morgan McGuire)](https://morgan3d.github.io/advanced-ray-tracing-course/reading-research.pdf) 43 | 44 | 45 | **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. 46 | 47 | **Blogger:** You will write a medium style blog post (i.e. like [this](https://medium.com/inside-machine-learning/what-is-a-transformer-d07dd1fbec04)) about the paper and submit it [here](http://physics.diwlevin.com). Posts are due one week after the implementation is finished. 48 | 49 | **Reviewer:** You will submit a high-quality review of the paper. Submit your review using the review form [here](https://forms.gle/nyqVhPmquHRKpaA48) 50 | 51 | ## Final Project Details 52 | 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. 53 | 54 | **Deliverable:** a micro-SIGGRAPH submission comprised of a **two (2) page** extended abstract and **five (5) minute** submission style video. 55 | 56 | **Due Date:** December 21st, 11:59pm 57 | 58 | ### Grand Challenges (more details and examples coming soon) 59 | All projects must fall into one of the grand challenge categories below: 60 | 1. Differentiable Physics Simulation 61 | 2. Direct Simulation from Computer-Aided-Design Tools 62 | 3. Biomechanical Simulation for Digital Humans 63 | 4. Machine Learning for Material Behaviour 64 | 5. Simulation on non-traditional geometric representation 65 | 66 | ## Helpful Resources 67 | [Intro Physics-based Animation Course /w Video Lectures](https://github.com/dilevin/CSC417-physics-based-animation) 68 | 69 | [The Variational Principles of Mechanics (Book)](https://search.library.utoronto.ca/details?1576571&uuid=24e9601f-a561-440e-b4f7-0162225ae73d) 70 | 71 | [Calculus of Variations](https://books.google.ca/books/about/Calculus_of_Variations.html?id=YkFLGQeGRw4C&printsec=frontcover&source=kp_read_button&redir_esc=y#v=onepage&q&f=false) 72 | 73 | [Numerical Methods for Evolutionary Differential Equations (Book) ](https://search.library.utoronto.ca/details?8723030) 74 | 75 | [Fluid Simulation for Graphics (Book)](https://dl.acm.org/citation.cfm?id=1457699) 76 | 77 | [Fluid Simulation for Graphics (Notes)](https://www.cs.ubc.ca/~rbridson/fluidsimulation/fluids_notes.pdf) 78 | 79 | [Real-time Collision Detection (Book)](https://dl.acm.org/citation.cfm?id=1121584) 80 | 81 | [Real Time Physics (Website)](http://matthias-mueller-fischer.ch/realtimephysics/) 82 | 83 | [FEM Simulation of 3D Deformable Solids (Website)](http://www.femdefo.org) 84 | 85 | [Matrix and Linear Algebra Identities (PDF)](https://www.math.uwaterloo.ca/~hwolkowi/matrixcookbook.pdf) 86 | 87 | [Geometric Tools (Website)](https://www.geometrictools.com) 88 | 89 | [Material Point Method SIGGRAPH Course (PDF)](https://www.seas.upenn.edu/~cffjiang/research/mpmcourse/mpmcourse.pdf) 90 | 91 | [Two-Minute Papers (YouTube not strictly physics, but cool)](https://www.youtube.com/channel/UCbfYPyITQ-7l4upoX8nvctg) 92 | 93 | [Prof. Shinjiro Sueda's Rigid Body Mechanics Notes for Joints](https://github.com/sueda/redmax/blob/master/notes.pdf) 94 | 95 | ## Useful Software Tools 96 | [Blender: Open-Source Modelling and Rendering Software](https://www.blender.org) 97 | 98 | [libigl: Lightweight C++ Geometry Processing Library](https://libigl.github.io) 99 | 100 | [gptoolbox: MATLAB Geometry Processing Library](https://github.com/alecjacobson/gptoolbox) 101 | 102 | [Bartels: C++ and MATLAB Utilities for Physics Simulation](https://github.com/dilevin/Bartels) 103 | 104 | ## Lecture Schedule 105 | 106 | | Week | Topic / Event | 107 | | ---- | :------------ | 108 | | 1 | Introduction and assign [**Paper 1:** Projective Dynamics](https://www.cs.utah.edu/~ladislav/bouaziz14projective/bouaziz14projective.html) 109 | | 2 | Presentations for **Paper 1** and assign [**Paper 2:** Position Based Dynamics](https://www.cs.toronto.edu/~jacobson/seminar/mueller-et-al-2007.pdf) 110 | | 3 | Presentations for **Paper 2** and assign [**Paper 3:** Large Steps in Cloth Simulation](https://www.cs.cmu.edu/~baraff/papers/sig98.pdf) 111 | | 4 | Presentations for **Paper 3** and assign [**Paper 4:** Stable Fluids](https://dl.acm.org/doi/10.1145/311535.311548) 112 | | 5 | Presentations for **Paper 4** and assign [**Paper 5:** Velocity-based shock propagation for multibody dynamics animation](https://dl.acm.org/doi/10.1145/1243980.1243986) 113 | | 6 | Presentations for **Paper 5** and assign [**Paper 6:** Discrete Elastic Rods](http://www.cs.columbia.edu/cg/pdfs/143-rods.pdf) 114 | | 7 | Presentations for **Paper 6** and assign [**Paper 7:** WRAPD: Weighted Rotation-aware ADMM for Parameterization and Deformation](https://www-users.cse.umn.edu/~brow2327/wrapd/) 115 | | 8 | Presentations for **Paper 7** and assign [**Paper 8:** ADD: Analytically Differentiable Dynamics for Multi-Body Systems with Frictional Contact](http://crl.ethz.ch/papers/Geilinger20ADD.pdf) 116 | | 9 | Presentations for **Paper 8** and assign [**Paper 9:** Fast Linking Numbers for Topology Verification of Loopy Structures](https://graphics.stanford.edu/papers/fastlinkingnumbers/) 117 | | 10 | Presentations for **Paper 9** and assign [**Paper 10:** Kelvin Transformations for Simulations on Infinite Domains](https://cseweb.ucsd.edu//~viscomp/projects/SIG21KelvinTransform/) 118 | | 11 | Presentations for **Paper 10** 119 | | 12 | Surprise session 120 | 121 | [Academic Honesty (required reading)](#academic-honesty) 122 | 123 | ## Grading 124 | 125 | | % | Item | 126 | | ----: | :-------------- | 127 | | 15% | Presentations 128 | | 10% | Reviewing 129 | | 15% | Blogger 130 | | 25% | Implementation 131 | | 30% | Final Project 132 | | 5% | Participation 133 | 134 | ## Lateness Policy 135 | 136 | Project is **_due by 11:59pm_** on the due date. 137 | 138 | 0.007% off for every minute late. 139 | 140 | ### Academic Honesty 141 | 142 | Academic honesty is a very serious matter and can result in very serious 143 | consequences. Note that academic offences may be discovered and handled 144 | retroactively, even after the semester in which the course was taken for credit. 145 | This is a challenging class aimed at teaching you the fundamentals of computer 146 | graphics. You wont learn much if you cheat but you might get a good grade if you 147 | get away with it. If all you want is a good grade take an easier class where you 148 | wont have to cheat! 149 | 150 | For purposes of this class, academic dishonesty is defined as: 151 | 152 | - Any attempt to pass off work on a test that didn't come straight out of your 153 | own head. 154 | - Any collaboration on written or programming assignments (its ok to share ideas 155 | on programming assignments but the code MUST be your own) in which the 156 | collaborating parties don't clearly and prominently explain exactly who did 157 | what, at turn-in time. 158 | - Any activity that has the effect of significantly impairing the ability of 159 | another student to learn. Examples here might include destroying the work of 160 | others, interfering with their access to resources (e.g., digital cameras), or 161 | deliberately providing them with misleading information. 162 | 163 | ### Email & GitHub Issues 164 | 165 | - The GitHub issues are for answering questions about class or about the assignments. The TAs will be monitoring the posted issues. 166 | - Appropriate use of the issues: clarifications on assignment, on lecture 167 | material, general concerns about the course, or other remarks that are 168 | appropriate for all students to see/participate in. 169 | - Do NOT broadcast pieces of your code or answers to written assignments to the issues page. Specific or general implementation questions whose answer 170 | would benefit all students in the class are appropriate. However: the bulletin 171 | board is NO replacement for the tutorial hour. That should be the main forum 172 | for asking/answering questions of this sort. 173 | - Questions of the form "I cannot find the problem with my code; here it is, can 174 | you help me" are unlikely to be replied, so don't count on it. If you have a 175 | question with code, take it to the TA office hours or to the tutorials. 176 | 177 | -------------------------------------------------------------------------------- /images/EolPenguinFallZoomedOut.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dilevin/CSC2504-Physics-Based-Animation/39c636629057eb5b953008bc0c55256b959ca5d4/images/EolPenguinFallZoomedOut.gif --------------------------------------------------------------------------------