/pba

Primary LanguageC++

Physics-based Animation (物理ベースアニメーション)

under construction

ITC-LMS:

Instructor

Dr. Nobuyuki Umetani

Time

Monday 3rd period, 13:00pm - 14:30pm

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, variational principle, optimization, and numerical analysis through the animation techniques for particle systems, rigid bodies, elastic bodies. There are C++ 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

Lecture Schedule

Day Topic Assignment Scribble Slide
(1)
Apr. 5
Introduction
data structure for simulation
Implicit surface
[1], [2]
(2)
Apr. 19
Time Integration
Newtonian-mechanics
backward & forward Euler method,
particle system
task0
task1
[2], [3], [4]
(3)
Apr. 26
Collision Detection
bounding volume hierarchy,
Kd-tree, N-tree
task2 [5]
(4)
Mar. 10
Simple Deformation Energy
mass-spring system,
Eulear-Lagrange equation,
Lagrangian mechanics
task3 [6]
(5)
Mar. 17
Numerical Optimization
Newton-Raphson method,
Levenberg–Marquardt method
task4
(6)
Mar. 24
Solving Large Linear System
sparse matrix data structure,
conjugate gradient method
task5 [1], [2], [3] [8]
(7)
Mar. 31
Optimization with Constraint
Lagrange multiplier method
task6 [9]
(8)
Jun. 7
Rigid Body Dynamics
inertia tensor,
angular velocity
task7 [1], [2] [10]
(9)
Jun. 14
Collision and Friction
Coulomb friction,
impulse based method
task8 [11]
(10)
Jun. 21
Continuum Mechanics
tensor, stress and strain
task9 [1], [2] [12]
(11)
Jun. 28
Continuum Mechanics2
finite elemenet method
task10 [1], [2], [3]
(12)
Jul. 5
Non-physical Deformation
singular value decomposition,
shape matching method,
linear blend skinning,
as-rigid-as possible deformation
task11
(13)
Jul. 12
Boundary Element Method
Green’s functions,
thin-plate spline interpolation,
radial based function
task12 [1], [2]

Grading

  • 20% lecture attendance
    • Counted by asking question, and making comments ...etc
    • Maximum 1 count for 1 lecture, 5 counts for entire course
    • Starting from the second lecture
    • Tell the instructor your student ID & name if asked
    • The students who don't want to speak in English can write the question in English in the ZOOM chat (the instructor may pick it up and ask the ID & name)
  • 80% small assignemnts
    • see below

Assignemnts

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

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 assignemnt will not be open soon (instructer needs to adjust weight of the score later)

Slides

Reading Material