A language for motion

Every motion is an equation.

Describe the parts and how they connect. GearScript works out where everything is, at every instant, right in your browser.

Free · open source · no sign-up
01 · Orbit

A path is one line of math.

Give a part a curve and a lap time, and it follows. Nothing to place frame by frame.

r(θ) = a(1 − e²) ⁄ (1 + e cos θ)
θ = 0°r = 0 kmv = 0 km/s
Probe { forever: along: Orbit 12s; }
02 · Time

Time is just another axis.

Say when things happen. Every moment in between is solved for you, with the easings you know from CSS.

Probe {
  0s..4s: rotate: 0deg -> 180deg ease-in-out;
}
t = 0.00 srotate = 0°
Drag time. The satellite is wherever the rule says it is.
03 · Unfold

Parts move because they are connected.

Hinges, sliders, gears, belts and pins are part of the language. Swing the first panel and the rest follow.

Wing2::Plate { hinge: edge.left on Wing1.edge.right; }
Mast::Rod    { slider: axis on Body.face.top; }
04 · Signal

It can glow. It can sound.

Parts give off light with luminosity, and sounds play on cue. Every sound is generated, so all of it is free to use.

Beacon { luminosity: 0 -> 100%; }
Probe  { sound: Ping every 1.5s; }
06 · Descent

Errors that explain themselves.

Every message names its fix. Copy the exact state at any instant, and an AI assistant can see what went wrong and correct it.

W0560 Probe and Shield pass through each other at 3.2 s.
fix: move one of them, or connect them with a hinge.
07 · Home

Start with one line.

Crank { forever: rotate: 180deg/s; }   // θ(t) = π·t
Drift