Animation and CGI Motion


Learn the science behind movie animation from the Director of Columbia’s Computer Graphics Group.

How do you create realistic animations? How do you predict the motion of materials? It’s key to the success of animated films to ensure audiences believe in characters.

This course will show you how to create lifelike animations focusing on the technical aspects of CGI animation and also give you a glimpse into how studios approach the art of physically-based animation.

You will learn the fundamental concepts of physical simulation, including:

  • Integration of ordinary differential equations such as those needed to predict the motion of a dress in the wind
  • Formulation of models for physical phenomena such as crumpling sheet metal and flowing water
  • Treatment of discontinuities such as fractures and collisions
  • Simulation of liquids and solids in both Lagrangian and Eulerian coordinates
  • Artistic control of physically-based animations

These concepts will be put into practice in the programming assignments spanning:

  • Discretising and integrating Newton’s equations of motion
  • Constrained Lagrangian Mechanics
  • Collisions, contact, and friction: detection and response
  • Continuum mechanics
  • Finite elements
  • Rigid body simulation
  • Thin shell and cloth simulation
  • Elastic rod and hair simulation
  • Fluid simulation

This course is part of the Artificial Intelligence MicroMasters® Programme, offered through the edX® platform.

Associated Programmes:
MicroMasters® Programme: Artificial Intelligence.

Associated Courses:
Artificial Intelligence (AI)
Learn the fundamentals of Artificial Intelligence (AI), and apply them. Design intelligent agents to solve real-world problems including, search, games, machine learning, logic, and constraint satisfaction problems.
View the Artificial Intelligence (AI) course

Machine Learning
Master the essentials of machine learning and algorithms to help improve learning from data without human intervention.
View the Machine Learning course

Learn the core techniques for representing robots that perform physical tasks in the real world.
View the Robotics course

Programming knowledge in C or C++, multivariable calculus (partial derivatives), linear algebra, enthusiasm.

Recommended background:
Introductory classical mechanics.

Physics, computer graphics are not required.

We will present introductions to these topics along the way, as needed.

edX® and MicroMasters® are registered trademarks of edX® Inc. All Rights Reserved.

  • Programme duration
    12 weeks
  • Estimated effort
    8-10 hours per week
  • Fee
  • Institution
  • Language
Start Dates
  • To code your own physics simulator to master the fundamental algorithms for creating life-like animations clothing, hair, liquids, rigid bodies and more
  • Temporal integration of the equations of motion
  • Formulation of mathematical models for mechanical systems
  • Numerical methods for treating contact and impact
  • Lagrangian and Eulerian representations of continua control of physical models

Course Syllabus

The coursework will focus on seven themes. Each theme is divided into weekly assignments, or "milestones."

Each milestone will include successful implementation of new technical features, and an artistic scene that demonstrates these features.

  • Theme 01: Mass-spring systems, in which you will implement point masses, gravity, springs, dampers, time integrators (explicit Euler, symplectic Euler, linearised implicit Euler).
  • Theme 02: Collision handling, in which you will implement detection against fixed obstacles (discs, half-planes, polygonal objects), response against fixed obstacles (using reflection with a coefficient of restitution, and penalty methods), advanced pairwise detection between polygonal objects, and broad-phase accelerations using spatial hashing and hierarchical bounding volumes.
  • Theme 03: Rigid bodies, in which you will implement computations of center of mass and moment of intertia for polygonal objects, time integration for rigid bodies, and contact with fixed obstacles.
  • Theme 04: Elastica, in which you will implement the constant strain finite element, a discrete bending force for polygonal objects, and plastic and viscous flow.
  • Theme 05: Fluids, in which you will implement a fast and stable fluid simulation including advection, convection, and viscosity, in an Eulerian framework.
  • Theme 06: Project, in which you are the boss.