Skip to content
Andrew Voirol
WorkLogAboutContact
HomeWorkLog

AboutContact

✦ Just one prompt away from figuring it all out.

Saturday, August 1, 2026fluid-figures

The numbers weren't numbers

Debugging

Built the full 10→0 countdown with morphing transitions and color evolution — and the digits were unreadable. Particles scattered into vague blobs within seconds of forming. The spring force (0.05) was too weak to hold shape against the noise displacement (amplitude 0.14 per frame). Transition explosions with scatter forces up to 35 launched particles off-screen, and the soft springs couldn't pull them back fast enough to reconverge before the next number. The finale stuttered — particles oscillated around origin instead of settling cleanly, and the CSS fade overlapped with the convergence, creating a jarring flash. Rewrote the physics from scratch. Thinned the strokes from 0.35 * S to 0.18 * S so particles actually trace digit shapes. Tripled the spring stiffness from 0.05 to 0.12 so particles hold formation. Dropped noise amplitude from 0.14 to the 0.008–0.033 range — breathing, not jittering. Killed the scatter/reconverge transition entirely and replaced it with direct smoothstep morphing between digit shapes. Shallow z-depth (0.15 instead of 0.5) keeps the 2D digit readable from the camera. 560 lines of single-file TypeScript, all per-frame CPU physics. Shipped the same night — two commits at 2:17 AM.

← Previous

Ten thousand points of light and a dead end after nine

Next →

The unfurl has to be buttery — there are a million spinning globes


Andrew Voirol

Builder, hacker, shipper. Currently leaving localhost.

Navigate

WorkBuilder’s LogAboutContactRSS Feed

Connect

X / TwitterGitHubLinkedIn

© 2026 Andrew Voirol·Back to top ↑
✦Just one prompt away from figuring it all out.