clone

an endless marble-race generator in the browser; the url is the seed, so every track can be shared

main
marbles / docs / rail-recovery-sample-2026-08-26.md
rail-recovery-sample-2026-08-26.md 3.7K rendered
1# Rail recovery sample — 2026-08-2623## Method45- 18 isolated headless Chrome runs (`rail-sample-000` through `017`).6- 401-racer field, 300 simulated seconds per seed, real endless client and7 Box3D/autopilot code. Pack LOD keeps the nearby physics subset live.8- Counted only `tileCandidate: true` recoveries: falls and six-second stalls.9 Intentional distance-LOD handoffs and stream culls were excluded.10- 644 candidate events across 413 generated segments and 7,965 generated path11 windows. No page errors occurred.12- Percentages are event share, not an independent per-marble failure13 probability: many racers can hit the same broken generated transition.1415## Event share by concrete piece1617| Piece | Events | Event share | Falls | Stalls | Seeds with event | Generated-window share |18|---|---:|---:|---:|---:|---:|---:|19| `ramp-long-b` | 367 | 56.99% | 0 | 367 | 1 | 0.43% |20| `straight` | 151 | 23.45% | 21 | 130 | 4 | 58.20% |21| `helix-large-quarter-right` | 42 | 6.52% | 0 | 42 | 1 | 0.14% |22| `end-hole-rounded` | 18 | 2.80% | 0 | 18 | 8 | 0.46% |23| `ramp` | 18 | 2.80% | 17 | 1 | 6 | 0.38% |24| `end-hole-square` | 14 | 2.17% | 0 | 14 | 6 | 0.31% |25| `slant` | 12 | 1.86% | 12 | 0 | 2 | 1.36% |26| `split` | 9 | 1.40% | 0 | 9 | 2 | 2.03% |27| `ramp-start-c` | 7 | 1.09% | 7 | 0 | 1 | 2.07% |28| `s-curve-short-left-a` | 2 | 0.31% | 2 | 0 | 2 | 2.40% |29| `wave-c` | 2 | 0.31% | 2 | 0 | 1 | 1.82% |30| `ramp-long-c` | 1 | 0.16% | 1 | 0 | 1 | 0.58% |31| `wave-b` | 1 | 0.16% | 1 | 0 | 1 | 1.48% |3233Overall: 581 stalls (90.22%) and 63 falls (9.78%).3435## Dominant generated instances3637Two seeds produced 565/644 events (87.73%), so the main result is two broken38layouts/transitions rather than a uniform weakness in common pieces.3940### `rail-sample-008`4142- Segment 11, window 5, `ramp-long-b`: repeated stalls (367 in the sample;43 rate-limited replay reached the 256-count log).44- Immediately adjacent segment 11, window 6,45 `helix-large-quarter-right`: 42 stalls (32-count replay log).46- Segment 11, window 11, boost `ramp-start-c`: a small fall cluster.4748The adjacency makes the `ramp-long-b` → `helix-large-quarter-right` transition49the first fix target; treating the two pieces independently would miss the50stronger explanation.5152### `rail-sample-015`5354- Segment 14, window 5, plain `straight`: largest repeated stall cluster.55- Segment 14, window 0, alternate icy tunnel lane, parts 6–7: another large56 stall cluster (the concrete rendered host is `straight`).57- Segment 14, windows 21–22 around the braid/tunnel exit: smaller stall58 clusters, including `split` on the alternate lane.5960This looks like one problematic braid/icy-lane layout whose congestion spills61onto nominally ordinary straight stations, not evidence that plain straight62pieces are broadly bad.6364## Sensitivity without the two pathological seeds6566The remaining 79 events rank as follows:6768| Piece | Events | Share of remaining events |69|---|---:|---:|70| `ramp` | 18 | 22.78% |71| `end-hole-rounded` | 16 | 20.25% |72| `straight` | 15 | 18.99% |73| `end-hole-square` | 14 | 17.72% |74| `slant` | 12 | 15.19% |75| `s-curve-short-left-a` | 2 | 2.53% |76| `split` | 1 | 1.27% |77| `ramp-long-c` | 1 | 1.27% |7879The recurring cross-seed signals are therefore the two end-hole variants,80generic ramps/slants, and a much smaller ordinary-straight tail.8182## Instrumentation correction made before the final sample8384Jump/reorient meshes are removed from the final endless placement array. Path85`placementIndex` values were not remapped after that filtering, so the first86sample could mislabel later windows as supports/decor. The final sample above87was collected only after remapping surviving path windows to final placement88indices and adding a regression test that every addressable path window resolves89to a track placement.