OptiMo: Optimization-Guided Motion Editing for Keyframe
Character Animation
Yuki Koyama
Masataka Goto
National Institute of Advanced Industrial Science and Technology (AIST), Japan{ koyama.y, m.goto }@aist.go.jp
Control handle

Animation curve

Animator’s control

Seamless
iterative
editing

Figure 1. We present a new framework for animators to edit character motions by effectively using the power of numerical optimization. (Left) Conceptof the framework. As well as direct manipulation, animators can use controlled optimization to efficiently edit animation curves in the iterative editing
process. (Right) Example of edited motions using our proof-of-concept system, named OptiMo.

ABSTRACTINTRODUCTION

The mission of animators is to create nuanced, high-quality
character motions. To achieve this, the careful editing ofanimation curves—curves that determine how a series of
keyframed poses are interpolated over time—is an importanttask. Manual editing affords full and precise control, but requires tedious and nonintuitive trials and errors. Numerical
optimization can automate such exploration; however, automatic solutions cannot always be perfect, and it is difficult
for animators to control optimization owing to its black-box
behavior. In this paper, we present a new framework called
optimization-guided motion editing, which is aimed at maintaining a sense of full control while utilizing the power of
optimization. We have designed interactions and developed
a set of mathematical formulations to enable them. We discuss the framework’s potential by demonstrating several usage
scenarios with our proof-of-concept system, named OptiMo.

In the digital production of animated films, computer games,
etc., the mission of animators is to animate computer graphics characters plausibly and appealingly. Their task could be
decomposed into two stages: keyframing and curve editing.
Keyframing is the stage in which animators define key poses atseveral time points (i.e., keyframes). Curve editing is the stage
in which animators manipulate animation curves to define
how key poses are interpolated between keyframes. Whereas
keyframing is important as it defines the basic motion scenario,
curve editing is also important for achieving well nuanced animations; animations using the same keyframing can produce
very different impressions, depending on how the animation
curves are edited.

Motion editing; computer animation; optimization;
computational design; physics.

Manually creating plausible animations requires tedious andunintuitive trials and errors of animation curve editing. It
requires to explore a high-dimensional search space by manipulating many control handles (note that a human pose isalready high-dimensional and a human motion is even higherdimensional). Additionally, it is difficult to predict the quality
before actually modifying the animation curves and seeing the
new motion, because the effect of manipulating a parameter
is often indirect. Furthermore, plausible animation requires
adherence to certain high-level rules such as physics, whichmakes the task even more complex.

c 2018 Copyright held by the owner/author(s). Publication rights licensed
to ACM. This is the author’s version of the work. It is posted here foryour personal use. Not for redistribution. The definitive Version of Record
was published in Proceedings of 2018 CHI Conference on Human Factors
in Computing Systems (CHI ’18), https://doi.org/10.1145/3173574.
3173735.

Numerical optimization is a powerful tool and has the potential to fully automate the process of animation curve editing.
By mathematically formulating the search space (i.e., whichparameters should be adjusted) and the objective (i.e., how
the motion should be) of the curve editing, an optimizer can
automatically and simultaneously optimize the target parameters, which are otherwise manipulated one-by-one manually.

ACM Classification Keywords

H.5.m Information Interfaces and Presentation (e.g. HCI):
Miscellaneous; I.3.8 Computer Graphics: Applications
Author Keywords

1

This approach could release animators from the difficulty ofhandling the high-dimensional problem.

Animator

However, automatic solutions cannot always be perfect because any objective function cannot perfectly represent animators’ aesthetic intention. Thus, it is inevitable that the resulting
animation needs to be manually edited by animators. However, owing to the black-box nature of optimization, editing
the optimized animation is often much more difficult thanediting the original one; animators have to begin by understanding what happened with the optimization. Furthermore,some optimization may change the representation of animation curves (e.g., the manner of placing control handles forediting curves), which makes it more painful to understandand edit them. Thus, animators are rarely comfortable relying
on such a black box, and so the manual approach is mainly
adopted in practice.

Input
motionOutputmotionOptimizer

(

Edit

…

)

Figure 2. Illustration of our design goals: (1) the output motion should
remain editable for further refinement, (2) the optimization should becontrollable by the animator, and (3) the process should be transparent.

interactive; animators can intervene in the optimization process during running it.
• It visualizes certain aspects of the optimization for enhancing transparency. This includes the visualization of the optimization process (not just the result) and the visualizationof how the current motion is evaluated by the optimizer.

Contributions

In this paper, we present a new framework for editing articulated character motions, which we call optimization-guided
motion editing, where optimization is used as a tool for effectively guiding animators’ manual motion editing, rather thanfor fully automating the process (Figure 1). This frameworkhas the advantages of both automatic optimization and manual
editing; it borrows the power of numerical optimization to
manipulate multiple parameters simultaneously, yet tries togive animators the sense of full control. The objective used for
optimization cannot be perfect but can be an “approximation”
of what animators want to create, so it can guide motion editing toward generally better directions, especially at the earlystage of exploration. This would help expert animators savetime and allow novices to more easily achieve high-quality
animations.

We discuss the potential of optimization-guided motion editing
through demonstrating several usage scenarios using our proofof-concept system. We also report the feedback commentsfrom expert animators obtained through an informal interview.
RELATED WORK
Character Motion Editing

Character animations are usually created by either captured or
keyframed motions. For realistic humanoid characters, motion
capture is mainly used because it is effective for creating
realistic motions. One common problem with this approachis the difficulty of editing motions once they are captured,although researchers have tackled this problem (e.g., [33, 27]).
Apart from the editability issue, there are many cases in whichmotion capture is not effective. First, captured motions areoften unsuitable for stylized characters (e.g., those in Pixar’s
feature films) because the mismatch of body balance may
cause perceptual incongruity and captured motions may be too
realistic for stylized characters. For non-humanoid characters(e.g., creatures), it is not easy to capture their motions orapply captured motions performed by human actors to them.
Additionally, it is difficult to capture highly acrobatic motions.

Our primary contributions are the design and mathematicalformulations for a proof-of-concept system, named OptiMo,
which enables optimization-guided motion editing. Specifically, to keep the sense of full control as much as possible
while interacting with optimization, we considered the following three design goals for the system (Figure 2):
Editability. The optimized motion should be able to be easilyedited by animators for further manual refinement.

