Lecture at graduate school of information science and technology in the university of Tokyo, spring semester, 2023
For Slack and GitHub Classroom invitations
Dr. Nobuyuki Umetani
- email: [email protected]
- url: http://www.nobuyuki-umetani.com/
- lab's website: https://cgenglab.github.io/en/
- Monday 2rd period, 10:25pm - 12:10pm
Computer-generated images are everywhere in movies, video games, and VR. This course is an introduction to the techniques to animate objects in computer graphics based on the law of physics. The aim of the course is to get familiar with applied mathematics such as linear algebra, vector analysis, partial differential equations, variational principle, optimization, and numerical analysis through the animation techniques for particle systems, rigid bodies, elastic bodies. There are C++/Python programming assignments to acquire research-oriented graphics programming skills.
Topics:
- mass-spring simulation
- rigid body simulation
- elastic body simulation
- cloth and hair modeling & simulation
- collision-detection using spatial hashing
- finite boundary method
Day | Topic | Assignment | Slide |
---|---|---|---|
(1) Apr. 10 |
Introduction |
[1] | |
(2) Apr. 17 |
Data Structure data structure for simulation Implicit surface |
task00 | [2] |
(3) Apr. 24 |
Time Integration backward & forward Euler method, particle system |
task01 | [6] |
(4) May 1 |
Newtonian Mechanics |
task02 | [5] |
(5) May 8 |
Collision Detection principal component analysis sort & sweep method |
task03 | [9] |
(6) May 15 |
Optimization bounding volume hierarchy Hessian & Jacobian |
task04 | [10] |
(7) May 22 |
Simple Elastic Energy Newton-Raphson method mass-spring system |
task05 | [12] |
(8) Jun. 5 |
Dynamic Deformation Variational time integration |
task06 | [14] |
(9) Jun. 12 |
Linear System Solver Sparse matrix data structure Conjugate gradient method |
task07 | [17] |
(10) Jun. 19 |
Optimization with Constraint Lagrange multiplier method |
task08 | [18] |
(11) Jun. 26 |
Rotation Rotation representation |
task09 | [18] |
(12) Jul. 3 |
Rigid Body Dynamics inertia tensor, angular velocity |
task10 | [22] |
(13) Jul. 10 |
Continuum Mechanics tensor, finite element method |
[24] |
- [1] Introduction
- [2] Data Structure
- [3] Cpp
- [4] Git
- [5] Newtonian Mechanics
- [6] Time Integration
- [7] Jagged Array
- [8] Principal Component Analysis
- [9] Collision Detection
- [10] Jacobian and Hessian
- [11] Vector Differentiation
- [12] Mass-Spring System
- [13] Optimization
- [14] Variational Integration
- [15] Matrix Data Structure
- [16] Linear System Solver
- [17] Optimization with Constraints
- [18] Rotation
- [19] Grid & Mesh Interpolation
- [20] Angular Velocity
- [21] Rigid Body Approximation
- [22] Equation of Rigid Body
- [23] Lagrangian Mechanics
- [24] Tensor
- [25] Finite Element Method
- 20% lecture attendance
- Attendance is counted based on writing a secret keyword on LMS. The keyword is announced for each lecture.
- 80% small assignments
- see below
There are many small programming assignments. To do the assignments, you need to create your own copy of this repository through GitHub Classroom. These assignements needs to be submitted using pull request functionality of the GitHub. Look at the following document.
Task ID | Title | Thumbnail |
---|---|---|
task00 | Building C++ Program with CMake | |
task01 | Implicit Time Integration | |
task02 | Linear Momentum Conservation | |
task03 | Acceleration of N-body Simulation | |
task04 | Accelerated Nearest Search using Kd-Tree | |
task05 | Gradient Descent for Mass-Spring Simulation | |
task06 | Dynamic Mass-spring System using Variational Euler Time Integration | |
task07 | Solving Laplace Equation with Gauss-Seidel Method | |
task08 | Controlling Volume of a Mesh using Lagrange-Multiplier Method | |
task09 | Rotation and Energy Minimization | |
task10 | Simulation of Rigid Body Precession |
- Do the assignment by yourself. Don't share the assignments with others.
- Don't post the answers of the assignment on Slack
- Late submission of an assignment is subject to grade deduction
- Score each assignment will not be open soon (instructor needs to adjust weights of the score later)
- Ten Min Physics (Youtube channel)
- Physically Based Modeling: Principles and Practice, Siggraph '97 Course notes by Dr. Baraff
- Physics-Based Animation by Kenny Erleben et al. (free textobook about rigid body dynamics)
- Dynamic Deformables: Implementation and Production Practicalities, SIGGRAPH 2020 Courses
- Awesome Computer Graphics (GitHub)
- Skinning: Real-time Shape Deformation SIGGRAPH 2014 Course