Interactive Manipulation of Rigid Body Simulations
Jovan Popović, Steven M. Seitz, Michael Erdmann, Zoran
Popović, Andrew Witkin
Physical simulation of dynamic objects has become commonplace in
computer graphics because it produces highly realistic
animations. In this paradigm the animator provides few physical
parameters such as the objects' initial positions and generates
realistic motions. The resulting motion, however, is difficult to
control because even a small adjustment of the input parameters
can drastically affect the subsequent motion. Furthermore, the
animator often wishes to change the end-result of the motion
instead of the initial physical parameters.
We describe an interactive technique for intuitive manipulation of
rigid multi-body simulations. Using our system, the animator can
select bodies at any time and simply drag them to desired
locations. In response, the system computes the required physical
parameters and simulates the resulting motion. Surface
characteristics such as normals and elasticity coefficients can
also be automatically adjusted to provide a greater range of
feasible motions, if the animator so desires. Because the entire
simulation editing process runs at interactive speeds, the
animator can rapidly design complex physical animations that would
be difficult to achieve with existing rigid body simulators.
A 2-D example illustrates the main features of our interactive
manipulation technique. The two white lines display the entire
motion by showing the trajectories of the center of mass and a
point on the surface. First, we drag the egg position to have the
egg land in the cup. The system computes and displays the motion
in real time. The resulting motion does not have the desired
style---we would like the egg to spin before landing in the
cup. We ensure the cup landing with a nail constrain which is
visually represented by the green hoop. We rotate the egg at an
earlier time until the motion achieves the desired spin. Observe
that the egg goes through the hoop as required before nestling in
the cup. Second, we want the eggs to collide before the egg lands
in the cup. To do so, we first force a collision and then drag the
negg to the cup. The system re-computes the initial velocities of
both eggs to accomplish this effect. Third, we may have
additional constraints and would like both eggs to land in
cups. Like before we ensure the landing with a nail constraint and
drag the red-white egg into its cup. The visual pops occur when
our tool cross the simulation function discontinuities. Observe
that the blue-yellow egg goes through the hoop as required before
nestling in the cup.
In the next example we can land the hat onto a coatrack by
selecting its landing position and dragging it onto the coatrack.
We can adjust the style---for example to have the hat tumble
before the landing---by first fixing the landing position on the
coatrack to ensure the desired landing location and then rotating
the hat at an earlier time until the hat motion achieves the
Here, we lift the die to force its landing on the stand. Luckily, the
die lands showing six as we had hoped. Had we wanted to change
the outcome, we tilt the die forward. The system automatically
computes the required surface properties at collisions to
accomplish this effect.
To assemble the table, we drag the tabletop above the table
The tabletop lands on the legs but the alignment is
incorrect. We change the tabletop orientation before the landing
to correct the alignment. We complete the animation by simulating
further in time.
In the last example we used the interaction to design the
free-flight motion of the scissors landing on the coat rack.
We transformed the style of this
free-flight motion by having it bounce off the floor, perform a
flip and still land on the coat rack. The movie shows three stages
during this process: forcing the bounce, performing the flip and
placing the scissor onto the hook.
Jovan Popović, Steven M. Seitz, Michael Erdmann, Zoran Popović,
and Andrew Witkin. Interactive Manipulation of Rigid Body
Simulations. In Computer Graphics (Proceedings of SIGGRAPH
2000), ACM SIGGRAPH, Annual Conference Series, pp. 209-217.