Thus, for such cases in which motion capture is not effective,
animators create motions from scratch, which is our target scenario. Using dedicated systems such as Maya [2], animators
create key poses at several key frames, and then adjust how
they are interpolated by editing the animation curves. Bothstages involve adjustment of many parameters, and so require
expertise for exploring such a high-dimensional search space.
Researchers have developed systems for supporting this task;for example, sketch-based interaction can help animators intuitively explore this search space [16, 8]. In this work, weinvestigate the use of optimization to support this exploration.

Controllability. The optimization behavior should be able tobe controlled by animators as flexibly as possible.
Transparency. The optimization process should be understandable for animators as intuitively as possible.
To achieve these goals, we developed the following features
for our system:• It solves optimization problems without changing the placement of the control handles that the animator defined in the
keyframing stage. This is useful for preserving editability
and for enhancing transparency.

Several works focused on the creation of key poses. Tangible
devices have been developed for setting key poses of various
characters [13, 19]. Some methods enable posing by sketchingline-of-actions [29] or gesture drawings [6]. Our framework
focuses on the stage of curve editing, which comes after the• It allows animators to control the optimization behavior
via simple interface (e.g., sliders). To further increase controllability, some optimization controls are designed to be2

posing stage, and so setting key poses is out of our scope. Notethat our framework is complementary to these techniques.

automatic; for example, spinning top design [4] and keyboard
layout design [21] can be automatically generated once theuser specifies necessary inputs.

Editing animation curves plays an important role in determining the quality of motions, but few studies have tackled this
aspect. Rather than supporting interactive curve editing, automatic synthesis of interpolation curves between keyframes
has been investigated. This approach is called space-time
constraints [37, 14]. However, this approach is not preferredin practical workflow because generated motions are difficult
to edit. In contrast to this, we aim at achieving interactive
exploration by animators with the support of iterative editing.

Other methods involve interaction with optimizers during design sessions, and ours fits into this category. Local optimization (e.g., the steepest descent method) can be used for
gradually guiding a design toward better directions even during user manipulation [23, 35]. Optimization can also be used
for generating alternative designs as suggestions; DesignScape[28] and Sketchplore [34] are systems for authoring graphic
designs with optimized layout suggestions. From the viewpoint of how users interact with optimization, MenuOptimizer[5] has several similarities to our approach, although the target
domain is quite different; the system offers visualization of themetrics and control of the objective function. Optimizationis also useful for converting physically infeasible inputs into
feasible ones; Airways [12] uses optimization for designingphysically feasible quadrotor trajectories from casual sketches.
Our system adopts a physics-based cost function that is minimized in the optimization and thus can guide target motions
in physically plausible directions, as explained later.

A method, called rig-space physics [17], is similar to oursin terms of maintaining the editability of resulting motions.
It generates secondary motions for passive parts (e.g., a fat
character’s belly shaking because of a primary motion, suchas walking) by using elastic simulation. This simulation is performed using artist-defined rig parameters; any deformationis represented as a combination of rig parameters, enabling
intuitive editing by animators after generation. In the same
spirit, but taking a different approach, our framework not only
preserves the original rigs (i.e., we do not change skeletal
structures) but also preserves the control handles of the animation curves defined in the keyframing stage. Additionally, wetarget characters’ active motions rather than their passive ones,
and we use optimization to support edits rather than physicalsimulation to generate new motions.

Our work contributes to this research area by presenting thefirst system for optimization-guided design in the motion editing scenario. We investigate the necessary interaction design
and mathematical formulations for this specific scenario.
TARGET PROBLEM

Shapiro and Lee [32] presented an animation authoring system that guides animators based on visualization of characters’ physical properties (e.g., the center of mass and angularmomentum). The motivation and the system design are overlapped to ours; whereas using a high-level concept (physics intheir case and optimization in our case), it allows animators
to maintain “a fine-grained level of control” unlike other automatic methods to achieve practicality in actual production.
Whereas their system only provides visualization and does notmanipulate any parameters automatically, our framework semiautomatically manipulates many parameters with the control
of animators, which is more challenging for keeping the control, and thus requires non-trivial interaction design. Note that
their focus is the support of editing whole-body movement
paths (e.g., matching the path of the center of mass with aballistic trajectory) and it does not explicitly guide how thecharacter’s poses and timings should be nuanced. In contrast,
our framework supports it via optimizing animation curves.

Character Representation

Characters in computer animation are articulated by controlling the animation rig, which is a generic term for indicating
a set of artist-defined variables that parametrizes the character’s pose [17, 18]. Several types of rig parameters are used
together in the production process; for example, blendshapes
is often used for manipulating relatively detailed poses such as
facial expressions [25]. Among them, skeletal rig is probably
the most basic rig system, in which the pose of a characteris controlled by a tree structure called a skeleton: a set ofbones connected by joints. In this study, we test the concept of
optimization-guided motion editing using skeletal animation,
because it is simple and widely used.

Optimization-Based Design

By assuming that bones are rigid (i.e., do not change theirlengths), a character’s pose is fully specified by the orientationsof the joints. Each joint orientation is controlled by either
Forward Kinematics (FK) or Inverse Kinematics (IK). In FK,
the orientation of a joint (specified by Euler angles in our
implementation) is considered as the rig parameter that shouldbe tweaked by animators. In IK, the target position of a joint,called the end effector, is considered as the rig parameter; inthis case, the orientations of intermediate joints are derived bysolving IK [7]. See Figure 3 (Left) for an example. Usually, acharacter is controlled by using both FK and IK; for example,
spine and neck are often controlled by FK, and arms and legs
are often controlled by IK with hand or foot target positions.

Researchers have shown many design applications in which
numerical optimization enables new designs or new design
workflows that are otherwise difficult. This paradigm is often
referred to as computational design. Some methods are fully

An animation curve interpolates keyframed rig values (i.e.,pairs of a rig value and a time point) over time. For this,Some methods support editing and authoring of twodimensional (2D) animations [22, 9]. Although our work
is primarily targeted at three-dimensional (3D) animations,where the degrees of freedom are often much larger than 2D,
we believe that the concept and interactions of optimizationguided motion editing could be transferred to 2D cases, which
we leave as a future work.

Animation Curve Representation

3

Key point

Control handle

End effector

Tangent handle

Joint hierarchy view

Animation view

Cost visualizationFK

IK

Figure 3. (Left) Example of a skeletal rig. The skin mesh is bound to theinternal skeleton. Animators manipulate either the joint angles in forward kinematics (FK) or the end effector positions in inverse kinematics(IK). (Right) An animation curve and the terms used in this paper.

