Experiments
things in progress · for comment
After the Ice
Every dated story’s title card. A copper dot leaves year 0 — when the ice let go, about twelve thousand years ago — and rolls up to the story’s year in ten seconds, leaving events behind it: figs planted on purpose, a tower at Jericho, the first alphabet, a new star seen by day. A line at the top never changes scale, so four-fifths of it stays nearly empty; a road below it winds toward you in perspective, with room to read; and when the dot lands, the story’s own neighbourhood draws itself underneath. Tap the road to stop. Tap anything to read. Run it again and it draws a different set. Your line so far keeps everything it has ever shown you.
Bench, not a lab, and not the Timeline Graph — this is the Graph’s front door. The events live in ../stories/events.json, not in the page; the pool and the story graph are to be one database. Sixty-five events and five lead-ups, all unsourced first drafts. Nine open questions in the spec, the first of them whether labels should thin to icons after the landing.
added 2026-09-08
Sound Benches
Three benches standing on one idea — that a note is a fast rhythm and nothing else. Counting turns into pitch, whole-number fractions turn into chords and then into a whole scale, and a strobe turns every interval into a polygon. Each carries its own reading.
Kept together because they share a vocabulary and each one corrects the one before it. The Sound Series (Sound-Series-Aug08, Sound-Rhythm-Roll-Aug21, Sound-Counting-Bench-Aug25) lives here as it grows.
added 2026-08-31
Ruling
A rectangle, and a ruling you step underneath it — Units, Halves, Thirds, Fourths, and on past Tenths without ever arriving anywhere special. The rectangle never moves; only the came does. Where the ruling doesn’t measure a side, the last piece is simply cut short — real glass, cut at the edge — and the count doesn’t come out whole. Nothing is greyed out and nothing is announced; the fit is something you see. Then Stack ↑ or Stack →. The whole squares already standing inside the rectangle outline themselves where they are — nothing moves — and only the leftover strips and the corner travel, gathering into more whole squares along one edge, with whatever remains sitting inside its own seam, its missing pieces plainly absent. Ten thirds by six fourths: three wholes found, two more assembled, and the answer is five.
Bench, not a lab. The companion to Multiply, and the answer to what that one found: there, grain is tied to zoom, so tenths need ~400px per unit and 6.3 is off every screen. Here ruling is an act. The restack is division arriving as regrouping rather than as an operation — no line of the readout does arithmetic on numerals; the second line only names what the glass has finished counting. Six questions in the source, and three readings the prompt left to the build.
added 2026-09-01
Multiply
A plane, and one white tile at the origin: the 1. Touch it and drag — right for width, up for height — and the 1 stretches into a rectangle, with its twin following across the diagonal a little fainter, showing the same two numbers exchanged. Lift your finger and the rectangle goes; what stays is one tile at its far corner with the product written on it. Build a few and the map draws itself: the squares run white up the crease, everything else grey to one side or the other. Hide the duplicates and only the lower half remains. Tap any tile to see the rectangle it was made from.
Bench, not a lab. Step 3 of Review-Glass-Aug26: one tool, standing on plane.js alone, with no table code — so the grammar can be looked at before anything is built on it. Four questions it exists to answer are in the source, at the top. A fifth turned up on the first drive and was left standing rather than patched: tenths only exist above ~400px per unit, so at the zoom that mints a decimal the stroke reaches about x = 2 — the walk’s own example, 6.3 × 2, needs 2 500px of run and cannot be drawn on an iPad. 1.3 × 2 reads 2.6, exactly.
added 2026-09-01
Map Reveal
The coordinate grid constructed in front of you — two seed points, full circles rolling down the axes, every line earning its crossing circles, accelerating as the numbers grow. Knobs for duration, the legible opening, and acceleration; zoom in far enough and the tenths construct themselves.
Bench for the map reveal (Decisions-Controls-Aug12, §8, §11, §15). It settles the tempo by looking. Every step is in the log; speed compresses time, never content.
added 2026-08-13
The Fog Map
Every pane shaded by the rank of its largest prime factor — white at 2, deepening toward black at the 256th. Drag and scroll out as far as you like: the map refuses to go dark, because almost everything is built from small primes.
A magnitude viewing rather than a factor-reading one. It asks how big, not which — and the stripes running the full width are the prime gaps.
Canvas Panes
A load test: how much of a frame does it cost to draw a table of leaded panes while panning and zooming? Reports draw time against the 16.7ms budget, because frame rate alone reads 60fps until things are already bad.
Bench for the plane extraction — the one that could have blocked moving Glass Multiplication to canvas. It didn't.
Fills and Light
Two declared palettes, a resting one and a lit one, both derived from the workshop's own colour so hue never moves. Showing a set — or selecting a pane — lights its members. Nothing is dimmed to make anything else stand out.
Bench for the plane extraction. Dimming was tried and abandoned: every procedural route to a quiet colour computes one nobody chose.
Prime Glass
Prime colours across four workshops, stripes ordered smallest prime to largest, with a monochrome toggle. Asks whether arrangement alone can tell 6, 10 and 14 apart when colour is switched off.
Bench for the plane extraction — if colour turns out to carry delight rather than information, that is a much stronger position than a special palette.
Prime Tones — 11 and 13
A listening bench for the primes Glass Multiplication does not yet have: four candidate ways to sound 11 and 13, heard against the four that exist.
Settled here by listening: the octave works, a child can tell C from C′. Timbre stayed unspent as a result, and is still reserved.
Number Theory Lab
Multiplication and division as rectangles, on a number plane you can pan across.
Its grid and axis rendering was the behavioural reference for the shared plane — the adaptive step driving labels and gridlines from one function.
Beads Around a Circle
How many beads fit around a circle — count them, divide circumference by diameter, and keep the past measurements.
Clinks
Someone arrives, someone leaves, and everyone clinks glasses: the triangular numbers, counted out.
Sound Workbench
A bench for auditioning the interface's voice — gesture sounds, feedback sounds, pitch and ratios.
Cursor Modes
What the pointer becomes for each gesture: arrow to crosshair, magnifier, precision magnifier, double-click and hold.
← curious woods