IndexDesignMotion
An index of motion studies
Motion Library
15 studies of motion on the web, each rebuilt from scratch and reduced to the primitives it runs on.
Each study takes one piece of motion on the web that stopped us, rebuilds it from scratch, and names the primitives it runs on. The primitives are the point: a technique that cannot be phrased as one is not yet understood well enough to rebuild — and certainly not well enough to put in a node editor.
Most are rebuilt precedents: a page by someone else, taken apart and put back together in plain canvas, with what the rebuild taught written down beside it. A few are ours. 12 of them are pages here — prose, figures you can drive, and the notes underneath — and every card below is running a live scrap of its own study rather than a picture of one.
Studies
Orbital Field
tribe.aiFour scenes that are all the same circles. A 3D globe, then three flat constructions, reached by re-seating one list of geometry rather than by building and tearing down scenes. Scroll is a camera and a blend, not a reveal.
Companion
x.ai/botThe eyes are flat marks lying on the surface of a sphere. Gaze rotates the sphere and the far eye foreshortens into a rotated ellipse. The head is a circle and looks the same from every angle, so the eyes are the only thing that reveals the rotation.
Glyph Resolve
tribe.aiA string is not a block, it is a list of glyphs. Give each one a home, a seat and a place in the queue, and a single 0..1 driver buys you every text effect worth having.
Curvature
Steven Wittens, acko.netEvery pen tool in every drawing program keeps a node’s two handles symmetric, which guarantees a continuous tangent and nothing else. The curve does not kink, so it reads as smooth. Curvature still jumps at the join, and a comb makes that lie visible in about a second.
Visibility
Amit Patel, Red Blob GamesGiven a point and a plan of walls, the lit region is a single polygon. Once you have it, light is a fill, shadow is its complement, memory is that fill stamped into a mask, and a soft shadow is a handful of those polygons averaged. One computation pays for all four.
Noisy Boundaries
Amit Patel, Red Blob GamesA region map drawn from a lattice has straight boundaries, and straight boundaries read as a diagram rather than as terrain. There are two ways to break them and they have almost nothing in common: subdivide the geometry, or perturb the classification. Both arrive at the same coastline. Only one hands you a curve at the end.
Grass
Bartosz Ciechanowski, AirfoilA blade of grass is a driven damped oscillator. The wind is one smooth field travelling across the scene; each blade answers it late, and by its own amount. That lag is the entire source of the richness. Drive the same blades directly from the same field and the field reads as a screensaver.
Orbits
Bartosz Ciechanowski, The MoonTwo bodies pulling on each other trace exactly one history. What that history looks like is a separate question, answered by where you put the origin. Stand still and you see two drifting spirals; stand on the barycentre and you see two nested ellipses; stand on one body and you see the single clean ellipse the textbooks draw.
Nodes and Cables
Weft · CollabOSA node graph is boxes you can move and curves between them, and almost every question about whether one feels good turns out to be about the curves. The cable is the interface: it says which way the data goes, whether the connection is legal, whether anything is flowing, and whether the branch you are looking at matters at all.
ASCII Flow
Iris LabIt looks like falling code and it is nothing of the kind. Nothing per-character is animated and nothing falls. A handful of soft bodies drift behind a grid that never moves, and every cell asks the same field how bright it should be. The characters are a readout, not a subject.
Mandala
Iris Lab · Circles of LightSacred geometry as a parameter space. Three radii, one integer and a rotation, and the Flower of Life, the Seed of Life and the Dharma Wheel all turn out to be points in it. The image is never drawn: it is what falls out of a construction.
Axis Mundi
Iris LabScroll drives one number and every part of the transition is a window on it: the floor releasing ring by ring, the camera descending, the key light swinging across, the two type panels crossing over. What looks like a hero followed by a second section is one continuous room, and the section break is a value between 0 and 1.
Distance Fields
Iris Lab · 3D LabA 576-triangle torus has corners, and no amount of smoothing its normals will remove them, because the silhouette is a chain of straight segments and shading cannot touch a silhouette. Describe the surface as a distance instead: the outline is then exact at any zoom, the normal is the gradient of the field, and the whole scene is three vertices.
Blockwork
Igloo IncAn igloo is a sphere somebody had to build out of blocks, and that constraint is the whole read. Lay the courses on a sphere, give every block one shared breath and one local response to the pointer, then draw the points and the links only where the pointer has been. Nothing here is lit and nothing is refracted, and it still reads as a solid object being touched.
Coloured Shadows
VercelTen dots in a triangle. Every one is a lamp, every one is permanently solid, and the pointer only picks which lamp burns. What each lamp can see is baked once into a picture and a frame multiplies ten pictures by ten weights and adds them in linear light. The softness is not one trick: it is a long falloff, an averaged penumbra, a supersampled frame, a tone map and a dither, and leaving any one of them out makes it look like a different piece.
Precedents
Sites, tools and writing worth keeping close. Nothing here is rebuilt — these are the standards to measure work against, and the places a study starts. Filter by tag.
Bartosz Ciechanowski
ciechanow.skiEvery article is a stack of hand-built interactive figures with honest geometry and one handle per idea. The strongest argument anywhere that geometry can carry meaning rather than decorate it, and the figures sit at exactly the scale a Weft patch could output.
Rebuilt here as Grass, OrbitsAcko — Steven Wittens
acko.netMathematics presented as something you can pick up and turn over. The piece on curvature and Beziers is the direct source for the Curvature study. He is not the first person to make those points, but he made them unusually well.
Rebuilt here as CurvatureRed Blob Games — Amit Patel
www.redblobgames.comInteractive explanations written to be implemented from, not merely read. Two of them are rebuilt here. The discipline worth stealing is that every figure has exactly one handle.
Rebuilt here as Visibility, Noisy BoundariesLusion
lusion.coRibbon and flow-field geometry reacting to the pointer, built into a working site rather than parked in a showreel. Filed as a standard, not a target: nothing here is on the rebuild list, but it is the bar for what a commercial site can be.
Igloo Inc
www.igloo.incBuilt entirely in WebGL by Abeto with Bureaux: procedurally grown ice, a frozen landscape where each project sits inside its own block, and refraction carrying the identity. Filed as a standard rather than a target. What does survive being reduced to flat marks is the construction underneath the glass, which is what the Blockwork study takes.
Rebuilt here as BlockworkVercel
vercel.com/homeA product site whose hero is one WebGL2 pass over a precomputed RGBA atlas: three baked light fields in the red, green and blue channels, ambient occlusion in the alpha, ten weights, a photographic tone map and an instanced bloom quad per lamp. The ten dots never move and are never anything but solid; the pointer picks the nearest one and that one burns while the rest go out. Filed twice over: for the restraint, since the interaction is not added to the mark but is what happens when part of the mark goes out, and for the engineering, since the whole soft-shadow scene is three pictures and an addition.
Rebuilt here as Coloured ShadowsAntinomy Studio
www.antinomy.studio/workMotion graphics discipline applied to a portfolio: timing, type and cut, with very little 3D anywhere. The counterweight to the two above — a comparable sense of depth from almost none of the machinery.
Rive
rive.appState machines as a first-class authoring model, which is exactly the abstraction Companion needed and had no name for. James: never got into it, it always felt unintuitive and not worth leaving After Effects for. The hopes he had for it are part of what led to Weft.
Family
family.coInterface elements that behave like physical objects, with state visibly travelling between them. Spring and handoff applied to product UI instead of to a character.
p5aholic — Kenichi Yoneda
p5aholic.meGenerative work made from very few marks. Filed under studio although it is one person, because the body of work has a house style. The constraint this collection keeps rediscovering, held deliberately for years.
Stripe Press
press.stripe.comBooks rendered as page furniture: physical objects sitting inside ordinary layout, at a level of restraint almost nobody attempts commercially.
Codrops
tympanus.net/codropsNot a reference so much as the technique library the references borrow from. Worth mining for one specific effect, never worth cataloguing whole.
Cables.gl
cables.glA node editor in Weft’s family, aimed at realtime visual patches. Peer rather than precedent: worth an hour to see which of Weft’s gaps it has already solved, and how it chooses to present them.
Figma Weave
weave.figma.comWeavy, acquired by Figma and relaunched as Weave in 2026: a node canvas that wires twenty-odd generative models together with real editing operations, layers, type and blends included. Comfy for people who did not want to learn Comfy. Two things are worth taking. The graph is the prompt, so an edit is a change to one node rather than a re-run of a paragraph. And a finished graph can be published as a tool with typed inputs, callable from outside the canvas, which is the answer to what a Weft patch becomes once it works.
Rebuilt here as Nodes and CablesNodi3D
nodi3d.comGrasshopper’s model taken to the browser for parametric 3D modelling. The other pole from cables: same family, entirely different application.
The primitives
Written as operations rather than as effects, because that is the form a node editor can consume. Every study above is a combination of these.
- Projection
- Real 3D positions flattened by an explicit camera. The source of every honest 2.5D read.
- Layout morph
- One set of geometry under several layouts, blended point-by-point. How a scene becomes another scene without being rebuilt.
- Depth cue
- Alpha, scale or weight standing in for lighting. Cheap, flat, and more legible than shading.
- Scroll camera
- Scroll drives a camera through one continuous scene instead of revealing stacked sections.
- Glyph field
- Text broken into individually addressable characters with a home and an away position.
- Surface mark
- A flat shape living on a curved surface, foreshortened along its own normal. Buys rotation from almost no geometry.
- Spring
- Damped follow. Nothing snaps, and stiffness/damping carry most of the perceived personality.
- State machine
- Named modes with their own laws AND their own look, so the state is readable before you test it.
- Scheduler
- Jittered periodic events. What makes a thing feel alive when nobody is interacting with it.
- Z-crossing
- Objects passing behind each other. The single cheapest cue that sells depth in a flat scene.
- Antipodal pair
- Two marks at +axis and -axis of a rotating axis. Continuous by construction, with no phase to wrap.
- Trail
- Motion history drawn as decaying echoes. Reads as speed without any blur pass.
- Painter sort
- Explicit far-to-near draw order. Replaces a depth buffer with one sort per frame.
- Pointer gaze
- Continuous, saturating response to pointer position rather than discrete hover states.
- Curvature comb
- Signed curvature drawn as hairs along the normal. Makes a discontinuity visible that no amount of staring at the curve will show.
- Solve, not expose
- Give the user the outcome they care about and solve for the parameter underneath. Turns a handle into a result.
- Subdivision
- Recursive splitting with the endpoints held fixed. Detail on demand, from de Casteljau to a coastline.
- Angular sweep
- Sort events by angle about a point and walk them once. Turns an occlusion question into a one-dimensional scan.
- Accumulation
- Average many exact solutions instead of blurring one. Penumbra, motion blur and antialiasing are the same move.
- Mask memory
- Persistent state kept in an alpha channel rather than in a data structure. No grid, no bookkeeping.
- Field classify
- Ask each pixel which region owns it instead of constructing a boundary. Cheap to perturb, impossible to stroke.
- Flow field
- One continuous field that everything samples, so unrelated objects agree about the world for free.
- Jointed chain
- A body integrated joint by joint. Stiffness falling along its length is what makes a tip whip and a base hold.
- Reference frame
- Re-origin the same simulation. Most of what is confusing about a system is a frame problem, not a physics problem.
- Symplectic step
- Step so that a long-running simulation stays put. Energy is allowed to wander; it is not allowed to run away.
- Symbol quantise
- A continuous field read out through a fixed grid of discrete marks. The grid is the resolution; the alphabet decides whether it reads as a picture or as texture.
- Solve one orbit
- When an arrangement maps onto itself, the distinct cases are its orbits, not its members. Solve one of each and read the rest through the transform that carries them there. The cost then tracks how symmetric the arrangement is rather than how big it is, so a more symmetric shape is cheaper per element, not dearer.
- Found point
- Points discovered rather than placed: the intersections a construction produces. Compass and straightedge as a data structure.
- Cable routing
- A connection drawn as a curve whose handles carry the direction. The handle length is the design: it grows with distance, holds a floor, and grows again when the target is behind the source.
- Magnetic target
- A hit area sized for the decision rather than for the mark. It can grow until it touches its neighbour, and that is the ceiling.
- Signal flow
- One moving mark per connection, on live connections only. Direction and liveness for free; put it on everything at once and it is wallpaper.
- Reachability dim
- Walk backwards from every output and dim whatever you never touch. Dead work looks dead, and a large graph becomes readable without being rearranged.
- Proximity graph
- Links drawn between things that are near each other right now, so connections form and break on live distance. The neighbour cap is the design: uncapped it stops reading as objects and starts reading as a hairball.
- Staggered release
- One event given a per-element delay taken from a spatial coordinate. Which direction the delay runs in decides where the expensive part of the effect happens.
- Sphere trace
- Step along a ray by the distance to the nearest surface. The scene is an equation, so there is no silhouette to tessellate and no resolution to choose.
- Deferred read
- Render normals and depth first, then draw the picture from those. Non-photoreal modes become image filters instead of geometry problems.
- Occlusion oracle
- Answer whether a point is visible by asking the scene directly rather than running a hidden-line algorithm. One ray, per pixel, against the same function the renderer already uses.
- Bake the constant
- Split what moves from what does not, render the part that does not once into a picture, and let the frame be a weighted sum of pictures. It buys quality that would be unaffordable per frame, and it costs the freedom to change the thing you baked.
- Filled, not unblocked
- A shadow disappears when another light reaches into it, not when the thing casting it stops existing. Obstacles stay obstacles; what changes is how many directions light arrives from.
- Add in linear
- Light adds where it is proportional to energy, not where it is proportional to display value. Summing sRGB piles the mid-tones up and clips them; sum in linear, tone map the total, convert once at the end.
- Roll off, do not clip
- A sum of lights exceeds one, and what happens next is the whole look. Clipping gives flat white shapes with hard borders; a compression curve keeps the shape of the highlight and desaturates it the way film does.
- Break bands with a fixed hash
- A long smooth gradient bands in eight bits. A hash keyed on the pixel breaks the bands and stays put; the same idea reseeded every frame does the same job in a still and boils in motion.
- Draw it bigger
- Render into a backing store larger than the box and let the browser resolve it down. The cheapest smoothness there is, and the easiest to forget, because nothing about the code looks wrong without it.
- Cast wedge
- A shadow built as geometry from the tangents of a light and an occluder rather than found per pixel. Two rays and a cap, exact at any zoom, one polygon.
- Additive light
- Overlapping light sums instead of covering. Two lamps make a third colour, and a shadow becomes the absence of one of them rather than a dark shape.
- Light falloff
- Brightness as a function of distance. The exponent is the mood, and it is a bigger decision than the colour: too shallow and the light floods the frame, leaving no dark for a shadow to be seen against.
- Handoff
- State visibly travelling between UI elements, so a system reads as a set of actors.