Curve editor

we chose the representation based on piecewise cubic Bézier
curves because it is widely used in animation software [2, 1].
The entire curve passes through several key points. A partial
curve between two key points is called curve segment, which
is a single cubic Bézier curve. We define a control handle to bea manipulatable handle consisting of a key point (a pair of a rig
value and a time point) and a tangent handle (Figure 3; Right).
Key points determine the end points of each curve segment,
and tangent handles control the curves shapes. Defining key
points corresponds to the keyframing stage, and manipulatingtangent handles corresponds to the curve editing stage.

Current frame

Figure 4.
Appearance of OptiMo, a proof-of-concept system for
optimization-guided motion editing.

optimization as freely and precisely as possible. To thisend, the system must provide ways for animators tointervene in the optimization process, possibly by tweaking
several control parameters. Additionally, it is desirable
for the intervention to be interactive during running the
optimization, thereby allowing fine-grained adjustment.
The optimization process should be transparent. Optimization is an abstract concept and it may be difficult for those
who are not familiar with mathematics to understand why itworks. However, it is necessary for animators to understandhow it works; otherwise, animators cannot effectively
decide when and how to utilize the optimization duringediting. To this end, the system must provide information
about what the optimization will do or is doing in an easily
understandable way.

Task Goal

The goal of curve editing is to make the motion plausible andappealing by adjusting the tangent handles. This is usually
done by manual one-by-one iterations of the following process:manipulate a tangent handle, watch the motion, and go to thenext tangent handle until the motion becomes satisfactory.
This task is not only tedious but also complicated owing to
the high-dimensionality and the indirect effects among rig
parameters. For example, suppose that a humanoid characteris waving his arm. Even if the shoulder joint is the primary
moving part, it affects other body parts to keep the balancefrom the viewpoint of physics, suggesting that even a simple
motion requires to consider the indirect effects.

OptiMo: A Proof-of-Concept System

Based on the above considerations, we designed and developed a proof-of-concept system of optimization-guided motion
editing, named OptiMo (Figure 4). Similar to most motion
authoring software, our system has a curve editor1 in its interface, in which the rig parameters of the selected joints or IK
handles are shown as animation curves, and animators can edit
the curves by manipulating the control handles. The selectionof joints and IK handles is done via the joint hierarchy view.
At any time, animators can trigger optimization for improving
the animation curves. Each optimization finishes typically in a
few seconds or up to ten seconds, depending on motions. Oncethe optimization is done, animators can immediately begin
manual refinement or run the optimization again with a different control setting. For better interaction with optimization,
the system was designed to have the following features.

OPTIMIZATION-GUIDED MOTION EDITING
Design Goals

We propose to utilize numerical optimization as a tool for
guiding manual motion editing. However, naı̈vely applying
optimization to a target motion is not desirable because it
deprives animators of full and precise control. To maintain asense of full control as much as possible while interacting with
optimization, we set the following design goals (Figure 2):
The optimization output should remain editable. The resulting motion should be easily editable by animators. This
enables further refinement, which is crucial in practical
workflow. In particular, it is extremely important not tochange the control handle definitions before and after the optimization. This is because every control handle is set (moreor less) “intentionally” by the animator in the keyframing
stage, and thus the placement of the control handles before
optimization could be the most convenient representation
for the animator who performed the keyframing.

Preservation of Control Handles (Editability + Transparency)

The system preserves the placement of the animator-defined
control handles during and after the optimization; the optimization adjusts the tangent handles and does not touch the
key points defined in the keyframing stage. It does not change
the curve representation, nor re-define control handles automatically. This allows animators to easily understand what the

The optimization behavior should be controllable.
Animators should be able to control the behavior of1
This widget is sometime called by different names, such as Graph
Editor in Maya [2] and FCurves Window in MotionBuilder [3].

4

High

Strong regularization

Low

Medium regularization

Figure 5. Cost visualization on the curve editor using a color map. Highcost regions (around the center in this figure) indicate that the system
considers the current motion to be undesirable around there, and the
optimization will try to resolve these undesirable moments.

optimization did, and thus allows them to immediately begin
to edit the resulting curves for fine-grained refinement or undo
the optimization if necessary.

Weak regularization

Optimization Process Visualization (Transparency)

Not only does it provide the output of the optimization, the system also visualizes the intermediate states of the optimization
as real-time animation in the curve editor. That is, animators
can see how the optimization explores possible motions andsearches for a solution. Furthermore, as our system preserves
the control handles during the optimization and manipulates
the handles that animators otherwise manipulate, animators
can understand the visualization as a “fast forward” of a manual search performed by someone else. This allows animators
to understand the concept of optimization, which increases
transparency. This animated visualization also helps animators
easily notice unintentional modifications (if any).

Figure 6. Interactive specification of regularization weight. The original
motion is more preserved when a larger weight is specified, and viceversa. By the real-time preview of the optimized curves and motions, theuser can intuitively seek a preferable weight value for controlling the
optimization behavior.

Undo

Click

Cost Visualization (Transparency)

The optimization process visualization facilitates understanding of how the optimization finds a solution; however, it does
not tell why the solution is chosen. To make it transparent, thesystem shows the distribution of cost values over time in the
curve editor using a color map (Figure 5). This distribution
indicates what the system considers “good” or “bad;” by optimization, the system tries to minimize the total “badness” inthe motion. As explained later, we adopted a physics-based
cost function [31] to quantify the goodness of motions.

Increase weight

Optimize

Figure 7. Per-joint regularization. In this example, the animator is unsatisfactory with the result of optimization because the elbow is modified
in an undesirable manner (indicated by a red arrow). This can be fixedby undoing the failed optimization, setting a large regularization weight
for the elbow joint, and running the optimization again.

some specific joints are excessively modified from the original
motion, he or she can undo the optimization, set a higher regularization weight for each of these specific joints, and thenre-run optimization to obtain a more desirable result. Figure 7
illustrates an example of the usage of this feature.

Interactive Regularization (Controllability + Transparency)Naı̈ve optimization sometimes modifies the motion so muchthat it might break the original intention. To prevent this,the system allows animators to “regularize” the optimization
behavior, or to control how much the optimization preserves
the original motion. This can be done by adjusting a single
regularization weight parameter via a slider interface; a larger
weight makes the optimization more conservative, and viceversa. Furthermore, the system allows interactive specificationof the weight parameter during optimization; according to
the slider manipulation, the curves and the preview motion
are updated in real time using the regularized optimization.
This interactivity supports animators not only to control the
optimization easily and precisely, but also to understand how
the regularization works. Figure 6 illustrates this feature.

