Motion
Three components whose movement is computed from a real model rather than drawn as a curve. A travelling wave, a population of coupled oscillators, and a damped spring. Each one is shown doing a job in a working panel first, because a motion primitive on its own is a swatch, and a swatch does not tell you whether the idea survives contact with a control.
These three are original, not ports, which makes them the exception in this repo. The porting rule in AGENTS.md exists so nobody approximates a component that already ships somewhere and calls it extracted. Nothing here is claimed to be extracted from anything. The travelling wave began as a study for a connectome game and the model behind the oscillator cluster is Kuramoto, 1975. None of it represents recorded data.
One
An acquisition panel. The border carries a travelling packet, the two bars report real work, the cluster below reports whether the subsystems agree, and the drawer opens on a spring. Press Connect in the cluster and watch the lights pull into step on their own. Nothing sequences them.
Two
A pulsing bar says something is happening. A travelling one says which way the work is moving. The packet is a gaussian in phase rather than a sliding gradient, so its width is a number you set instead of a stack of colour stops to hand tune, and on a determinate bar it runs inside the filled part only, so it never promises progress the value does not have.
Three
Each light is an independent oscillator with its own natural frequency, and every step it is pulled towards the others. Below a critical coupling the pull loses to the spread and they stay scattered. Above it the population locks by itself. The coherence number is the order parameter of the same model measured from the live phases, so it cannot disagree with what the lights are doing. Hover or tap a node to see its natural frequency, which is what explains the drift.
Four
This is the one worth taking even if you never use the other two. A bezier has a fixed duration, so a control grabbed halfway through either snaps or restarts. A spring carries velocity, so it continues from where it actually is at the speed it actually had. Move the sliders and the readout names which side of the critical damping boundary you are on. The trace under it plots the position the spring really took, so an overshoot shows as a curve crossing its target and coming back.
Five
Candidates for the same treatment. The test each one has to pass is whether it does a job an easing curve could not: carry state, encode a real quantity, or produce structure you would otherwise hand author. Every one of them now works a real interface job on the models page.
Layout, not motion
Successive items placed 137.5 degrees apart pack evenly with no clumping and no ring seams, which is how a sunflower does it. Good for radial menus, dial ticks and particle seeding, and it needs one line rather than a table of hand placed positions.
Scatter
Points that are random but never closer than a set distance. Random scatter clumps and reads as a mistake, and a grid reads as a grid. This is what you actually want for motes, starfields and texture.
Ambient drift
Particles follow a smooth vector field instead of a random walk, so the drift has direction and structure that persists. One noise function replaces a per particle animation for every element.
Path
Any closed path is a sum of rotating circles. A loader that traces a logo or a glyph this way is one coefficient list, and it can be truncated to trade fidelity for cost while still closing cleanly.
Emergent structure
Two chemicals, one spreading faster than the other, settle into spots and stripes. It gives an ambient surface that never repeats and never needs a texture file, and it is genuinely slow, so it belongs on a background rather than a control.
Growth
Particles wander until they touch a seed and stick, growing a dendritic form. A progress indicator that grows this way encodes how much work is done in how much structure exists, rather than in a length.
Partition
Space divided by nearest seed. Useful when regions have to tile with no gaps and still respond to a moving point, for example a hit map, a heat overlay, or panel segmentation that reflows.
Collective behaviour
Separation, alignment and cohesion produce a shoal from agents that only see their neighbours. Like the oscillator cluster, the appeal is that group behaviour is emergent, so it never looks choreographed.
Arrival
The humblest one and the most reusable. Move a fraction of the remaining distance each frame and a value chases a target with no duration to pick and no interruption to handle. Worth reaching for before a spring whenever overshoot would be wrong.