Mathematics in computer animation

Saty Raghavachary, DreamWorks Feature Animation




  • Introduction

  • A variety of examples


It is *all* math!!

  • camera motion/scene setup - layout
  • shape generation - modeling
  • material assignment - surfacing
  • motion - animation
  • phenomena simulation - fx
  • image synthesis - lighting/rendering

From tiling patterns to topology to differential geometry to integral calculus, practically every branch of math is useful in some aspect of computer graphics/animation


Let us start looking at examples - we'll use Youtube clips, trailers and clips from DW's movies, wikipedia entries, research papers etc. to illustrate the ubiquitous use of math in CG.

Wang tiles - aperiodic tilings

Random numbers - particle systems

Random numbers are used to set particle count, velocity, direction etc. in a 'particle system'.



Navier-Stokes equations - fluid simulation

N-S equations are a staple in fluid calculations..

Voronoi polygons/polyhedra - fracturing

The Voronoi diagram is a very important and useful spatial data structure..

Perlin noise - water etc.

Perlin noise is a workhorse function that can replicate the look/motion of fluids, smoke, wood, marble, banana peel spots.. Animating it (over time) is a great way to replicate ocean waves.

Splines - smooth geometry

Spline curves and surfaces offer an intuitive, controllable way to model smooth curves and surfaces.

Subdivision surfaces - easy models

A deceptively simple, recursive, polygon (quad)-splitting algorithm creates smooth 'limit' surfaces out of low-resolution polygonal models.

Monte Carlo integration: global illumination

Monte Carlo techniques are used to sparsely *sample* a scene's environment while rendering. This is useful for producing soft shadows, color bleeding across surfaces, etc.

Cloth simulation - numerical integration

The most common technique to sim cloth uses a connected springs model. Here is more detail.

Char setup (rigging) - animation

What if we could 'warp' the volume that a character (or part of it) is embedded in?