Time-Varying Cost Control (Controllability)

Because no cost function is perfect, the visualized cost distribution may be unsatisfactory for the animator; it can provide
unintentionally high cost values for certain moments. Applying optimization with this unsatisfactory cost distribution
results in a motion that does not correctly reflect the animator’s intention. To prevent this, the system has a feature called
time-varying cost control; it allows animators to specify atime-varying weight distribution, which is a smooth distribution of weight values over time, to tell the system to ignore
costs in low-weight periods. Figure 8 illustrates this feature.
Furthermore, to make adjustments to the weight distribution
easier, there is an interactive mode; it can run optimization inreal time during adjustment.

Per-Joint Regularization (Controllability)

The system allows animators to control the strength of regularization for each joint separately. For example, if the animatoris not satisfied with the result of an optimization because5Objective Function

We formulate the optimization problem asx∗ = arg min C(x),Original motion

Optimized motion
without cost control

Time-varying weight dist.
for cost control

Optimized motion
with cost control

(3)

x∈X

where C(·) is a cost function that leads the target motion ina “desirable” direction, and x∗ is an optimal motion obtained
through the optimization. The choice of C(·) is arbitrary as
long as C(·) appropriately penalizes undesirable motions (i.e.,
returns a large cost value) and does not penalize desirable motions (i.e., returns a small cost value). In this work, we chosea physically inspired cost function as the first step, whereas
other cost functions are possible.
We assume that the cost function can be represented as anintegral of an “instantaneous” cost over time. Here, the instantaneousness means that a temporally localized cost value
can be evaluated for every moment. From a mathematical
viewpoint, this assumption is represented as
Z
C(x) =
C(x, t)dt,(4)

Figure 8. Time-varying cost control. If the visualized cost distribution does not correctly reflect the intention at some periods, the user cancontrol where to ignore the cost function by specifying a time-varying
weight distribution. Here, the darker regions in the curve editor mean
lower weights, and thus the costs of these regions will be ignored in the
optimization.

Rig value

where C(x, t) evaluates the cost for the motion x at the timet. Note that this assumption has been made in many previous
successful methods (e.g., [31]).
We implemented a well-established cost function, which wasused by Safonova et al. [31]. Here is an intuition of this costfunction: it penalizes large torques concentrating on specificjoints or moments. Mathematically, it is formulated as the sumof squared torques over all the joints:
X
C(x, t) =kτ j (x, t)k 2 ,
(5)

Time
Figure 9. Illustration of the parameters of a control handle. The time t
and the value v are provided at the keyframing stage. The task of curve
editing is to manipulate the tangent handle parameters: ∆tf , ∆tf , and θ.

BASIC OPTIMIZATION FRAMEWORK WITH EDITABILITYj∈J

In this section, we describe the basics of the optimization
framework, which is formulated such that the editability is
maintained even after optimization. At this moment, we do notconsider controllability; we will describe how to add control
over optimization in the next section.

where J is the set of all the joints and τ j (x, t) is the torque on
the j-th joint for the motion x at the time t.
The torques are estimated from the motion and the mass properties of the character. This process is called Inverse Dynamics [10, 26], and our implementation uses an existing library,
RBDL [11]. To calculate the mass properties, we assume thateach bone is a rectangular box made of a uniform material.

Parametrization

Suppose that there are n control handles in the curve editor.
In the keyframing stage, animators specify the time t and thevalue v for each control handle. The remaining degrees of
freedom of the i-th control handle, which should be adjusted
in the curve editing stage, can be parametrized ashiT
xi = ∆tib ∆tif θi ∈ R3 ,(1)

Solver Details

The analytic derivative of the objective function is not available in our problem setting. Thus, we use BOBYQA, a local
derivative-free optimization algorithm [30] implemented in
the NLopt library [20]. The motion before optimization is set
as the initial solution. Note that we have tested several other algorithms and empirically found that BOBYQA worked well inour setting. We also found that local optimization algorithms
are preferable to global ones because global ones are typicallyslower and often produce motions that are too different fromthe original motion, which is often undesirable. Moreover,choosing local algorithms is important for the visualizationand interaction to be intuitive; most local algorithms update
the target parameters gradually, which is easier to understand.

where ∆tb and ∆tf are the backward and forward displacementsof the tangent handle, respectively, and θ is the tangent angle.
See Figure 9 for an illustration of the parametrization. By
concatenating these vectors over all the target control handles,
we can describe the motion as a single vector:hiTx = xT1 · · · xTn ∈ R3n .
(2)
Now, the goal is to adjust the vector x such that the motion
becomes optimal. Let X ⊂ R3n be the domain for this searchof the vector x. To ensure that the tangent handles are always
valid, the search space X is defined such that it satisfies thecondition: ∆tib ≤ 0, 0 ≤ ∆tif , and − π2 ≤ θi ≤ π2 for i = 1, . . . , n.

Discussions

In Figure 10, we show a result of applying the optimization toa motion of a stick figure waving his arm. The optimization
6

set to zero, the optimization freely changes the parameter without considering the original motion. If it is set to an infinitely
large value, the optimization does not change the motion.

Original motion

Trajectory Difference

The second term measures the difference between the trajectories of the joints. We formulate this as


Z 



X


2


traj
traj
orig
p j (x, t) − p j (x , t) dt, (8)
D =w





 j∈J


Optimized motion(w/o any control)

where p j (x, t) is a function that returns the position of the j-th
joint at the time t when the motion parameter x is applied, andwtraj ∈ R is a weight parameter for controlling the strength of
the regularization.

Figure 10. Failure example of optimization without any control. (Top)The original motion before optimization. (Bottom) An optimized motion
without any control. In this case, the stick figure’s elbow is undesirably
bent for minimizing its torque. This is natural from the viewpoint ofphysics, but this is not likely to be the animator’s intent.

Interface for Specifying Weights

It is technically possible to let animators specify all the values
of wparam and wtraj directly; however, this may not be tractable.
Therefore, our system uses a single slider, as we showed in theinteractive regularization feature, to simultaneously set samevalues to the weights. In addition to this, to enable the per-joint
regularization feature, the system increases the values of thecorresponding dimensions of wparam according to the per-joint
slider values specified by the animators.

