Fall 2021

CS 4496/7496 Computer Animation

Instructor: Sehoon Ha

Course Topics

The goal of the course is to understand the basic principles behind modern kinematic and physics-based animation techniques. This course requires basic knowledge in linear algebra, vector calculus, computer graphics, and object-oriented programming. It focuses on the math and algorithms behind the computer animation techniques, instead of practical use of animation tools, such as Maya. Course topics include: keyframe animation, differential equations, particle dynamics, 3D orientation, rigid body simulation, collision and contact, fluid simulation, deformable body simulation, character animation, inverse kinematics, motion capture, motion control, and reinforcement learning.

  • Keyframe animation

  • Differential equations

  • Particle dynamics

  • Constrained particles

  • Orientation

  • Rigid body simulation

  • Lagrangian Mechanics

  • Kinematic animation

  • Physics-based animation

  • Deep reinforcement learning

Class Sessions

3 Credit Hours


Full support on remote learning

11:00 am - 11:50 am MWF at ES&T L1205

No Textbook


Class participation: 10%

Programming projects: 60%

Final exam/project: 30%

Programming Projects

Each student will complete five to seven medium-sized programming projects in Python. Each project is sent out in the form of Jupyter Notebook/Google Colab. The students may talk with one another about any of the concepts required for the programming projects, but each student must perform the actual programming of these assignments on their own. Students must write all of the code for each assignment themselves without any form of code sharing by electronic, written, verbal or any other means. Modifying the code found online is not allowed. Pair-programming of any kind is not allowed. The only code from others that may be used in these assignments are those that are given by the instructor. Posting your code on any public repository such as Github is not allowed. Note that it is impossible to get a good grade in this course without completing all seven programming assignments.

Final Exam / Project

We will aim to take the final exam to check the understanding of course materials. Depending on the situation, we may change the exam to the project.

Undergrad vs. Graduate Courses

We will adjust the projects / exams difficulties for undergraduate and graduate students. The below is the summary of the expectation.

  • Undergraduate students are expected to understand the principles of animations, basic mathematics, and their implementation.

  • Graduate students are expected to understand in-depth mathematical techniques and apply them to new situations.

COVID-19 Related Statement

The instructor will try best to follow the school's policy (https://health.gatech.edu/tech-moving-forward), which include:

  • will try to conduct in-person teaching, but will not mandate the student's physical attendance.

  • will not mandate/ask for vaccination or masks (personally encourage both).

  • will try to provide the best remote learning experience as much as possible to accommodate various situations.

  • please contact the instructor (sehoonha@gatech.edu) for any questions.

Example Animations


Sehoon Ha (sehoonha@gatech.edu)

Office: TSRB 230A

Website: https://www.cc.gatech.edu/~sha9