How to Design an Animation

birdculture1 pts0 comments

How to Design an Animation | kciter.so<br>kciter.so devlog<br>Articles Bookshelf Thoughts

ESC

How to Design an Animation<br>Written on February 18, 2026 · 한국어 ·English<br>Animation Is a Graph<br>Math, the Toolkit for Animation<br>Easing and Bézier Curves<br>Exponential Approach<br>Spring Animation<br>Physics Simulation<br>Natural Direction Changes<br>Periodic Motion with Trigonometry<br>Sawtooth Waves

Designing an Animation<br>Split the Graph<br>What Does the Value Depend On?<br>Pipelining<br>Designing with State Transitions<br>Property Splitting<br>Randomness<br>Bidirectionality

What About Really Complex Animations?<br>Closing

Every so often you come across an animation on a website or in an app that catches your eye. Animation does more than add some fun. It helps people understand what is happening, makes the result of an interaction clear, and carries the personality of a brand.

Things are different when you’re the one who has to build it. You’ve probably watched a prototype video from a designer and wondered how on earth you were supposed to implement it. Or maybe you’ve had a motion pictured clearly in your head but no idea where to start turning it into code.

Animation, it turns out, can be designed . Motion that looks complicated is, once you break it down, a combination of simple state changes, and each of those state changes can be expressed mathematically. This article goes through how to decompose and design animation in a systematic way.

Animation Is a Graph

To design something, two conditions have to hold. You have to be able to reproduce it, and you have to be able to combine it. If a motion only exists as a feeling in your head, it is hard to recreate the same movement twice, and hard to weave several movements together in any organized way. So we need an engineering representation of motion, and a graph works well for this. Every animation can be expressed as a graph, and once you adopt that view, even complicated movement becomes something you can analyze and build systematically.

Think of a fade-in animation, where an element’s opacity goes from 0 to 1. Drawn as a graph, the horizontal axis is time and the vertical axis is opacity. For example, you could draw a graph that starts at 0 seconds, ends at 2 seconds, and climbs from 0 to 1 in between.

Fade-in — opacity goes from 0 to 1 over time

The same goes for movement. An element sliding from left to right can be drawn as a time-position graph, and an animation where something grows becomes a time-scale graph. The horizontal axis doesn’t have to be time, either. In a parallax effect, where elements appear as the page scrolls, the scroll offset becomes the horizontal axis. Whatever the animation, in the end it is a value changing according to some input , and that change can be drawn as a graph.

What matters here is that the shape of the graph determines the feel of the motion. Even with the same start and end points, the form of the curve can give a completely different impression. Producing that curve the way you want it is the core of animation design, and the tool for doing so is math.

Math, the Toolkit for Animation

So how do you make a graph with the shape you want? This is where math comes in. This section looks at the mathematical tools that come up often in animation and how they control the shape of the graph. Math may feel unfamiliar, but there’s no need to worry. You don’t need to understand the concepts in depth. What you want is a sense of how each tool changes the feel of the animation.

Easing and Bézier Curves

The simplest animation is linear, where the value changes at a constant speed from start to finish. But motion in the real world isn’t linear. A thrown ball is fast at first and gradually slows down, and a car starts off slowly and picks up speed. Easing functions are how this kind of natural acceleration and deceleration gets expressed.

An easing function takes a progress value between 0 and 1 and returns an adjusted progress value. ease-in starts slow and ends fast, while ease-out starts fast and ends slow. The most widely used way to express this mathematically is the cubic Bézier curve .

A cubic Bézier curve defines its shape with four control points. For easing, the start point (0, 0) and end point (1, 1) are fixed, so in practice you only adjust the two control points (x1, y1) and (x2, y2). The curve doesn’t pass through the control points. Instead, each control point pulls the curve toward itself, bending its path a bit like a magnet would.

So how does a curve get built from control points? The answer is linear interpolation, applied recursively . Linear interpolation between two points is simple. When the progress t is 0 you get the start point, when it’s 1 you get the end point, and when it’s 0.5 you get the exact midpoint.

function lerp(a, b, t) {<br>return a + (b - a) * t;<br>A Bézier curve repeats this interpolation over several stages. Suppose we have four control points, P0, P1, P2, and P3.

Interpolate between P0–P1, P1–P2, and P2–P3 at t, giving...

animation graph curve motion from points

Related Articles