wip(assembler): round S9 -- collision look-ahead: ground ring ready on arrival up to 40 m/s and 50 m/s falls

voxel.StreamingCollisionLookahead (default on) predicts the support tile 350 ms
ahead along full 3D velocity and prioritises its 9-tile collision ring. Owner
plan, BuildHost actor: 40 m/s arrival-ready 25/74 -> 74/74 (CVar-off control
15/74); 6/12/25 m/s stay 100%; -Z 50 m/s 93/93. Spawn unchanged (~7.7 s).
Critical LOD0 path at 40 m/s: generation 67 ms p50, RMC body update 38 ms p50.
LOD8 cost counted (native horizon 48 ms of 60), optimisation deferred.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
This commit is contained in:
Fr0zkaandClaude Opus 5.5 committed 2026-10-19 10:56:54 +02:00
1 parent 8440adc742
commit e7586a1256
7 files changed
+507 -70

No files matched your search

+39
View File
@@ -1609,6 +1609,45 @@ The cap kept the observed backlog finite without reinstating the S6/S7 finished-
decline. Full timings, per-center records, quality checks and hashes are in
[`Standalone/Research/WorldAssemblerM3/Round12/REPORT.md`](Standalone/Research/WorldAssemblerM3/Round12/REPORT.md).
### 8.30 Velocity-scaled support-ring lookahead — World Assembler S9 / M3 Round 13
The ring gate uses the support tile, which can sit one tile below the clipmap center on a surface
world. Both scheduler branches must use the same `GetPlayerSupportTile` result for the active 3x3
collision-critical ring and its predicted rings. Predicting from the stream center can spend work on
the wrong vertical slice, so the trace includes both `center` and `walkable_center`.
`voxel.StreamingCollisionLookahead` defaults to `1`; `0` disables only the prediction and is the
negative control. `GetStreamingHeadingStep` transforms velocity into actor space and selects its
dominant axis, including Z for a fall; when motion is zero it falls back to pawn forward. The
lookahead targets 350 ms of travel, rounds up to whole active LOD0 tiles, and clamps the lead to one
or two rings. The scheduler adds the future 3x3 keys only when they already belong to the desired
clipmap, then moves those collision keys into `CriticalDesiredTiles`. It does not reserve more worker
slots, expand the clipmap, cancel in-flight jobs, or change tile arithmetic. `collision_lookahead`
records speed, direction, stream/support centers, promoted-key count and missing desired keys.
On the staged SurfaceWorld owner plan at 25 cm, the S9 `+Y` trace found the ring ready at all 74/74
support-center arrivals through 40 m/s; the corrected-source CVar-off control found 15/74. The
S8 no-lookahead baseline was 25/74. At 50 m/s scripted downward motion, 93/93 support-center
arrivals were ready. The 40 m/s matched on/off initial-ready times were 7.743/7.778 s, so the
prediction did not slow spawn in this pair. These figures support 40 m/s as the highest horizontal
speed tested; they do not measure a higher horizontal ceiling. The vertical trace is a scripted
actor move through the owner plan, not a free-fall physics replay.
For 108 critical LOD0 tile jobs with complete stage joins at 40 m/s, request-to-worker start was
0.02/9.59 ms p50/p95, generation 66.6/84.0 ms, result wait 9.3/17.7 ms, game-thread apply to mesh
submit 0.17/0.24 ms, RMC collision submit 0.01/0.02 ms, and RMC submit-to-body-update 37.6/85.9 ms.
The latter is the observable body-ready interval, not a Chaos-only CPU timer. The current trace saw
no scheduler skips, a 113-result peak under the 256 cap and 33 ms maximum region-page compile with
concurrent admission. Generation and body update dominate the measured tile path; the lookahead
gives those stages time to finish before the support center changes. LOD0-missing clipmap frames
remain separately visible in the Round 13 table; they are not equivalent to a missing support ring.
The scheduler change does not alter field, mesh or collision output, so `WorldAssemblerPlanV1` and
the far-horizon recipe versions stay unchanged. Core-off legacy, M2 fixtures, SurfaceWorld and
FloatingIslands checks passed; the S3/S4 ground, cap and coverage audit passed. The full sweep,
negative control, hashes, stage ledger and the deferred LOD8 optimization plan are in
[`Standalone/Research/WorldAssemblerM3/Round13/REPORT.md`](Standalone/Research/WorldAssemblerM3/Round13/REPORT.md).
## 9. Multiplayer model (listen-server first, dedicated-friendly)
> **Status: transport is DESIGN ONLY — nothing is networked in-tree yet** (no `Replicated`/`HasAuthority`/RPCs; a