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.
Rigid body simulation
Deep reinforcement learning
3 Credit Hours
Hybrid-mode (subject to change after Phase 2)
Full support on remote learning
5:00 pm - 6:15 pm TR at Klaus 1456
Class participation: 10%
Programming projects: 50%
Final project: 40%
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.
Each student will deliver a short animation clip (~30s) as the final project. The students are free to generate any animation with any tools, but required to apply two to three animation techniques. The generated animations will be evaluated by the instructor, TAs, and peer students.