depending on the complexity of the problem. The total time to syn-
thesize each animation clip ranges between 2 to 10 minutes on a
quad-core 2.3GHz Intel Xeon machine.
By using the tasks
described in section 4.3 we can synthesize a
By using only
ground, we synthesize the motion of getting up. Different initial
poses (such as lying on the back, or on the stomach) result in differ-
ent getting up strategies, as seen in the accompanying video. If the
character is initially standing,
ing to stand. By using
task in combination with
contacts typical of walking is not speciﬁed and emerges automati-
cally from our optimization.
video with a white crosshair.
By using only
to include an obstacle, a range of strategies emerges from simply
stepping over the obstacle, to using hands to prop the character up,
to using hands to grip and climb a really tall obstacle. The coefﬁ-
cient of friction µ on the foot contacts is 2 to allow foot plants on
completely vertical slopes. Hand contact forces do not have friction
cone or positivity constraints to reﬂect the ability of hands to grip.
Handstands, Punches, Kicks
by swapping feet
point upwards, we create a handstand task
. When only
this task is active and the character is initially standing, they will
make a series of preparatory movements and prop themselves up
onto their hands.
can similarly be combined with
To generate striking motions such as punches and kicks, we create
task that speciﬁes positions and velocities for limb end effec-
get at every second movement phase (every third phase for kicks).
We also add
sult is a character striking targets as if they were known in advance,
while staying balanced enough to make subsequent strikes.
Non-Human Character Morphologies
We also tested our algo-
rithm with characters of different morphologies, such as a biped
with a wide torso and quadruped with short legs. The optimiza-
tion was successful in getting up, walking and climbing scenarios,
with strategies appropriate for each morphology. For example, ani-
mal trot pattern of contacts (moving front leg and opposite hind leg
together) emerges for quadruped walking without explicitly being
Interaction with Objects
Additional prop objects can be intro-
duced and their trajectories included as variables in the optimiza-
tion. An object has auxiliary contact variables for every character’s
hand, indicating that the end effector is gripping the object. The
now apply to the object as well. The object
is able to generate contact forces that move it around, but L
the surface of the object.
Tasks similar to
orientation of the object. From only these two tasks, the strategy of
the character having to pick up and carry the object to the destina-
tion emerges (in particular, no tasks are speciﬁed for the character).
Intuitively, the cost terms form the following dependency: to move
the object, L
requires contact forces, which requires active
requires character’s hand end effectors to be
acter be close enough to the object to touch it. This may require
walking up to it, and so on.
Interaction Between Characters
Our algorithm can be ex-
tended to jointly optimizing for the motion of multiple characters.
For the task of moving the object above, multiple characters dis-
tribute the workload and cooperate to pass the object from one to
the other. We can control the workload distribution by increasing
the penalty on contact forces in equation (9) for one of the charac-
ters, and making the other character do most of the object carrying
Two characters also cooperate to achieve tasks impossible for one,
above character’s height. Because contacts can be made with the
surfaces of other characters, the task is achieved by one character
climbing on top of the other.
In this paper we presented a fully automated framework for synthe-
sizing a wide range of movement behaviors, and demonstrated its
effectiveness on complex and rarely studied behaviors. Our frame-
work is agnostic to the morphology of the character, and indeed we
showed that movement behaviors can be created for signiﬁcantly
different types of characters. The contact-invariant optimization
method could likely be applied to other domains where constraint-
driven phases bifurcate the optimization space making it very hard
to ﬁnd solutions numerically. We developed an effective continua-
tion scheme suitable for our optimization method.
We also introduced a feature-based physics model that allows for
efﬁcient consideration of dynamic aspects in the inner loop of the
optimization procedure. This relaxation naturally comes at a cost.
We model the character’s kinematics and contact interactions with
the environment in detail, but represent its dynamics as a single
rigid body and do not model the limb dynamics. This simpliﬁcation
effectively results in limbs with inﬁnitely strong muscles (and no
penalty for using them), which in turn can lead to energy-inefﬁcient
motions such as using bent knees for support, having arms extended
against gravity, or occasional out of place sitting. The latter occurs
because sitting minimizes the sum of squared contact forces, but
does not consider the effort required to get back up. These lim-
itations may be removed by using full-body inverse dynamics to
calculate the character’s joint torques, and penalizing the torques or
some related quantity.
The key advantage of our framework is the simultaneous optimiza-
tion of contacts and smooth portions of the movement. This was
made possible by introducing an auxiliary decision variable for
each potential contact, and keeping these variables constant within
each phase. As a result, we were able to optimize very long and
temporally complex movement sequences that have previously re-
mained beyond the reach of numerical optimization methods. The
price we had to pay was that the potential contact points (or rather
patches) had to be pre-deﬁned. We are of course penalizing pene-
trations everywhere, but this is not the same as actively optimizing
over active contacts. One way to remove this limitation is to sim-
ply increase the number of potential contacts and cover the entire