wip(assembler): M1 round 2 -- surface recipe closer to legacy; native still slower and visibly buggy

Luna, M1 round 2 of 4: round 1's mismatch was an underfit recipe (two synthetic profiles,
missing large-scale surface terms). Now: biome IDs match 4,096/4,096, mean height offset
-1.366 vox, density MAE 274.04 -> 17.23 vox, sign mismatches 55.2% -> 18.14%. Bound audit
298 boxes / 8,046 points, 0 misses, negative control caught. Hash c5e0371612e927af at
W1/W8/W16. Surface query 8-14 ms / 4,096 points. Matched 3D capture pairs added.
Problems (my review of the captures + her timings):
- matched 120-tile views: full-detail readiness 5.227 s native vs 2.882 s legacy -- SLOWER;
- surface capture shows a rectangular flat-topped raised block with vertical walls
  (tile/patch-level height bug, inferred);
- cliff capture is broken (floating shard, debris trail), not a cliff.

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-09 00:38:55 +02:00
1 parent 874c796c65
commit fcb16fd265
15 files changed
+1375 -91

No files matched your search

+109 -3
View File
@@ -139,11 +139,117 @@ also not measured by audit mode. Earlier small-view D3D attempt timings (owner 0
view had no geometry. The 23.085 s matched-workload gate remains open. The ~1.57 s aim remains
reasonable, but round 1 has no valid full-view evidence to support or reject it.
## Round 2 results
### Round 1 mismatch diagnosis
Round 1 was structurally underfit, not mis-scaled or shifted by a constant height datum. The sample
used two synthetic biome profiles (IDs 4097 and 4098) and a reduced height model. The owner export
uses four resolved surface profiles and relief/moisture climate ranges; the baseline also omitted
the mountain and relief response, height warp, output-space profile blend, coast/beach and cliff
shaping, and per-biome cap detail added in evaluator 2. Both sides use 25 cm voxels, and the current
4,096-column check finds only a -1.366-voxel mean height offset. The owner and Core biome IDs now match on all 4,096
diagnostic columns. These measurements point to missing structure and profile assignment rather
than a unit conversion, datum offset, detail-noise phase, or biome-ID selection error.
This round changed those terms as a group, so the before/after result does not isolate each term's
individual contribution. On the same 4,096 density-query points, mean absolute error fell from
274.0383 to 17.2262 voxels, maximum density error from 841.4257 to 392.4136 voxels, and sign
mismatches from 2,261/4,096 (55.2%) to 743/4,096 (18.14%). The separate 4,096-column height
diagnostic now reports MAE 13.060 voxels, maximum error 203.728 voxels, correlation 0.96496 and
linear-fit slope 0.95136. Residual peaks and sign errors remain visible; this is not parity.
### Evaluator, manifest and audit
Evaluator 2 keeps schema 1 and fixed signed 1/256-voxel units while adding deterministic
climate-based assignment across the owner's four profiles, output-space ground and cap blending,
per-profile relief/height warp/beach/cliff/cap settings, fixed-season water outputs, and stable-ID
bounded 3D overhang exceptions. Player carve/fill edits remain unrestricted; route constraints only
apply to automatic system generation or changes. This sample has one bounded exception
(`09812c26310b90c9`) and no route yet; route planning and capsule sweep remain round 3.
The evaluator-v2 review manifest is 4,514 bytes. Recipe hash is `dbe949967c0dfbce`, plan hash is
`165a00c4a77ebae0`, and manifest hash is `203d7043158069f6`. The 4,096-sample evaluator hash is
`c5e0371612e927af` at W1, W8 and W16. Bounds audit passed with 298 boxes and 8,046 points: zero
missed and zero unknown bounds; 16 biome-border boxes, 16 cliff boxes, 9 cap boxes, 248
negative-coordinate boxes, and one exception box with 27 exception samples. The deliberately
wrong one-sided bound was detected.
The final interval audit followed one failed audit with 102 missed bounds. Inspection found the cap
range was overwritten by a global plan range and that plateau/beach and cliff envelopes were
incomplete. Those envelopes were corrected before the final run. The current result is a sampled
audit of this evaluator and recipe, not a mathematical proof for arbitrary future inputs.
### Matched 3D captures
Each pair uses the same camera for owner and native Core, with full-detail tiles ready before
capture. Images are 640×400 JPEGs; each file is 9,089–17,961 bytes. The native surface, border and
coast pairs broadly agree in silhouette. The cliff pair shows a remaining large difference: the
owner has an extreme noisy overhang, while the prototype currently emits the bounded, smoother
shelf. Water height/fill is emitted as a field sample, but a water overlay mesh is not implemented,
so the coast captures do not show rendered water.
| Site and shared viewer camera (x, y, z; yaw, pitch) | Owner reference | Native Core |
|---|---|---|
| Surface `(0, -35, -487.943; 0, -22)` | ![Surface owner reference](Research/WorldAssemblerM1/round2/captures/surface-owner.jpg) | ![Surface native Core](Research/WorldAssemblerM1/round2/captures/surface-native.jpg) |
| Biome border `(128, -243, -492.912; 0, -22)` | ![Biome border owner reference](Research/WorldAssemblerM1/round2/captures/border-owner.jpg) | ![Biome border native Core](Research/WorldAssemblerM1/round2/captures/border-native.jpg) |
| Coast `(336, -67, -477.755; 0, -22)` | ![Coast owner reference](Research/WorldAssemblerM1/round2/captures/coast-owner.jpg) | ![Coast native Core](Research/WorldAssemblerM1/round2/captures/coast-native.jpg) |
| Cliff `(-168, 70, -445.712; 0, 34)` | ![Cliff owner reference](Research/WorldAssemblerM1/round2/captures/cliff-owner.jpg) | ![Cliff native Core](Research/WorldAssemblerM1/round2/captures/cliff-native.jpg) |
`Present` continued to return `DXGI_STATUS_OCCLUDED`, including after bringing the viewer forward.
The first surface back-buffer file was black and was excluded. The foreground retry's copied
back-buffer was nonblack and visibly contained generated geometry; the final pairs above use that
verified capture path. This validates the native mesh/viewer path for these captures, but the
presentation status itself remains unresolved.
### Query, cave compile and full-view timings
| Measurement | Result | Scope |
|---|---:|---|
| Surface point queries W1 | 13.569 ms | 4,096 evaluator points, point evaluation only |
| Surface point queries W8 | 8.085 ms | same points, same field hash |
| Surface point queries W16 | 12.396 ms | same points, same field hash |
| Legacy owner density queries | 61.974 ms | same 4,096 points; reference timing, not a performance gate |
| Core world compile and query bridge | 36.295 ms; 45/45 exact | Surface recipe; `World::densityAt`, no render mesh |
| Existing cave-only shape compile | 0.100 s | no-manifest `type_3_Maze.json` smoke, from round 1 |
| Owner full-detail readiness | mean 2.882 s | 120 near tiles (64 LOD0 + 56 LOD1), 16 workers, four capture sites |
| Native Core full-detail readiness | mean 5.227 s | same tile count, workers and sites; range 4.401–6.636 s |
| Capture site | Owner | Native Core |
|---|---:|---:|
| Surface | 2.873 s | 4.401 s |
| Biome border | 2.904 s | 4.907 s |
| Coast | 2.877 s | 4.962 s |
| Cliff | 2.874 s | 6.636 s |
The cave compile and surface query figures are separate workloads. The surface viewer took longer:
the native 5.227 s mean is 81% above the owner's 2.882 s on these matched views. This 120-tile
clip-radius-1 workload is not the agreed 23.085 s matched-workload gate. All viewer runs used 16
workers; maximum observed full-detail time was 6.636 s at the upward-facing cliff camera.
### Round 2 run log
- The first evaluator build failed because the JSON parser version has no `IsBool`/`IsNull` methods.
The parser was changed to inspect the JSON value variant, and the next isolated build passed.
- The first expanded interval audit failed with 102 escaped samples. The envelope fixes described
above were applied and the final audit passed. No failing result was discarded from the report.
- The initial native D3D surface capture was black with an occluded presentation status. A
foreground recapture still reported the same status but its back-buffer contained visible mesh
geometry; only the verified foreground copy was used. All four final owner/native pairs are
downscaled and below 18 KB per image.
- Successful final standalone builds completed in under one minute with `/MP16`, Normal priority
and 16 CPUs. Existing `vswhere.exe` lookup output and C4838 narrowing warnings at
`VoxelStrateManager.cpp:3974-3975` remain nonfatal. No process exceeded the 15-minute limit or
8 GB cap; no `0xC0000142` retry occurred. The crash-folder check found only the pre-existing
`UECC-Windows-F1A3EFD5469F5DD62E68EBBACAC84376_0000` from 2026-09-17 and no new UECC folder.
- No owner project or BuildHost project was built. No `.uasset` was opened or changed. No new source
files were added.
### Remaining work by round
- **Round 2:** Match the legacy reference more closely; add output-space biome blending, coast/beach,
cap detail, cliffs and bounded 3D overhang features with stable IDs and certified influence
bounds. Expand bound audits across borders, caps, negative coordinates and exceptions.
- **Round 2:** Evaluator-v2 surface recipe, matched 3D comparisons and expanded bounds audit are
implemented. The measured residual mismatch, rendered-water gap, and owner/native cliff difference
remain open for round 3 review; round 2 does not claim surface parity.
- **Round 3:** Add the finite-strate capsule route and support constraints, sweep it against the final
composed field, and reject or repair any failing automatic plan. Verify full-evaluator W1/W8/W16
hashes. Measure collision readiness separately from query and mesh readiness; demonstrate a