1# Track stall fixes — September 30, 202623Continues the unfinished diagnostic work in4[the August recovery sample](rail-recovery-sample-2026-08-26.md).56## Causes and changes78**Independent braid lanes were joined by collision geometry.** A segment can9contain two independent alternate paths. Their curves were concatenated, then10extruded as one ribbon. The triangles connecting the end of one lane to the11start of the other created invisible floors and walls across otherwise empty12space. In `rail-sample-015` segment 14, that wall blocked the alternate icy lane13and caused congestion on the main line. The shared proxy builder now breaks14ribbons at discontinuous authored endpoints. Independent strips are packed into15one mesh with separate vertex/triangle sets, keeping the native mesh-handle16budget bounded without connecting the strips.1718**An older rotated checkpoint blocked a later ramp.** In `rail-sample-008`,19segment 9's geometry folds into segment 11 after gravity reorientation. Removing20only segment 9 from the six-chunk repro made the ramp/helix run clear. Changing21traction would not fix this obstruction. Static collision categories now22identify stream checkpoints; each live racer contacts its own checkpoint and its23two connected neighbors. Racers still collide with one another, and respawn24ghost filters preserve the checkpoint mask. This prevents unrelated folded25checkpoints from blocking the active channel while preserving connected26transitions.2728This changes collision behavior, not seeded layouts. Existing generation goldens29and generator version remain unchanged. World-space visual overlaps and broad30camera occlusion remain separate generation/presentation concerns.3132## Verification3334- All 222 Deno tests passed, including measured collision fidelity, generation35 goldens, jump/reorientation/spur physics, multi-marble contacts and36 determinism.37- New regressions assert disconnected collision topology, connected-window38 continuity, native ghost/respawn mask behavior, and both recorded layouts39 clearing with real Box3D physics and no respawn or escape-hop fallback.40- Browser stress test: isolated Chrome runs, 401 racers, 300 deterministic41 simulated seconds per seed, real streaming client, diagnostics enabled.4243| Seed | Hero reached | Fall/stall recovery events | Recorded problem tiles |44| ----------------- | ---------------------------- | -------------------------- | ---------------------- |45| `rail-sample-008` | Segment 17, about 1135 units | 0 | Ramp/helix cleared |46| `rail-sample-015` | Segment 19, about 1166 units | 2 | Icy braid cleared |4748Neither hero died; neither browser run produced a page/console error. Both49remaining recovery events were at `end-hole-rounded` drop cups, outside the50recorded braid cluster. Drop-cup congestion/recovery remains a follow-up target;51this result does not claim every possible generated track is stall-free.5253The native shim must be rebuilt with `deno task build:physics` when distributing54these changes. This task requires Emscripten and CMake; `deno task build`55bundles the browser code separately. The local native module was rebuilt and56used for all verification above.