Squash & Stretch
Deforming a shape along its motion to sell weight, speed, and material.
Examples
Captured from this page's own interactive demo below.
Overview
Squash & stretch is the oldest of the classic 12 animation principles: objects stretch when moving fast and squash when they hit something or change direction sharply, while (in the simplest version) preserving apparent volume.
It works because real deformable materials actually behave this way, and even rigid objects get exaggerated this way in cartoons to communicate force. Our visual system reads the deformation as evidence of momentum and impact.
It makes things feel alive, springy, and physically present — the difference between a ball that looks like a decal sliding around versus one that feels like it has mass and is bouncing.
Interactive Demo
Use Cases
Best Practices
Do
- ✓Stretch along the direction of motion, squash along the direction of impact.
- ✓Keep total volume roughly constant — stretch on one axis should compress the other.
- ✓Use it on UI elements too (buttons, icons) in small doses — it reads as tactile, not just cartoonish.
Don't
- ✕Don't apply it to rigid, obviously hard materials (stone, metal) at cartoon-level exaggeration — it breaks material read.
- ✕Don't let the deformation persist after the impact/motion ends — it should snap back quickly.
- ✕Don't scale non-uniformly without easing — a linear squash/stretch looks mechanical, not springy.
Common Mistakes
- ⚠Squashing and stretching the collider/hitbox along with the visual mesh, breaking gameplay.
- ⚠Using the same curve for every object regardless of its implied weight or material.
- ⚠Overdoing it until every object looks like rubber.
Implementation
Paste this into your AI assistant (Cursor, Copilot, Claude) to add the effect to your project.
Add the "Squash & Stretch" game-feel effect to my project: Deforming a shape along its motion to sell weight, speed, and material.
How it works: Squash & stretch is the oldest of the classic 12 animation principles: objects stretch when moving fast and squash when they hit something or change direction sharply, while (in the simplest version) preserving apparent volume.
Guidelines:
- Stretch along the direction of motion, squash along the direction of impact.
- Keep total volume roughly constant — stretch on one axis should compress the other.
- Use it on UI elements too (buttons, icons) in small doses — it reads as tactile, not just cartoonish.
Avoid:
- Don't apply it to rigid, obviously hard materials (stone, metal) at cartoon-level exaggeration — it breaks material read.
- Don't let the deformation persist after the impact/motion ends — it should snap back quickly.
- Don't scale non-uniformly without easing — a linear squash/stretch looks mechanical, not springy.
Implement the effect in whatever engine/stack the project already uses and follow its existing code style. Wire it up where it makes sense.References
- The Illusion of Life: Disney Animation — Frank Thomas & Ollie Johnston (book)
- GDC: Juice It or Lose It — Martin Jonasson & Petri Purho
Related Effects
Elastic / Overshoot
Letting a motion overshoot its target and settle, instead of stopping dead.
Wobble / Jiggle
A decaying oscillation that makes an object feel soft, springy, or alive.
Anticipation
A wind-up in the opposite direction before an action, telegraphing what's coming.
Comments
…