Dynamo: Dynamic, data-driven character control with adjustable balance

in ACM Sandbox Symposium on Video Games 2006

Pawel Wrotek, Electronic Arts
Odest Chadwicke Jenkins, Brown University
Morgan McGuire, Williams College

Paper (PDF)
Presentation (PPT)
In-game Video (MOV)
Result Videos


Dynamo (DYNAmic MOtion capture) is an approach to controlling animated characters in a dynamic virtual world. Leveraging existing methods, characters are simultaneously physically simulated and driven to perform kinematic motion (from mocap or other sources). Continuous simulation allows characters to interact more realistically than methods that alternate between ragdoll simulation and pure motion capture.

The novel contributions of Dynamo are world-space torques for increased stability and a weak root spring for plausible balance. Promoting joint target angles from the traditional parent-bone reference frame to the world-space reference frame allows a character to set and maintain poses robust to dynamic interactions. It also produces physically plausible transitions between motions without explicit blending. These properties are maintained over a wide range of servo gain constants, making Dynamo significantly easier to tune than parent-space control systems. The weak root spring tempers our world-space model to account for external constraints that should break balance. This root spring provides an adjustable parameter that allows characters to fall when significantly unbalanced or struck with extreme force.

We demonstrate Dynamo through in-game simulations of characters walking, running, jumping, and fighting on uneven terrain while experiencing dynamic external forces. We show that an implementation using standard physics (ODE) and graphics (G3D/OpenGL) engines can drive game-like applications with hundreds of rigid bodies and tens of characters, using about 0.002s of CPU time per frame.

Result Videos

The following videos are DivX encoded. If they cannot be played correctly on your player, try using the free VLC Player.

Obstacle Course

Goal motions determined by motion capture data from motion on an unobstructed plane. All locomotion is due to real physics. Note how Dynamo's World Space method better adapts to the environment, while the Parent Space character appears "drunk."

Prior Art
(Parent Space)

(World Space)

External Forces

A Dynamo character attempts to stand straight while external forces are applied with the mouse cursor. Note that when placed in an imbalanced pose the character correctly falls over, however it able to maintain balance under moderate external forces.

External Forces

Super Balance vs. Root Spring

Two Dynamo characters. The green one on the left directly applies world-space torques, which create the artifact of super balance. Even though the character's center of mass is off the crate it does not fall. The right character uses Dynamo's breakable root spring, which provides plausible balance and the character correctly falls when severely imbalanced.

Super Balance

Impacts and Balance

A ghost showing pure motion capture and four variations of the Dynamo algorithm. From left to right: Gray ghost; Green Dynamo character with super balance, which is implausible; Orange Dynamo character with a plausible breakable root spring; and Purple Dynamo character with a root spring and simulated unconsciousness.


Ballistic Motion

Demonstration that a Dynamo character with a root spring can still produce sufficient forces to create ballistic motion and is able to balance in dynamic situations, even on one foot. When the character lifts off the ground we are not applying forces to the root--ballistic motion naturally results from feet pushing off against the ground. There is less energy than the original motion capture because we are not simulating muscles in a physically correct manner; gains must be tuned to match real ballistic motion.

Ballistic Motion


Two Dynamo characters boxing. The original motion capture describes a single character shadow boxing on a flat plane. Note how the Dynamo characters correctly adapt their foot placement to an uneven, dynamic surface and adapt their motion to the constraints of each other's bodies.

Also see our extended boxing example.



Dynamo characters become stunned and sluggish under impacts. Under extreme impacts, they become unconscious.



A failure case of our algorithm. The rightmost, orange Dynamo character's arm becomes stuck between its legs, leading to flailing on the ground. The center, blue parent space character does not exhibit this behavior. To avoid these situations, Dynamo characters need higher level AI to avoid "stupid" behaviors where limbs become interlocked.



 author = {Pawel Wrotek and Odest Chadwicke Jenkins and Morgan Mc{G}uire},
 title = {Dynamo: dynamic, data-driven character control with adjustable balance},
 booktitle = {sandbox '06: Proceedings of the 2006 ACM SIGGRAPH symposium on Videogames},
 year = {2006},
 isbn = {1-59593-386-7},
 pages = {61--70},
 location = {Boston, Massachusetts},
 doi = {http://doi.acm.org/10.1145/1183316.1183325},
 publisher = {ACM},
 address = {New York, NY, USA},