| fix: use supported Cloudflare Pages configuration | Dami | | +5 | -3 | |
| build: package the complete Cloudflare Pages site | Dami | | +201 | -8 | |
| fix: preserve zoom and smooth wide follow-camera views | Dami | | +244 | -64 | |
| feat: simplify the launch menu and expose playback controls | Dami | | +1023 | -475 | |
| fix: clear disconnected lanes and overlapping track collisions | Dami | | +278 | -9 | |
| feat: trace rail recoveries to authored track pieces | Dami | | +436 | -19 | |
| fix: accumulate trail samples during slow marble motion | Dami | | +35 | -2 | |
| BUG HUNT: harden cameras, menus, trails, and teardown | Dami | | +577 | -236 | |
| MARBLES KEEP THEIR COLOURS (glow round): boost stops painting the pack blue | Dami | | +55 | -13 | |
| progress.md: current-state line for the emergence round (M21-M25 + mass families + contact events, 210 tests) | Dami | | +11 | -8 | |
| THE WORLD REMEMBERS (M25): the race leaves marks | Dami | | +130 | -2 | |
| CONTACT EVENTS (shim round): the pack's knocks are real now | Dami | | +167 | -11 | |
| SEED PERSONALITY (M24): worlds develop temperaments | Dami | | +200 | -66 | |
| BRAID NETWORKS (M23): the line stops being a line | Dami | | +206 | -131 | |
| SLIPSTREAM ECONOMY (M22): trains form because they pay | Dami | | +98 | -10 | |
| WEATHER BECOMES PHYSICAL (M21): the sky is a generation input now | Dami | | +407 | -273 | |
| ISLAND MASS FAMILIES (user directive): islands stop being one body in different paint | Dami | | +5510 | -25 | |
| progress.md: current-state line for the M18-M20 + V3 round (205 tests) | Dami | | +12 | -8 | |
| OPEN FORKS (V3, user directive): the line forks now and answers later | Dami | | +541 | -87 | |
| VOID SHARDS (user correction): the void stops growing bushes | Dami | | +114 | -69 | |
| LOOP BREADTH (M19c): twin diamonds, stub gardens, rotundas, richer pillars | Dami | | +279 | -25 | |
| LANE IDENTITY (M19b): braids where the lane you draw matters | Dami | | +355 | -59 | |
| RIVALRIES (M20b): seeded grudges and allies, temper, brake style | Dami | | +353 | -11 | |
| PACK DYNAMICS (M20a): drafting, lane personality, overtake commitment | Dami | | +505 | -7 | |
| VOID DECOR (M18b): the empty air gets furniture — drifting shoals, ships, ghosts, meteors | Dami | | +6100 | -50 | |
| THEME PACKS (M18a): winter, spooky, tropical, autumn islands on four new kits | Dami | | +12578 | -178 | |
| GUST WALLS (M19a): the wind gets a clock — pulsed blockades, vortex eddies, loop backport | Dami | | +600 | -46 | |
| MEASURED COLLISION (audit round): the proxies now match the kit, and CI proves it | Dami | | +2283 | -175 | |
| progress.md: test count 162 | Dami | | +2 | -2 | |
| progress.md: M17 braids + bench in the current-state line; pin table refreshed | Dami | | +11 | -7 | |
| BRAIDED PATHS (M17): the line forks, wanders, and merges back | Dami | | +1441 | -122 | |
| Piece bench sim: marbles wishdir across the piece (real autopilot) | Dami | | +56 | -13 | |
| Piece bench: stable toolbar (fixed-width center label, outer buttons never shift) | Dami | | +8 | -0 | |
| Piece bench: dark void backdrop (collision wires + rail dots read clearly) | Dami | | +3 | -0 | |
| Piece bench: per-piece orbit focus + navigation + CUA path | Dami | | +72 | -5 | |
| Piece bench: gallery is now a mesh/collision/rail diagnostic rig | Dami | | +513 | -1 | |
| Pillar vocabulary: relational composition of kit support pieces | Dami | | +262 | -63 | |
| Viaduct crossings (piers vary island<->track); rim bevels go coherent | Dami | | +181 | -72 | |
| Camera jump ROOT CAUSE: frame() ran OrbitControls.update() in follow mode | Dami | | +72 | -8 | |
| progress.md: twist bench documented; chute dressing item resolved | Dami | | +5 | -4 | |
| Twist chute IS the kit channel: sliced section + static bench | Dami | | +393 | -108 | |
| Four presentation fixes from live user reports | Dami | | +221 | -61 | |
| progress.md: the M16 round shipped the whole backlog — what remains | Dami | | +37 | -61 | |
| Physics LOD: N=9999 runs 4.1x realtime (was 0.27x) | Dami | | +213 | -3 | |
| GRAVITY REORIENTATION (M16): islands connect through 90/180-degree rolls | Dami | | +1222 | -271 | |
| Respawn envelope+immunity; takeable spur drops; fans as wind fields | Dami | | +1616 | -90 | |
| Follow-cam local-up (M16 groundwork): opts.up supplier | Dami | | +27 | -3 | |
| Glass shell is a SKIN, not solid glass: thickness 0.2 -> 0.03 | Dami | | +7 | -2 | |
| Rail frame law (M16 groundwork): plan-space rails + per-station affines | Dami | | +105 | -1 | |
| Marbles read SOLID: inject the opaque core the kit never had | Dami | | +37 | -0 | |
| Leaderboard HUD + game-feel UI skin; rubber-banding via pilot skill | Dami | | +265 | -26 | |
| Wave 1: camera clip fixes, endless goldens, check clean, shim groundwork | Dami | | +784 | -28 | |
| Backlog notes from user direction: minimal leaderboard, game-feel UI skin, gravity reorientation intent, interactive fans, audio parked | Dami | | +36 | -9 | |
| progress.md is now exclusively the work ahead | Dami | | +80 | -1434 | |
| Hero mid-pack by drawn slot; pack-safe hero shell; camera zoom/orbit with debounced return | Dami | | +148 | -22 | |
| Stable per-racer render order for glass shells | Dami | | +7 | -1 | |
| World anchors to the HERO; leader-cam moves only the lens | Dami | | +16 | -4 | |
| Polygon offsets kill z-fighting: island caps, glass arch flanges, wire lattices | Dami | | +17 | -0 | |
| Glass marbles + tunnel variants; yaw-only pursuit; distributed respawns | Dami | | +346 | -20 | |
| Pack scale to 9999 racers, numeric menu input, seed in title, marble phenotypes | Dami | | +502 | -142 | |
| Menu is a title screen; boost knobs are pilot traits, not settings | Dami | | +290 | -178 | |
| Main menu: mode + racer count + boost tuning knobs; advanced fold for legacy toggles | Dami | | +335 | -6 | |
| Boost economy: recharging fuel turns the race into a contest | Dami | | +331 | -28 | |
| Leader-cam is opt-in (SPACE); trail follows the camera subject | Dami | | +60 | -10 | |
| Round handoff: M14/M15 state + next ideas in progress.md | Dami | | +27 | -1 | |
| M15: marbles interacting directly — N-body race with real peers | Dami | | +770 | -193 | |
| M14c naturalizer: Reynolds corridor dead zone + seed-stable pilot personality | Dami | | +179 | -31 | |
| Generation band fixes: slope-part claim envelope + climb-cubic spillover terraces | Dami | | +72 | -34 | |
| M14b: jumping as a decision — shim top-up + wantJump + stall hop | Dami | | +361 | -5 | |
| M14a follow-up: pilot debug introspection + fuzz forensics | Dami | | +41 | -0 | |
| M14a autopilot: centerline as wishdir — pure pursuit + swept speed envelope replace the assist special cases | Dami | | +363 | -4 | |
| Island wedge law: side-mating rule — wedge sides must anchor against real faces | Dami | | +35 | -1 | |
| Island wedge law, third pass: flush-or-open — every side must be level or a full-course drop | Dami | | +15 | -24 | |
| Island wedge law extended: side-flank rule — wedges only where flanked at their own level | Dami | | +29 | -19 | |
| Island shoulder trim: WFC coherence rules for wedge blocks (no more jagged rims) | Dami | | +16 | -7 | |
| Player-visibility round: marble trail, calmer banking, endless default, dev HUD behind tilde; fan spin axis fix | Dami | | +183 | -7 | |
| Handoff refreshed: M13 deferred set complete (gravity rotation, bouncers, audio, track-variety follow-ons) | Dami | | +135 | -19 | |
| M13: curve-wide scenery macro — self-closed roundabout rings (all five curve-wide exemptions lifted); goldens regenerated | Dami | | +187 | -9 | |
| M13: wide bridges — takeable spur upgrades to funnel→straight-wide-hole→funnel→cap over the lower line; straight-wide-hole exemption lifted | Dami | | +196 | -36 | |
| M13: takeable spur branches — elevated split diving-board end-hole drains onto the lower line (alt teardrop + guaranteed fall; per-variant fall gating) | Dami | | +292 | -8 | |
| M13: tee-spur — split-double-sides as a spur terminal (T stem off a split junction, arms capped); exemption lifted, goldens regenerated | Dami | | +109 | -5 | |
| M13: per-branch diamond supports — alt lane gets its own abutment+pier group | Dami | | +70 | -0 | |
| M13: hill-interval constraint — crossing tracks host hills; pairs never split (lifts the M3 flat-crossing compromise) | Dami | | +109 | -7 | |
| M13: distance-graded ambient decor — widened oracle contract (ORACLE_GRADE_HORIZON), goldens regenerated (gc88cd91ddee4) | Dami | | +73 | -8 | |
| M13: ambient audio — procedural mood pads + rolling voice + event cues (gesture-gated, pure mapping layer rule-tested) | Dami | | +476 | -1 | |
| M13: bouncer pins — mushroom bumpers on wide island decks (cylinder hulls via ph_add_bumper, recapture by wide walls) | Dami | | +234 | -2 | |
| M13: gravity rotation — shim gravityDir + tilted-gravity zones over the modifier channel (+ re-pinned scenario seeds) | Dami | | +292 | -17 | |
| Island wedges respect the surface: full-course openness, lower-side slopes, corner-checked diagonals, one-face waterfalls | Dami | | +32 | -8 | |
| Handoff refreshed: 2026-08-09 round state + deferred M13 set | Dami | | +16 | -1 | |
| M13: icy zones over the modifier channel (+ re-pinned scenario seeds) | Dami | | +123 | -16 | |
| M13: follow-cam island occlusion + banking lean | Dami | | +98 | -2 | |
| Island shaping + varied texturing (promoted backlog) | Dami | | +293 | -40 | |
| Ground vocabulary on islands: wide runs, stub sidings, fans, solids | Dami | | +653 | -16 | |
| HUD distance milestones + live photo key (promoted backlog) | Dami | | +198 | -0 | |
| Ignore .playwright-cli browser-harness artifacts | Dami | | +1 | -41 | |
| Full-helix spiral dives in the void (promoted backlog) | Dami | | +305 | -15 | |
| Ring size from URL (user): ?peers=N sizes the marble ring (0 disables, cap 24) | Dami | | +104 | -25 | |
| Marble ring (user): revolving seeded peer marbles around the player | Dami | | +670 | -0 | |
| Pipe color per ISLAND (placement chapters + per-chapter material clones) and marble shrunk 50% (user) | Dami | | +214 | -25 | |
| Pipe color per seed (swatch-level recolor), banner straight-window rule, island-block-in-channel regression scenario; seed freeze dropped (user) | Dami | | +184 | -12 | |
| Banner rule (user): banners only on plain straight windows - never curved channels or tunnel-arched cells | Dami | | +73 | -13 | |
| M12: island verticality - terraced runs (slope windows, per-cell terrace claims/mass) + corridor-blindness and claimsOf-duplication fixes | Dami | | +321 | -44 | |
| M11 COMPLETE: all set-pieces validated (browser soaks 0 deaths/0 errors, 7-seed deep drives clean) | Dami | | +55 | -1 | |
| M11: pad visuals - lip banners for jump/propeller, entry banners for boost zones | Dami | | +69 | -8 | |
| M11: branch respawns - island diamonds in endless (flank claims, alt rail, split wedge slab composite, respawn rides the other branch) | Dami | | +330 | -14 | |
| M11: sprint runs + bump lips (a/b tiers in boost zones), catch-mouth ribbon flare, lateral centering in boost zones | Dami | | +140 | -44 | |
| M11: propeller + shock zones (2-cell low-grav gaps, restitution override, converging catch funnel, straight-landing WFC rule) | Dami | | +259 | -94 | |
| M11: JUMP set-piece - first real channel gap (planner trajectory math, catch pan, shared rail law) | Dami | | +614 | -238 | |
| Handoff: mid-M11 state, ordered next work (jump set-piece first), vendored physics-debug tools | Dami | | +272 | -1 | |
| M11: boost-chute - first movement set-piece via the planner zone channel | Dami | | +37 | -1 | |
| Progress: M11 set-piece implementation plan (zone channel, boost-chute, jump, branch respawns, bump lips) | Dami | | +16 | -3 | |
| M11: survivability deepened (7 seeds, goal seg4) - all green on ribbon+feel | Dami | | +18 | -6 | |
| M11: per-tile physics modifier channel (Marble Blast movement character) | Dami | | +45 | -4 | |
| Progress: M11 ribbon+feel status | Dami | | +10 | -0 | |
| M11: Marble Blast feel package live (gravity 20, authority, restitution) | Dami | | +31 | -13 | |
| M11: smooth ribbon collision GREEN - default channel law | Dami | | +77 | -13 | |
| M11 ribbon: three root causes fixed via isolated repro chain; valley kicker remains | Dami | | +77 | -18 | |
| Decision log: no player control (spectacle), branches as respawn variety, powerups as planner vocabulary (movement set-pieces) | Dami | | +17 | -0 | |
| M11 research: Box3D mesh + Marble Blast physics recipe; ribbon WIP gated | Dami | | +260 | -51 | |
| M11 opening: dynamic-speed experiment reverted with findings | Dami | | +4 | -0 | |
| Progress: M10 complete notes + M11 handoff | Dami | | +26 | -1 | |
| M10 complete: physics marble live in endless mode + checkpoints/respawn | Dami | | +262 | -25 | |
| M10: collision proxy law + headless physics survivability (all seeds pass) | Dami | | +668 | -1 | |
| M10 foundation: Box3D wasm module + game shim | Dami | | +184 | -0 | |
| Progress: M9 results + detailed M10 implementation plan | Dami | | +41 | -11 | |
| M9: physics spike - Box3D confirmed (WASM, deterministic, 3800x realtime) | Dami | | +142 | -0 | |
| M8: slalom proportion - track x2, world 1x (endless) | Dami | | +268 | -109 | |
| M7: scenario validation harness | Dami | | +187 | -0 | |
| M6 complete: checkered goal gate + abstract dev-map biome | Dami | | +100 | -7 | |
| M6 goal 3: generative atmosphere family (fog/light/weather combos) | Dami | | +458 | -6 | |
| M6 goal 2: per-instance color variation via instanced island rendering | Dami | | +416 | -44 | |
| M6 goal 1: spawn/despawn animation for the endless stream | Dami | | +249 | -15 | |
| Roadmap: the physics era (M6-M13) | Dami | | +121 | -39 | |
| M2-M5: full kit vocabulary, hole semantics, and endless void mode | Dami | | +6762 | -317 | |
| Initial commit: seeded emergent marble-track generator (M1) | Dami | | +22299 | -0 | |