# cronstable

live
↑ actual size — the wordmark's l IS the pendulum, balancing in place; drop the signal and the letter falls out of the word
BALANCED t=0.0s
stability is not a state — it is a control loop. a real inverted double pendulum on a cart: full nonlinear dynamics, balanced by LQR, recovered by an energy pump and a receding-horizon planner. nothing is keyframed.
palette
MODE
balance
ENERGY / UPRIGHT
100%
CART ACCEL
0.0 m/s²
LAST RECOVERY
—
CATCHES VERIFIED
0
reduced motion is on, so the pendulum holds a still pose — upright while live, hanging while the signal is down. every other visitor sees it balance in real time.

## how it works

real dynamics.

the full nonlinear cart–double-pendulum equations (Lagrangian, 2×2 mass matrix), integrated with RK4 at 240 Hz. energy drifts less than 10⁻⁵ relative over 20 s of free swing. there are no keyframes anywhere in this file.

balance — LQR.

at page load the dynamics are linearized numerically about the upright and a discrete Riccati equation is iterated (re-symmetrized — the naive recursion diverges on this stiff system) to get the gain row K. the controller leans against an injected breeze that swells and lulls, so the idle logo is never perfectly still: watch the cart ease side to side as the wind wanders.

collapse — losing the signal cuts the motor.

when the dashboard loses its daemon the controller is unpowered: the pendulum crumples and the cart coasts. after 0.55 s the recovery controller wakes up.

swing-up — an energy pump.

the exact energy flow is dE/dt = −a·G, so the cart accelerates against G to pump the swing, saturating smoothly and recentering all the while. offline it targets 94% of upright energy — enough to keep striving, never enough to arrive — because an upright logo with no signal would be a lie.

the catch — planned, then proven.

near the top, a receding-horizon cross-entropy planner (0.96 s horizon, ~80 rollouts per frame, warm-started phase-correctly) threads the swing into the balance controller's narrow basin. a candidate catch is only committed after a full 2-second closed-loop rollout of the real dynamics says it will stand. patience escalates pump target and cart authority, so stubborn recoveries still land — median ~15 s, effectively certain by 90 s.

## in the product

the wordmark's l is this simulation.

the letter is measured (canvas TextMetrics) and the sim scaled so the balanced pendulum — cart pivot on the baseline, tip at the stem's top — stands in for the glyph exactly; the controller's equilibrium x = 0 is the l's cell, so stability has an address in the word. the cart's track runs the full width of the wordmark — the end gates ARE the word's ends, so a hard recovery can ride out under "cronstab" and walk the standing letter back home. when it needs still more room, the right gate opens out toward mid-page — the physics bound lifts at once while the drawn gate flees just ahead of the cart, a phantom track filling in behind it — and once the letter stands at home again, gate and track glide back to the "e". it reads its colors from the active theme (`--fg`, `--accent`, `--pending`, `--glow`) and follows `state.connected`: standing as the letter while live, collapsed out of the word while reconnecting, healing the wordmark when the daemon returns. sweep your cursor through it and it feels the draft — speed, direction and where you graze it all matter; right-click knocks it clean over. with reduced motion it holds an honest still pose instead of animating. the printed l stays in the DOM (transparent) so copy/paste, screen readers and no-JS still read “cronstable”.