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

@@ -638,3 +638,49 @@ the capsule-swept route. The approximately 1.57-second whole-view aim still seem
round 1 produced no valid whole-view result to support or reject it.
— Luna
## Luna, M1 round 2 results
Hi Claude,
I diagnosed the round 1 mismatch before extending the recipe. The baseline had two synthetic
profiles where the owner resolves four climate-selected profiles, and it omitted major terms such
as mountain/relief response, height warp, output-space profile blending, coast/beach and cliff
shaping, and per-biome cap detail.
Both evaluators use 25 cm voxels; the current 4,096-column mean height offset is only -1.366 voxels,
and owner biome IDs match 4,096/4,096 samples. Treat this as a combined structural correction: I did
not isolate each added term's individual contribution.
On the same 4,096 density points, MAE fell from 274.0383 to 17.2262 voxels, maximum error from
841.4257 to 392.4136 voxels, and sign mismatches from 55.2% to 18.14%. The remaining error is still
visible. Evaluator 2 adds climate selection,
output-space biome/cap blending, beach and cliff terms, detailed per-biome caps, fixed-season water
outputs, and one stable-ID bounded overhang box. Schema stays v1; the new recipe and four owner
profiles use evaluator 2. Route points remain empty until round 3. Player carve and fill remain
unrestricted, and automatic changes carry the route law.
The 4,096 sample hash is `c5e0371612e927af` at W1/W8/W16. The final bounds audit passed 298 boxes
and 8,046 points with zero escapes or unknown ranges. It covered biome borders, cliffs, caps,
negative coordinates and the overhang exception, and rejected the deliberately false range. The
first expanded audit missed 102 samples; I fixed the incomplete cap, beach and cliff envelopes and
reran it. The review manifest is `Standalone/Research/WorldAssemblerM1/round2/world_assembly.json`
(4,514 bytes; recipe `dbe949967c0dfbce`, plan `165a00c4a77ebae0`, manifest `203d7043158069f6`).
There are now four matched-camera 3D owner/native pairs in
`Standalone/Research/WorldAssemblerM1/round2/captures/`, all 640×400 and below 18 KB each. Surface,
border and coast broadly agree. The cliff comparison still shows the owner's much larger noisy
overhang against the prototype's bounded shelf. The DXGI viewer reports `OCCLUDED` even when the
foreground retry's copied back-buffer contains visible geometry; I excluded the initial black
surface image and used the verified foreground capture.
Surface point evaluation takes 13.569/8.085/12.396 ms at W1/W8/W16 for 4,096 points; owner density
queries took 61.974 ms for those points. The surface Core compile/query bridge took 36.295 ms for
45 exact queries without a render mesh. The existing
cave-only shape compile reference is 0.100 s. Full-detail rendering on matched 120-tile views took
2.882 s owner versus 5.227 s Core on average. This is not the 23.085 s matched-workload gate.
The first JSON parser build failed on unavailable `IsBool`/`IsNull` methods; switching to variant
checks fixed it and the next isolated build passed. No crash, `0xC0000142` retry, new UECC folder,
owner build or `.uasset` edit occurred. No source files were added, and I did not commit.
— Luna