Introduction to Data-Driven Animation:

Programming with Motion Capture

(Siggraph ASIA 2010 Course)



Jehee Lee

Seoul National University

(Organizer & Presenter)



Syllabus     Course Note




Data-driven animation using motion capture data has become a standard practice in character animation. A number of techniques have been developed to add flexibility on captured human motion data by editing joint trajectories, warping motion paths, blending a family of parameterized motions, splicing motion segments, and adapting motion to new characters and environments. Even with the abundance of motion capture data and the popularity of data-driven animation techniques, programming with motion capture data is still not easy. A single clip of motion data encompasses a lot of heterogeneous information including joint angles, the position and orientation of the skeletal root, their temporal trajectories, and a number of coordinate systems. Due to this complexity, even simple operations on motion data, such as linear interpolation, are rarely described as succinct mathematical equations in articles. This course provides not only a solid mathematical background but also a practical guide to programming with motion capture data. The course will begin with the brief review of affine geometry and coordinate-invariant (conventionally called coordinate-free) geometric programming, which will generalize incrementally to deal with three-dimensional rotations/orientations, the poses of an articulated figure, and full-body motion data. It will lead to identifying a collection of coordinate-invariant operations on full-body motion data and their object-oriented implementation. Finally, we will discuss the practical use of our programming framework in a variety of contexts ranging from data-driven manipulation/interpolation to state-of-the-art biped locomotion con



Course Schedule


Introduction and Overview (5 minutes)

1.      Data-driven animation using motion capture data

2.      Why is it difficult to do programming with motion capture data?

3.      Course overview


Coordinate-Invariant Programming with Points and Vectors (20 minutes)

1.      What is coordinate-invariant geometric programming?

2.      Affine geometry

3.      Coordinate-invariant operations between points and vectors


Programming with Orientations and Rotations (35 minutes)

1.      Representing orientations and rotations

2.      Analogy between points/vectors and orientations/rotations

3.      Coordinate-invariant operations with orientations and rotations


Programming with Motion Capture Data (10 minutes)

1.      Representing motion data and motion displacements

2.      Coordinate-invariant operations for motion data


Practical examples (30 minutes)

1.      Motion exaggeration and style transfer

2.      Hierarchical displacement mapping

3.      Interpolation and transitioning