Examples of motions
Few examples of motions computed using our approach.
User specifies rough sketch of the motion and our algorithm computes natural looking motion that matches user sketch.

Obstacle Course
movie1
movie2
 

Picking up an object
movie1
movie2

Jumping across stones
movie1
movie2
movie3
movie4

Walking along the curve
movie1
 



The benefit of optimality
This experiment shows many examples that illustrate that globally near-optimal solutions avoid the dithering and inefficient patterns of motion that sub-optimal solutions often have.
The solution cost largely decreases as its optimality increases during our search.

example 1: walk from start to goal (marked with circles)
movie for first solution
movie for second, better, solution
movie for final, optimal, solution

movie for first solution (slow motion)
movie for second, better, solution (slow motion)
movie for final, optimal, solution (slow motion)

example 2: a character needs to start at position A and pick up a cup at position B

first solution
second solution
final optimal solution

example 3: walk inside corridor
 
movie for first solution
movie for final, optimal, solution

example 4: walk along curve
 
movie for first solution
movie for final, optimal, solution

example 5: vertical jumps
 
movie for first solution
movie for final, optimal, solution

example 6: another walk from start to goal (marked with circles)
 
movie for first solution
movie for second, better, solution
movie for final, optimal, solution 

movie for first solution (slow motion)
movie for second, better, solution (slow motion)
movie for final, optimal, solution (slow motion)

example 7: another walk from start to goal (marked with circles)
 
movie for first solution
movie for final, optimal, solution 

movie for first solution (slow motion)
movie for final, optimal, solution (slow motion)


 



The benefit of interpolation

This experiment shows why interpolation in conjunction with motion graphs allows us to satisfy user-specified constraints within a small error tolerance. We used the three problems described below as a test bed.  We ran many experiments for each problem by sampling locations of constraint B (see paper for an image).
 

Problem1:a character needs to start at position A and pick up a cup at position B  (179 samples overall)

pick from 0.65 meters height
movies for randomly selected positions are shown
pick1.movpick2.movpick3.movpick4.movpick5.movpick6.mov

Problem2: a character needs to start at position A and pick up a cup at position B but now we also constraint the root position of the character to position C while picking a cup (179 samples overall)

pick from 0.9 meters height
movies for randomly selected positions are shown
pick1.movpick2.movpick3.movpick4.movpick5.movpick6.mov

changing height, fixed position in the plane
mov1.movmov2.movmov3.movmov4.movmov5.movmov6.movmov7.mov

Notice the difference between the solutions for the first and the second problem.  For the first problem the character always gets close to the sphere and does not bend as much. For the second problem the user specified that the character's root should be at position C (the second circle) while picking  (equivalent to not crossing the table for example). As a result, the character needs to bend.
 

Problem3: a character needs to start at position A and walk to position B with one walk cycles

step_length 1      step_length 1 (slow motion)
step_length 2      step_length 2 (slow motion)
step_length 3      step_length 3 (slow motion)
step_length 4      step_length 4 (slow motion)
 


The discrete versus continuous approach

In this experiment we try to compare our discrete and continuous optimization approaches. We use discrete optimization to synthesize some of the motions that we have already synthesized using our continuous optimization.

Synthesizing forward jumps from the examples of 3 jumps of  0.2,  1.0 and 1.5 meters (allow extrapolation)
 
0.5 meters long 0.5 meters long (slow motion)
1.5 meters long 1.5 meters long (slow motion)
2.0 meters long 2.0 meters long (slow motion)
2.5 meters long 2.5 meters long (slow motion)
3.5 meters long 3.5 meters long (slow motion)

Synthesizing walks with different step length (no extrapolation)
step_length 1      step_length 1 (slow motion)
step_length 2      step_length 2 (slow motion)
step_length 3      step_length 3 (slow motion)
step_length 4      step_length 4 (slow motion)
 

Synthesizing vertical jumps with different rotation from the examples of 3 jumps: 90, 180, 200 degrees turn
(allow extrapolation)
will add later...

Synthesizing vertical jumps with different rotation from the examples of 4 jumps: 90, 180, 200, 360 degrees turn
(no extrapolation)
will add later...