successfully minimized the torque concentration and provided
a physically plausible motion; however, the resulting motion
is apparently unnatural because the elbow is bent in a biologically impossible way. This is caused by the fact that the costfunction defined by Equation 5 (and probably any other costfunction) is not perfect. To overcome this issue and effectively
utilize the optimization, control of its behavior is necessary.

Control over Cost Function

To let the user control the cost function, we extend the costfunction representation in Equation 4 asZĈ(x) =
wcost (t)C(x, t)dt,(9)

ADDING CONTROL OVER OPTIMIZATIONIn this section, we present the mathematical formulations foradding controls to the optimization framework described in
the previous section.

where wcost (t) is a time-varying weight function. When w(t)provides a small value for a time t, the cost at the time t isless influential during the optimization, and vice versa. The
representation of this function can be arbitrary and freely
specified by the user. Considering the balance between theexpressiveness and the easiness of specification,Pwe chose thefollowing representation: wcost (t) = max 1 − k∈K k(t), 0 ,where k(·) is a Gaussian kernel whose center and bandwidth
are specified by the animators, and K is the set of kernels
defined by the user. For example, in the case of Figure 8, thenumber of kernels is one. Note that, if no kernel is specified,
the weight function wcost (·) always returns 1; in that case, Ĉ(·)
in Equation 9 is equivalent to C(·) in Equation 4.

Control by Regularization

We introduce a regularization term that prevents the resultant
motion from being too far from the original motion. By adding
this term to the objective function in Equation 3, the original
intention is taken into account. Any regularization formulationis acceptable, provided that it penalizes the motion that is far
from the original motion; in our implementation, we designed
the regularization term D as follows:
D = Dparam + Dtraj ,(6)

where Dparam is called parameter difference and Dtraj is called
trajectory difference.
Parameter Difference

EXAMPLE USAGE SCENARIOSThe first term measures the difference between the original
motion xorig and the resulting motion x in the parameter space.
We formulate it as a weighted squared Euclidean distance
between x and xorig :To demonstrate our approach, we created three example motions using our system (see the video figure for the actual
editing processes and motions). Note that the video clips(except for those marked as fast forwarding) were real-timescreen captures, which were taken on a MacBook Pro with
3.3 GHz Intel Core i7. As the video shows, the optimization
typically converges in a few seconds, and converges within amaximum of around ten seconds.

Dparam = (x − xorig )T diag(wparam )(x − xorig ),(7)

where diag(w) is a diagonal matrix whose i-th diagonal element is wi , and wparam ∈ R3n is a weight vector for controllingthe behavior of regularization, which is specified by the animators indirectly through interface. Each element of wparam
separately controls how much the optimization changes the parameter in the corresponding dimension. If the weight value is

Stick Figure Waving His Arm

In this scenario, we designed a motion of a humanoid stick
figure waving the left arm. The left shoulder, left elbow, right7

(on beat)shoulder, right elbow, and spine were articulated by FK. The
total number of the parameters for curve editing was 78.
By applying optimization to all the parameters without any
control, we could obtain a physically plausible motion; it
modified the spine’s motion drastically to decentralize thetorque on the left shoulder, and it made the left elbow flexible(see the video figure). However, this motion was undesirable
because it looked too different from the original motion, which
was not our intention, and moreover, the elbow was bent in
an unrealistic way (c.f., Figure 10). To fix these issues, weused the per-joint regularization feature; specifically, we set
weights for the spine and elbow joints (c.f., Figure 7). We thenre-ran optimization, and obtained a satisfactory motion.

(on beat)

InitialmotionNaïve opt.

Conductor for a Musical Performance

The goal of this scenario was to create a motion of a cartoon
character conducting for a musical performance. The conductor moves his left arm according to the beats of the music.
For this scene, we specifically wanted to create sharp movement on the beats and smooth movement for other moments tomake the motion look more synchronized with the music. The
keyframes were set on the beats and at the middle of the beats.
The left arm was controlled by IK, and the other joints were
controlled by FK. The total number of parameters was 54.

WeightControlled
opt.
Figure 11.
Example scenario: a music conductor. The naı̈ve optimization produced an excessively smooth motion that did not convey thebeats well. By using the time-varying cost control feature, the optimization could create sharp movements on the beats.

The initial motion was not very organic (Figure 11; Initial motion). Simply applying the optimization without any control
produced a plausible animation, but it was so smooth that we
did not feel beats from it (Figure 11; Naı̈ve opt.). To tell the optimizer that we accept large torques on the beat moments, weused the feature of time-varying cost control. Specifically, we
set the weight kernels on the beat frames (Figure 11; Weight).
With this control, the optimization successfully produced amotion with sharp movements on the beats and physicallynatural transitions between them (Figure 11; Controlled opt.).
Please see the accompanying video figure, in which an effective comparison of these motions is shown with music.

