Skip to content

chikasuiro/pba-chikasuiro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Physics-based Animation 4860-1081 2025S

Rust CI

teaser

Lecture at graduate school of information science and technology in the university of Tokyo, spring semester, 2025

ITC-LMS

For Zoom link, Slack, and GitHub Classroom invitations

Instructor

Dr. Nobuyuki Umetani

Time

  • Monday 2rd period, 10:25pm - 12:10pm

Course Description

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, tensor mechanics, variational principle, optimization, and numerical analysis through the animation techniques for particle systems, rigid bodies, and elastic bodies. There are C#/Rust/Python programming assignments to acquire research-oriented graphics programming skills. The students also learn basics use of the computer graphics software Unity and Blender.

Topics:

  • mass-spring simulation
  • rigid body simulation
  • elastic body simulation
  • cloth and hair modeling & simulation
  • collision-detection using spatial hashing
  • finite boundary method

Lecture Schedule

Day Topic Assignment Slide
(1)
Apr. 7
Introduction
Data structure for simulation, Explicit/implicit shape representation
[1,2]
(2)
Apr. 21
Programming 1
Introduction to Rust language, GitHub
task00 [3,4]
(3)
Apr. 28
Time Integration
Backward & forward Euler method, particle system, Barnes–Hut method
task01 [5,6]
(4)
May 8
Newtonian Mechanics
task02 [7]
(5)
May 12
Collision Detection
principal component analysis
sort & sweep method, bounding volume hierarchy
task03 [8,9]
(6)
May 19
Linear System
matrix data structure, Conjugate gradient method
task04 [10,12]
(7)
May 26
Simple Elastic Energy
Newton-Raphson method
mass-spring system
task05 [11,13]
(8)
June 9
Programming 2
Introduction to Unity & C#
task06 [14,15,16]
(9)
June 16
Dynamic Simulation
Variational time integration
task07 [17,18]
(10)
June 23
Optimization with Constraint
Lagrange multiplier method
task08 [19]
(11)
June 30
Rotation
Rotation representation
task09 [20]
(12)
July 7
Rigid Body Dynamics
inertia tensor,
angular velocity
task10 [21,22]
(13)
July 14
Continuum Mechanics
tensor,
finite element method
[23,24,25]

Slides

Grading

  • 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

Assignments

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.

How to Submit the Assignments

The final submission deadline is at 15:00 pm on July 17th, 2025. The late submission won't be accepted after this final submission deadline.

Task ID Language Title (tentative) Thumbnail
task00 Rust Building Rust project & submitting GitHub pull request
task01 Rust Implicit Time Integration
task02 Rust Linear Momentum Conservation
task03 Rust Acceleration of N-body Simulation
task04 Rust Accelerated nearest search using Kd-Tree
task05 Rust Solving Laplace equation with Gauss-Seidel Method
task06 C# Gradient Descent for Mass-Spring Simulation
task07 C# Dynamic Mass-spring System using Variational Euler Time Integration
task08 C# Controlling Volume of a Mesh using Lagrange-Multiplier Method
task09 C# Rotation and Energy Minimization
task10 C# Simulation of Rigid Body Precession

Policy

  • 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)
  • You can use AIs tool for coding.

Reading Material

My Past Lectures

About

Physics Based Animation 2025S

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published