EXP. 008 — FLAT EDITION
The lesson needs a GPU to be watched.
Without WebGL2 the belief field can't be evaluated per pixel. What the network would have learned is in the notes.
EXP. 008 · The Boundary
epoch 0 · loss — · acc —
next point: bone · tap to contradict · shift flips
The Lab — EXP. 008 · watching a model learn
A real network — 2→16→16→1, 337 parameters — really training, right now, in front of you. The heavy contour is everything it believes at p = 0.5; watch it wrap the spirals as the loss falls. Tap to plant a point it can't explain, and watch belief reorganize around you.
EXP. 008 — Notes
A real neural network — two inputs, two small hidden layers, 337 weights — trains in front of you by backpropagation, nothing pre-recorded. Its whole belief is one decision boundary, drawn per-pixel every frame. It starts as a useless straight line because that's all an untrained network can say; the two spirals force it to bend, fold, and finally wrap the truth. Tap to plant a contradicting point and the entire surface reorganizes — belief is global, correction is global.
Every model you now work with — ranking, targeting, LTV, the copilot in your product — is this: a boundary bending around examples. Two things follow. A contradiction doesn't cause a local patch; it reshapes belief everywhere, which is why one stream of bad labels quietly bends every prediction, and why data quality is strategy rather than hygiene.
And calibrate expectations for AI features: the day-one model is the straight line. The asset isn't the first answer — it's the training loop that turns contradictions into shape. Ship the loop.
Watch a mind be wrong in public. The line it draws first is confident and useless; every truth it meets bends it a little. What it ends with was not taught — it was surrendered to, point by planted point.
PHYSICS — raw WebGL2, no libraries, single file · training in JS typed arrays, uniforms only (no float textures) · rAF runs ONLY while training — converged = zero frames, visibility + IntersectionObserver gated · reduced motion = the converged still, one frame · ?freeze = synchronous training to convergence, deterministic single render · no-GL = designed fallback · seeded mulberry32 (data + init) · zero console errors.