34 · Animation · 2D, 3D and UI

Easing

How something speeds up and slows down, not just where it goes.

Things that move at one constant speed look robotic. Real objects start and stop gradually, overshoot, or bounce. Swapping a linear move for the right easing curve is one of the cheapest ways to make menus, pickups and characters feel alive.

1234 pick your curve · Space raceTap Race

Try this: Pick a curve for your hero and press Race. All four dash to the coin in exactly 0.9 s, but ease-out feels snappy, ease-in feels late and back overshoots.

Pick a curve and press Race.

Prompt bit

Works for 2D or 3D in any engine (Unity, Unreal, Godot, web). Paste the short one for a quick fix, or the detailed one when you want it done properly.

Replace linear tweens with easing: t = clamp(elapsed / duration, 0, 1) and value = lerp(start, end, ease(t)); use easeOutCubic for arrivals (0.2 to 0.35 s for UI), easeInOutSine for moves between two points, and easeOutBack only where overshoot is wanted.

41 words · one sentence to paste as is

Where it's used

Common mistakes

Writing the current value back in as the start every frame (it turns any curve into a slow crawl that never quite arrives), using Back or Elastic on values that must not overshoot such as opacity, and easing 3D rotations axis by axis instead of with slerp.

Writing this with an AI assistant? See our best AI coding assistants for game developers.

Missing a concept? Request one.

Related concepts

New concepts, in your inbox.

One short email when we add new concepts, plus our weekly roundup of AI tools for game devs. Unsubscribe any time.