Squash and Stretch

When real objects move only totally rigid ones, e.g., a chair, remain rigid in motion. Living creatures always deform in shape in some manner. For example, if you bend your arm, your bicep muscles contract and bulge out. They then lengthen and disappear when your arm straightens out. The squashed position shows the form flattened out and the stretched position shows the form extended. An important rule is that the volume of the object should remain constant at rest, squashed, or stretched. If this rule is not obeyed, then the object appears to shrink when squashed and to grow when stretched.

A classic example is a bouncing ball, that squashes when it hits the ground and stretches just before and after. The stretching, while not realistic, makes the ball appear to be moving faster right before and after it hits the ground.

When an object squashes or stretches, it appears to be made of a pliable material, if it doesn't then it appears rigid. Objects that are partially pliable and partially rigid should have only the pliable parts deform.

A hinged object can squash and stretch without deforming, e.g. Luxo, jr.

These deformations are very important in facial animation, since they show the flexibility of the skin and muscle and also the relationship between the different facial parts. In very early animation, a character chewing something only moved its mouth and it appeared unrealistic. A later innovation was to have the entire face moving with the mouth motion, thus looking more realistic. This can be exaggerated for effect. A broad smile or frown similarly involves more than the mouth

This can also be used in the rapid motion of objects. If motion is slow, then the objects overlap between frames and the eye smoothes out the motion. But if the motion is too fast, such that there is no object overlap, then the eye sees separate images and the object appears to strobe. A solution is to stretch the object to retain the overlap and smooth motion.

Here is an example where the ball on the right has been stretched and so looks more "natural".
strobingball.gif (150199 bytes)

Squash and stretch can be accomplished by differential scaling in 3D Keyframe systems. Be sure to conserve volume, i.e., a stretch in one direction, (X) must be accompanied by a squash in the other directions (Z,Y). Also, the direction of the stretch should be along the direction of motion so a rotational transformation may be required.


Main Animation Page
HyperGraph Table of Contents.
HyperGraph Home page.
Last changed on March 13, 1999 by G. Scott Owen, owen@siggraph.org