the optimization with regularization, and finally obtained adesirable motion (Figure 12; Controlled opt. #2). Figure 13
shows a comparison of these motions. It is notable that theFollow Through effect [24, 22] (in this case, the tail root leads
the motion and the tail tip follows it with a delay) is naturallyachieved in the optimized motions.
FEEDBACK FROM EXPERTS

Apart from the demonstration of effective usage scenarios that
we showed in the previous section, we also validated our approach through an informal interview with domain experts.
Specifically, we interviewed two professional animators (A1and A2 ), who are familiar with 3D character animation authoring. We interviewed them together. The interview lasted
approximately one hour, and it was conducted as follows. First,
we asked a question: “If you can use a new intelligent Mayaplug-in that improves curve editing, what characteristics doyou expect it to have?”2 We then explained our design goals(editability, controllability, and transparency) and asked them
about these goals. Next, we explained our system and its features using the scenarios shown in the previous section, andasked them to provide comments for each feature. Finally,
we asked them to provide free comments about our system
and general character animation. Note that the goal of thisinterview was not to measure any specific quantities but toobtain qualitative feedbacks on our approach.

Fox Tail

The goal of this scenario was to create a motion of a fox tail.
We performed keyframing so that his tail moves from the rest
pose to the right, to the left, and finally to the rest pose again(Figure 12; Initial motion). The tail had three joints at its root,
middle, and tip, which were controlled by FK, and the total
number of parameters was 27.
First, we applied the optimization without any control. The
resulting motion looked physically plausible, but it was so
different from the initial motion that we were not satisfied
with it (Figure 12; Naı̈ve opt.). Thus, we decided to use
the interactive regularization feature; we tweaked the weightparameter for regularization, such that the resulting motion
was well balanced in terms of the preservation of the original
intent and the physical plausibility (Figure 12; Controlled opt.
#1). The obtained motion was satisfactory, but we noticed
that this could be improved if the motion from right to left
was speedier. To achieve this, we used the time-varying cost
control feature; specifically, we put weight kernels between
the keyframe where the tail is on the right and the keyframe
where it is on the left (Figure 12; Weight). We again performed

Through the interview, we observed that both the interviewees
could easily understand our design goals (editability, control2
We conducted the interview in the interviewees’ native language,
and thus this question and the following comments are the translationfrom the original language into English.

8sirable that the system automatically adds keys [to animation
curves].” A2 also agreed with the importance of preserving
the handles, and added “More specifically, it is OK for the[tangent] handles to change, but the keyframes (key points)should not change [through optimization],” which validates
our design.
Comments on Controllability

InitialmotionAll the features related to controllability were strongly appreciated by both the interviewees. For example, A2 said “I would
be puzzled if I can’t use this (the per-joint regularization feature).” When seeing the fox tail animation edited with thetime-varying cost control feature (Figure 12; Controlled opt.
#2), A1 said that this feature would be useful “when I want to
add subtle nuance” and A2 said she “often wants to add [suchnuance]” in practical scenarios. For the regularization featureand the time-varying cost control feature, A1 said that the interactivity of these features could make adjustment “easier”
and “less stressful.”Naïve opt.

Controlled
opt. #1
WeightComments on Transparency

Both the optimization process and cost visualization features
were appealing to the interviewees. For example, A1 said
that the optimization process visualization “was very interesting” because she could see how the system performed trials
and errors. The interviewees were, however, doubtful as towether these features could improve “ease of use” (A1 ) or “efficiency” (A2 ). An unexpected yet notable point was that thesefeatures provided the interviewees with inspiration on how
to use and improve our system. Regarding the optimization
process visualization, A2 said she wanted to stop the optimization in the middle of convergence and obtain the intermediate
result (rather than just wait for convergence) and suggested
the implementation of such a function, while A1 suggested theimplementation of a slider interface to continuously roll backthe optimization process. Regarding the cost visualization, A2
wanted to customize the cost function by herself rather thanby using the pre-defined cost function; she raised an exampleof having a character with a joint that could only move within
a limited range of orientations owing to an injury, saying that
it would be very nice if she could input such character-specificproperties into the cost function definition. Another notable
point is that the two interviewees, who were not familiar witheither applied math or computer science, could easily understand the concept of numerical optimization by observing thesystem behavior. We believe this is (at least partially) because
the system is transparent.

Controlled
opt. #2
Figure 12. Example scenario: a fox tail. Simply applying the optimization produced a physically plausible but excessively different motion. This was solved by using the interactive regularization feature. Additionally, we used the time-varying cost control feature to speed up the
motion from the right to the left. The 3D model is provided by Daniel
Moos under CC BY 4.0.

InitialmotionNaïve opt.

Controlled
opt. #1

Controlled
opt. #2

Figure 13. Comparison of the fox tail movements shown as skeletons(top views). The speedy movement in the controlled opt. #2 (indicated by
the blue arrow) was achieved by the time-varying cost control feature.

lability, and transparency) and all the features of our system
based on a brief introduction.
In response to the first question that we asked before explaining our design goals, A2 mentioned about the difficulty ofachieving physically plausible motions, and she wanted a plugin that could “add physical nuance [to animation curves]appropriately.” A1 also agreed with the sentiment. Note that
we had not told them by this moment about the fact that oursystem handled physics.

Comments on Potential Usages in Production

The interviewees mentioned potential uses of our current system in professional production. Whereas both the interviewees agreed that the edited motion of the conductor scene(Figure 11; Controlled opt.) was “much improved” (A1 ) compared to the original motion (Figure 11; Initial motion), theycommented that the quality was still unsatisfactory for a main
character in the production. Instead, they commented thatit could be used for making “subcharacters’ motions” (A2 )or in “projects with only limited time” (A1 ) for saving time.
“It would be great [if I can] use the [saved] time for [other]
important characters,” A1 added. In contrast to the conductor

In the following, we summarize the obtained comments sortedby the contents rather than by the chronological order.
Comments on Editability

For the feature of preserving the control handles to ensure
editability, A1 said this feature was “indispensable” and alsostressed that “[I] can never imagine the situation where it is de9

scene, they were very excited about the quality of the fox tailanimation. Both of them agreed that it was possible to use
it even in professional production. A1 said, “I think it (thecurrent system) is suitable for less active parts” such as a fox
tail or an arm that does not produce a primary motion. This
comment probably stems from the fact that our current system
uses a physics-based cost function. As for the Follow Througheffect in the fox tail motion, A2 said, “It is possible to provide
it (the Follow Through effect) by hand, but it requires much
tweaking to make it (the motion) look natural,” so she appreciated our system. She also commented that it is very tedious tomove a girl’s skirt because it often has many bones to tweak,so our current system would be useful for such a case as it caneasily provide physically plausible motions by only specifying
key poses at several keyframes.

appropriate estimation of physical properties, and integration
with other existing tools).
Different Cost Functions and Constraints

We chose and implemented a simple physics-based cost function [31] (Equation 5) because we supposed that there was ademand for the support of creating physically plausible motions, which was confirmed in the interview. In the future, weplan to develop various types of cost functions to meet otherproduction needs. For instance, as mentioned in the interview,
developing a cost function that considers specific motion styles
is important future work; for this, machine learning-based approaches (e.g., [15]) could be used. Considering volumetricdeformation [17] may improve the motions of fatter characters,
and considering biological properties [36] (e.g., minimizationof muscle actuation energy) may be useful to produce biologically natural motions. In addition to investigating other costfunctions, it is also interesting when constraints are incorporated into the optimization problem; for example, undesirable
penetrations could be avoided by adding a constraint that prohibits penetrations in the resulting motions. Note that ourframework and interaction designs are independent of the
choice of cost functions or constraints.

Other Comments

A1 commented that it seemed to be “easy for novices to create[plausible motions]” with this system. As for the timing of the
optimization usage, A2 said, “[I] might use it at the beginning[of the editing]” rather than the end of editing. A1 agreed withit, and she added that she would use the result as a starting
point for manual refinement. These comments further confirmed the importance of editability. For the cost function, A2
wanted it to consider project-specific styles of motions; “Eachart project has a specific style of motions,” and “it would benice if it automates [the process of applying such styles]” byusing a customized cost function, A2 said.

Support of Keyframing

We focused on the curve editing stage, so the keyframing
stage is out of the scope. However, we believe that the useof optimization can enhance the keyframing as well. It is
an important future work for investigating system designs toachieve such optimization-guided keyframing.

DISCUSSIONS
Summary of Interview

Other Design Domains

First, animators could understand all the features of our system by a brief introduction. All the features of editability
and controllability seem indispensable. The features of transparency are welcomed, but do not seem to improve either easeof use or efficiency; instead, they could provide animatorswith additional inspiration for uses of our system. The current cost function is not satisfactory and needs improvement
to achieve production quality. The current system could be
useful in projects with many characters or with limited time,or for motions of non-primary body parts such as fox tails.

We believe that some of the features we developed for our
motion-editing system are general enough and can be usefulin other design domains as well. For example, the interactive
regularization could be applied to various design frameworks
that involve continuous optimization (e.g., photo enhancement)
and the visualization features could be implemented in otherframeworks (e.g., 2D graphic design). We will explore suchpotential by investigating domain-specific optimization andvisualization methods.
CONCLUSION

Physics Simulation vs. Keyframe Animation

We presented a new framework called optimization-guided
motion editing, in which numerical optimization is utilized asa tool for animators to effectively edit character motions. To
enable this, we set the three design goals: editability of the
optimized motion, controllability of the optimization behavior,and transparency of the optimization process. Based on thesegoals, we presented a set of interactions and their mathematical formulations, and developed a proof-of-concept system,
named OptiMo. We showed how this system could support
animators by demonstrating several usage scenarios. To validate our approach, we interviewed domain experts using oursystem, and obtained comments for each feature of the system
as well as its potential usages in the professional production.

As mentioned in the interview, our system was useful to plausibly create the Follow Through effect in some scenarios. Physical simulation could also be used to create similar effects,
but it produces only physically “correct” motions and does
not provide appropriate editability once the simulation is completed. This makes it difficult or impossible for animators to
add artistic intention to motions. In contrast, keyframe animation offers the editability with full and precise control, whichhelps to achieve the desired motions.
Integration and Evaluation in Professional Workflow

We conducted an interview with domain experts and validated
our approach with the proof-of-concept system. The next stepwould be the integration and testing in professional workflow.
Rigorous evaluation in such workflow is necessary. To meetthe production-level requirements, we need to address someengineering issues (e.g., support for general rig systems, more

Acknowledgments

We thank the two interviewees. This work was supported inpart by JST ACCEL Grant Number JPMJAC1602, Japan.
1013. Oliver Glauser, Wan-Chun Ma, Daniele Panozzo, Alec
Jacobson, Otmar Hilliges, and Olga Sorkine-Hornung.
2016. Rig Animation with a Tangible and Modular Input
Device. ACM Trans. Graph. 35, 4, Article 144 (July
2016), 11 pages. DOI:

REFERENCES

1. Adobe Systems Inc. 2017. Adobe After Effects CC.
http://www.adobe.com/products/aftereffects.html.
(2017).
2. Autodesk Inc. 2017a. Maya.

http://dx.doi.org/10.1145/2897824.2925909

https://www.autodesk.com/products/maya/overview.

14. Michael Gleicher. 1997. Motion Editing with Spacetime
Constraints. In Proc. I3D ’97. 139–148. DOI:

(2017).
3. Autodesk Inc. 2017b. MotionBuilder. https:

http://dx.doi.org/10.1145/253284.253321//www.autodesk.com/products/motionbuilder/overview.

15. Keith Grochow, Steven L. Martin, Aaron Hertzmann, andZoran Popović. 2004. Style-based Inverse Kinematics.
ACM Trans. Graph. 23, 3 (Aug. 2004), 522–531. DOI:

(2017).
4. Moritz Bächer, Emily Whiting, Bernd Bickel, and Olga
Sorkine-Hornung. 2014. Spin-it: Optimizing Moment ofInertia for Spinnable Objects. ACM Trans. Graph. 33, 4,
Article 96 (July 2014), 10 pages. DOI:

http://dx.doi.org/10.1145/1015706.1015755

16. Martin Guay, Rémi Ronfard, Michael Gleicher, andMarie-Paule Cani. 2015. Space-time Sketching of
Character Animation. ACM Trans. Graph. 34, 4, Article
118 (July 2015), 10 pages. DOI:

http://dx.doi.org/10.1145/2601097.2601157

5. Gilles Bailly, Antti Oulasvirta, Timo Kötzing, andSabrina Hoppe. 2013. MenuOptimizer: Interactive
Optimization of Menu Systems. In Proc. UIST ’13.
331–342. DOI:

http://dx.doi.org/10.1145/2766893

17. Fabian Hahn, Sebastian Martin, Bernhard Thomaszewski,
Robert Sumner, Stelian Coros, and Markus Gross. 2012.
Rig-space Physics. ACM Trans. Graph. 31, 4, Article 72(July 2012), 8 pages. DOI:

http://dx.doi.org/10.1145/2501988.2502024

6. Mikhail Bessmeltsev, Nicholas Vining, and Alla Sheffer.
2016. Gesture3D: Posing 3D Characters via Gesture
Drawings. ACM Trans. Graph. 35, 6, Article 165 (Nov.
2016), 13 pages. DOI:

http://dx.doi.org/10.1145/2185520.2185568

18. Daniel Holden, Jun Saito, and Taku Komura. 2015.
Learning an Inverse Rig Mapping for Character
Animation. In Proc. SCA ’15. 165–173. DOI:

http://dx.doi.org/10.1145/2980179.2980240

7. Samuel R. Buss. 2009. Introduction to Inverse
Kinematics with Jacobian Transpose, Pseudoinverse andDamped Least Squares Methods. (2009). http://euclid.

http://dx.doi.org/10.1145/2786784.2786788

19. Alec Jacobson, Daniele Panozzo, Oliver Glauser, Cédric
Pradalier, Otmar Hilliges, and Olga Sorkine-Hornung.
2014. Tangible and Modular Input Device for Character
Articulation. ACM Trans. Graph. 33, 4, Article 82 (July
2014), 12 pages. DOI:

ucsd.edu/˜sbuss/ResearchWeb/ikmethods/index.html

8. Byungkuk Choi, Roger Blanco i Ribera, J. P. Lewis,
Yeongho Seol, Seokpyo Hong, Haegwang Eom, SunjinJung, and Junyong Noh. 2016. SketchiMo: Sketch-based
Motion Editing for Articulated Characters. ACM Trans.
Graph. 35, 4, Article 146 (July 2016), 12 pages. DOI:

http://dx.doi.org/10.1145/2601097.2601112

20. Steven G. Johnson. 2017. The NLopt
Nonlinear-Optimization Package. (2017).

http://dx.doi.org/10.1145/2897824.2925970

http://ab-initio.mit.edu/nlopt

9. Marek Dvorožňák, Pierre Bénard, Pascal Barla, Oliver
Wang, and Daniel Sýkora. 2017. Example-based
Expressive Animation of 2D Rigid Bodies. ACM Trans.
Graph. 36, 4, Article 127 (July 2017), 10 pages. DOI:

21. Andreas Karrenbauer and Antti Oulasvirta. 2014.
Improvements to Keyboard Optimization with Integer
Programming. In Proc. UIST ’14. 621–626. DOI:

http://dx.doi.org/10.1145/3072959.3073611

http://dx.doi.org/10.1145/2642918.2647382

10. Roy Featherstone. 2008. Rigid Body Dynamics
Algorithms. Springer US. DOI:

22. Rubaiat Habib Kazi, Tovi Grossman, Nobuyuki Umetani,
and George Fitzmaurice. 2016. Motion Amplifiers:
Sketching Dynamic Illustrations Using the Principles of
2D Animation. In Proc. CHI ’16. 4599–4609. DOI:

http://dx.doi.org/10.1007/978-1-4899-7560-7

11. Martin L. Felis. 2017. RBDL: an Efficient Rigid-Body
Dynamics Library using Recursive Algorithms.
Autonomous Robots 41, 2 (Feb 2017), 495–511. DOI:

http://dx.doi.org/10.1145/2858036.2858386

23. Yuki Koyama, Daisuke Sakamoto, and Takeo Igarashi.
2014. Crowd-powered Parameter Analysis for Visual
Design Exploration. In Proc. UIST ’14. 65–74. DOI:

http://dx.doi.org/10.1007/s10514-016-9574-0

12. Christoph Gebhardt, Benjamin Hepp, Tobias Nägeli,
Stefan Stevšić, and Otmar Hilliges. 2016. Airways:
Optimization-Based Planning of Quadrotor Trajectories
According to High-Level User Goals. In Proc. CHI ’16.
2508–2519. DOI:

http://dx.doi.org/10.1145/2642918.2647386

24. John Lasseter. 1987. Principles of Traditional Animation
Applied to 3D Computer Animation. SIGGRAPH
Comput. Graph. 21, 4 (Aug. 1987), 35–44. DOI:

http://dx.doi.org/10.1145/2858036.2858353

http://dx.doi.org/10.1145/37402.37407

1125. J. P. Lewis, Ken Anjyo, Taehyun Rhee, Mengjie Zhang,Fred Pighin, and Zhigang Deng. 2014. Practice andTheory of Blendshape Facial Models. In Eurographics
2014 – State of the Art Reports. DOI:

Trans. Graph. 23, 3 (Aug. 2004), 514–521. DOI:
http://dx.doi.org/10.1145/1015706.1015754

32. Ari Shapiro and Sung-Hee Lee. 2010. Practical Character
Physics for Animators. IEEE Computer Graphics andApplications 31 (2010), 45–55. DOI:

http://dx.doi.org/10.2312/egst.20141042

26. Xiaolei Lv, Jinxiang Chai, and Shihong Xia. 2016.
Data-driven Inverse Dynamics for Human Motion. ACM
Trans. Graph. 35, 6, Article 163 (Nov. 2016), 12 pages.
DOI:http://dx.doi.org/10.1145/2980179.2982440

http://dx.doi.org/10.1109/MCG.2010.22

33. Kwang Won Sok, Katsu Yamane, Jehee Lee, and Jessica
Hodgins. 2010. Editing Dynamic Human Motions via
Momentum and Force. In Proc. SCA ’10. 11–20. DOI:

27. J. McCann, N. S. Pollard, and S. Srinivasa. 2006.
Physics-based Motion Retiming. In Proc. SCA ’06.
205–214.

http://dx.doi.org/10.2312/SCA/SCA10/011-019

34. Kashyap Todi, Daryl Weir, and Antti Oulasvirta. 2016.
Sketchplore: Sketch and Explore with a Layout
Optimiser. In Proc. DIS ’16. 543–555. DOI:

http://dl.acm.org/citation.cfm?id=1218064.1218092

28. Peter O’Donovan, Aseem Agarwala, and Aaron
Hertzmann. 2015. DesignScape: Design with Interactive
Layout Suggestions. In Proc. CHI ’15. 1221–1224. DOI:

http://dx.doi.org/10.1145/2901790.2901817

35. Nobuyuki Umetani, Yuki Koyama, Ryan Schmidt, andTakeo Igarashi. 2014. Pteromys: Interactive Design and
Optimization of Free-formed Free-flight Model Airplanes.
ACM Trans. Graph. 33, 4, Article 65 (July 2014), 10
pages. DOI:http://dx.doi.org/10.1145/2601097.2601129

http://dx.doi.org/10.1145/2702123.2702149

29. A. Cengiz Öztireli, Ilya Baran, Tiberiu Popa, Boris
Dalstein, Robert W. Sumner, and Markus Gross. 2013.
Differential Blending for Expressive Sketch-based Posing.
In Proc. SCA ’13. 155–164. DOI:

36. Jack M. Wang, Samuel R. Hamner, Scott L. Delp, andVladlen Koltun. 2012. Optimizing Locomotion
Controllers Using Biologically-based Actuators andObjectives. ACM Trans. Graph. 31, 4, Article 25 (July
2012), 11 pages. DOI:

http://dx.doi.org/10.1145/2485895.2485916

30. Michael J. D. Powell. 2009. The BOBYQA Algorithm for
Bound Constrained Optimization without Derivatives.
Technical Report NA2009/06. Department of Applied
Mathematics and Theoretical Physics, Cambridge
England.

http://dx.doi.org/10.1145/2185520.2185521

37. Andrew Witkin and Michael Kass. 1988. Spacetime
Constraints. SIGGRAPH Comput. Graph. 22, 4 (June1988), 159–168. DOI:

31. Alla Safonova, Jessica K. Hodgins, and Nancy S. Pollard.
2004. Synthesizing Physically Realistic Human Motion
in Low-dimensional, Behavior-specific Spaces. ACM

http://dx.doi.org/10.1145/378456.378507

12