ROOM 04 / 05 — MATERIALS LAB
Physics
A hands-on materials lab. Nothing in this room plays back a recording — every object is wired to a live spring solver and waiting to be picked up, thrown, and read on the settle. Tool-crib tags list each spring’s working values.
Notice — please handle the exhibits
Under test — createDraggable · spring · createAnimatable
EXHIBIT 04·A — RELEASE SPRINGS
Same chip, three tempers.
Three chips cut from the same stock. The only line that differs is the spring handed to releaseEase. Flick each one across the bench and compare how it feels about stopping.
Bench 01 — release test
-
A — Underdamped · soft
spring({ stiffness: 80, damping: 6 })Arrives late and argues about it.
-
B — Critically damped
spring({ stiffness: 300, damping: 34.64 })One clean stop. No discussion.
-
C — Overdamped · stiff
spring({ stiffness: 900, damping: 90 })Viscous. Refuses all drama.
EXHIBIT 04·B — SNAP-FIT BOARD
Machined to a 56-pixel pitch.
Tokens snap to the blueprint grid on release — snap: 56 matches the drawn pitch exactly, so a thrown piece settles to the nearest lattice point the rails allow. The orange flash is onSettle confirming the lock.
Board 02 — pitch 56
Awaiting first lock — drag a token
EXHIBIT 04·C — THE WHIP
Fourteen joints, one instruction.
Every node is a createAnimatable chasing the same pointer. The only variable is time: response durations stretch from 90 ms at the head to 800 ms at the tip, so position becomes a wave traveling down the chain. Draw slowly, then snap your wrist. Left alone, the chain wanders the dark on its own.
Specimen C — liquid chain · ×14
response 90 → 800 ms / node
EXHIBIT 04·D — GRAB FEEDBACK
Weight, faked honestly.
Every handle in this room gains mass the same way: it scales to 1.045 through a stiff spring on onGrab and settles home on onRelease. Four lines of code — and most of the reason the room reads as physical rather than drawn.
Test pad
ME
Signal trace — live
onGrab
core → scale 1.045 · spring(550, 30)
onRelease
core → scale 1 · spring(260, 14)
onSettle
at rest — position committed