Problem and Motivation: When trying to create realistic animation, users of computer animation systems have two fundamental and conflicting desires: -- complete scripting control: the ability to specify exactly what happens in the animation sequence -- complete physical realism: objects moving in accordance with the laws of physics. Unfortunately, it's generally the case that these wishes are incompatible. An animator hand-painting each frame has complete scripting control and can precisely specify a sequence of movements but can't guarantee that the details of the motions are physically consistent. On the other hand, an animator with a physical simulation system (e.g. Coriolis[1]) can produce accurate, realistic animations but can't ensure that the objects move as the storyline dictates. This work separates these two concerns by making the following observations: In many cases it isn't necessary to provide strict physical realism. The real criterion is that THE ANIMATION MUST APPEAR PHYSICALLY REALISTIC TO THE VIEWER. Furthermore, in many cases it isn't necessary to provide complete scripting control, either. What matters is the ability to specify the key events of the animation sequence, e.g. "the ball rolls off HERE, bounces off THAT, and lands THERE". The responsibility of filling in the intermediate physical details is laid on the system. This should not be confused with keyframing, though it somewhat resembles a *very* coarse-grain version of that technique. The work presented here addresses not only the compromise between scripting control and physical realism, but also three other important demands that animators often make of their animation systems. (1) Conformance to an existing environment (e.g. matching animation to real-world footage). (2) Achieving the same end conditions for many starting conditions (e.g. hit a hole in one from anywhere near the tee), or a variety of end conditions for a given starting condition. (3) Interactive motion creation & editing. ********************************************************************** Approach: Our approach takes advantage of imprecision in the viewer's perceptual system and mental model of mechanics. Intuitions concerning even moderately complex physical systems are usually poor[3]. When objects collide, people aren't sure what direction each object will bounce, how fast, etc.. (Think of dropping a football on one point.) By slightly modifying objects' behavior during collisions, we can alter objects' paths without introducing any noticeable non-physicality. We think of this as introducing "cheating impulses" at the collisions. These impulses directly alter the object's linear and angular velocities by small amounts at the time of the collision, thus indirectly changing all the parameters (position, orientation, and velocities) of the object by much greater amounts in later frames of the animation. The user may impose certain constraints, such as holding the initial position fixed. Given that we modify the forces applied at collisions, we must also shift the times at which subsequent collisions occur. Imagine dropping a ball and letting it bounce twice. If we change the first bounce so that the ball bounces higher, it will spend longer in the air, thus hitting the ground the second time later than in the original scenario. To compute the "cheating impulses", we calculate the dependency of the final parameters on the initial parameters of the object, the impulse applied at each collision, and the times at which the collisions occur. Then, given a change for the final parameters, we solve for the impulses and collision times, minimizing the impulse magnitudes subject to two constraints: first, the resulting trajectory must produce the desired final conditions; and second, at the new collision times, the body's new position and velocity are such that a collision is in fact occurring. ********************************************************************** Background and Related Work: At present there is little published work addressing these issues, though some ad hoc solutions have been developed, and some existing techniques from other areas of computer graphics and animation could be adapted to meet these needs. -- Pure physical simulation with trial & error: keep trying starting configurations until you find one that gives the desired end configuration. The video accompanying [2] was constructed in this manner. This method is tedious, unlikely to be real-time, and may never find a solution. The user can only indirectly state the desired characteristics of the solution. -- Simulate the object's movement first, construct the environment afterward. Although this method provides complete physical realism, it will not serve if we need the animation environment to conform to some fixed external environment, or if we need to produce animations from other starting points. As a two-pass method, this cannot be a real-time solution. -- Motion warping: transform recorded real-world motions[5]. The original motion is by definition physically realistic, but the transformations have no physical basis. -- Goal forces: add forces at each step of the simulation to correct the object's path toward the intended final configuration. Because the forces are computed frame-by-frame and may be physically unrealistic, the "invisible guiding hand" effect is often quite noticeable. -- Spacetime method: solving for the entire trajectory as a single point in a very high-dimensional space, with no notion of frame-by-frame sequential simulation[4]. This method addresses related issues and might be adapted to suit these needs, but would be an overly complicated solution to this problem. ********************************************************************** Results and Contributions: The current system allows the user to manipulate the trajectory of a 2D polygon within a user-defined environment of barriers and forces (e.g. gravity). The initial position, velocity, shape, mass, and other physical attributes of the active object are all user-specified. After generating an unmodified physically-realistic trajectory, the user changes the final state of the object by direct manipulation using the mouse, and indicates which parameters of the object's path are free to vary and which are fixed. The system provides continuous visual feedback, showing the effects of the proposed changes on the key events, and a numerical assessment of the "noticeability" of those changes, based on their magnitudes. When the user is satisfied, the system displays the entire modified animation sequence. The user can alter the final object, change the constraints, and play the resulting animations as many times as desired. The current system demonstrates the feasibility of an animation system which provides a compromise between the conflicting demands of scripting control and physical realism. It allows the user to tailor object motion sequences interactively and construct animations which conform to external environments. The user can view families of related animations which share starting or ending parameters, though the only mechanism to do so is simply to generate them one at a time. Planned future work includes: -- extending the system to 3D objects and environments. -- extending the set of object attributes which can be "cheated". For example, we might vary the coefficient of restitution, which determines the bounciness of an object in a collision. -- adding "in-flight" forces, which act on the object during flight instead of at collisions. For example, we might increase gravity slightly, or add a velocity-dependent air drag. References: [1] David Baraff. Interactive simulation of solid rigid bodies. IEEE Computer Graphics and Applications, 15(3):63-75, 1995. [2] David Baraff. Curved surfaces and coherence for nonpenetrating rigid body simulation. Computer Graphics, 24:19-28, 1990. Proceedings of SIGGRAPH 1990. [3] Mary Kaiser, Dennis Proffitt, Susan Whelan, and Heiko Hecht. Influence of animation on dynamical judgements. Journal of Experimental Psychology: Human Perception and Performance, 18(3):669-690, 1992. [4] Andrew Witkin and Michael Kass. Spacetime constraints. Computer Graphics, 22:159-168, 1988. Proceedings of SIGGRAPH 1988. [5] Andrew Witkin and Zoran Popovic. Motion warping. Computer Graphics, 1995. Proceedings of SIGGRAPH 1995.