diff --git a/Standalone/Research/WorldAssemblerM3/Linux15/REPORT.md b/Standalone/Research/WorldAssemblerM3/Linux15/REPORT.md new file mode 100644 index 0000000..d17d8a4 --- /dev/null +++ b/Standalone/Research/WorldAssemblerM3/Linux15/REPORT.md @@ -0,0 +1,195 @@ +# Linux15 report + +## Result + +Null result. No far-mesh shortcut passed the full 1 px, shading, swap, and topology gates, so no +recipe enables one by default. Evaluator version 6→7 adds the optional `far_display_mesh` declaration; +omitting it keeps the L14 output path. The controls are in the shared Core layer and do not touch +LOD0–2, exact queries, collision, edits, or server state. + +Candidates measured: + +- Refinement grid scale ×2 at LOD4, 5, 6, 7, and 8. The all-tile LOD4 and LOD5 runs reject; the + remaining per-LOD probes exceed 1 px or change shading, and the LOD6–8 candidates worsen at + least one adjacent swap. +- Reusing connector station radii leaves geometry p99 at 1.07 px but reaches 15.23 px maximum; + shading delta reaches 0.667 and the normal changes by 73.3°. +- Coarsening refinement at LOD4–8 is the largest measured saving, but exceeds the display budget. + Halving connector station density also saves time but opens gaps. Removing + any one ray direction also opens gaps, and the removed-panel control finds 99 new holes. + +## Screen-space gate + +The gate samples 65×65 surface grids across all 1,145 displayed LOD3–8 tiles (5,208,134 samples; +skirts excluded). Geometry is projected normal displacement against today's same-LOD mesh at its +closest display distance, using 90° horizontal FOV and 2,560 px (0.000613592 rad/px). Shading delta +is the maximum of fixed-light normalized Lambert change and material selector/blend-channel change; +the limit is 1/255. Each number below is p50/p99/max. Exact-path baseline values are all zero. +The gate rejects geometry max above 1 px, shading max above 1/255, any worse per-sample swap, +missing surface, or new hole/crack/floater. Its own validation fails if S13, stride-2, missing +surface, floating surface, missing fine-ring, or removed-panel controls are not rejected; the +panel control must expose at least one new connector hole. + +| LOD | Tiles | Geometry px: baseline → refine×2 all | Shading delta: baseline → refine×2 all | Refine×2 holes / cracks / floating | +|---:|---:|---:|---:|---:| +| 3 | 384 | 0/0/0 → 0/0/0 | 0/0/0 → 0/0/0 | 0 / 0 / 0 | +| 4 | 320 | 0/0/0 → 0/2.370/606.562 | 0/0/0 → 0/0.023529/1 | 254 / 400 / 254 | +| 5 | 144 | 0/0/0 → 0/12.728/95.453 | 0/0/0 → 0/1/1 | 1,183 / 76 / 138 | +| 6 | 96 | 0/0/0 → 0.023/13.408/799.596 | 0/0/0 → 0/1/1 | 476 / 0 / 201 | +| 7 | 48 | 0/0/0 → 0/13.242/248.905 | 0/0/0 → 0/1/1 | 30 / 0 / 1 | +| 8 | 153 | 0/0/0 → 0.158/19.250/187.465 | 0/0/0 → 0.003922/1/1 | 45 / 0 / 946 | + +The selected-patch swap report compares each baseline with refine×2 all. Values are p50/p99/max px. + +| Swap (distance) | Before | After refine×2 all | +|---|---:|---:| +| 3→2 (96 m) | 0.611/3.767/6.045 | 0.611/3.767/6.045 | +| 4→3 (192 m) | 0.752/4.630/7.513 | 0.752/4.630/7.513 | +| 5→4 (384 m) | 0/9.580/31.783 | 2.435/32.321/86.615 | +| 6→5 (768 m) | 0/9.754/70.340 | 0.343/19.142/78.077 | +| 7→6 (1,536 m) | 0/9.040/42.355 | 0.200/15.109/50.994 | +| 8→7 (3,072 m) | 0.826/18.030/47.182 | 1.528/24.547/64.449 | + +The station×2 LOD6 screen scan measures 0/2/813.571 px, shading 0/0/1, with 1,349 holes and 1,690 +floaters. Its connector audit counts missing ray stations by stable tile/ray/station ID: holes 8→221 +(216 new), floating classifications 464→405 (111 new IDs). In the refine×2 all row above, the +screen scan reports those all-tile holes, cracks, and floaters. Station×2 leaves all six selected-patch +swap p50/p99/max rows at baseline values, including 6→5 at 0/9.754/70.340 px. All four ray directions are required: +the four one-ray-removed +controls create 1,008, 1,022, 1,171, and 1,158 new holes. The explicit panel-removal control creates +99 new holes. The exact-path audit has zero new holes, cracks, or floating pieces; its raw connector +audit counts remain 8 holes and 464 pre-existing floating classifications. + +The LOD4×2 and LOD5×2 candidates also fail in isolation. Reusing station radii misses the LOD6 +geometry and shading limits. The four one-ray-removed masks add 1,008, 1,022, 1,171, and 1,158 +connector holes, respectively. + +## Negative controls + +- The S13 global-octave-drop and stride-2 column-interpolation controls are rejected at every LOD3–8. +- Missing displayed surface, a floating surface, and missing fine-ring surface controls are rejected. +- Removing connector panels is rejected with 99 new holes. The exact connector path has zero new + station IDs classified as holes, cracks, or floaters. + +## Speed + +Five interleaved W12 pairs per candidate, hashing off, same 2,553-tile L1 view. +`whole_view_ready` is the metric. Both candidates fail the quality gate. + +Station×2 connector stations: + +| Pair | L14 baseline | Station×2 | Change | +|---:|---:|---:|---:| +| 1 | 1.320 s | 1.304 s | −1.2% | +| 2 | 1.363 s | 1.330 s | −2.4% | +| 3 | 1.371 s | 1.332 s | −2.8% | +| 4 | 1.393 s | 1.341 s | −3.7% | +| 5 | 1.391 s | 1.345 s | −3.3% | +| Median | 1.371 s | 1.332 s | −2.8% (3.3% median paired gain) | + +Refinement grid scale ×2 at LOD4–8: + +| Pair | L14 baseline | Refine×2 all | Change | +|---:|---:|---:|---:| +| 1 | 1.305 s | 1.164 s | −10.8% | +| 2 | 1.336 s | 1.177 s | −11.9% | +| 3 | 1.362 s | 1.169 s | −14.2% | +| 4 | 1.378 s | 1.178 s | −14.5% | +| 5 | 1.384 s | 1.190 s | −14.0% | +| Median | 1.362 s | 1.177 s | −13.6% (14.0% median paired gain) | + +## Hashes and invariants + +The undeclared/default recipe path matches L14. LOD0–2 density/mesh/payload/topology hashes: + +| LOD | Density | Mesh | Payload | Topology | +|---:|---|---|---|---| +| 0 | `769f2a706d585a72` | `33eeeb39fa443816` | `645621a1d968983f` | `c2457ed905036c9d` | +| 1 | `69cc5a5c0a2c60af` | `b48335f5410c57d5` | `d15c5480162ab8ba` | `feca1bd025823604` | +| 2 | `85deed5683a77202` | `53469895987aeea2` | `e55f8ae7e1532033` | `d5feb12a0e85c09b` | + +Exact queries (density / unclamped / detail / collision) remain +`e4d4a8eb95b35933 / e4d4a8eb95b35933 / efcba20c0c70c415 / e604823a249029bf`. The 24 m crossing's +432 moved tiles match L14 at W1/W12 with Clang off and GCC default: +`337ca62131576728 / 7612f48e2ddbbaab / 69a67ed4add83b87 / f11ac1ebd0f7ddb8` (D/M/P/T). +Its LOD0–2 per-LOD hashes also match the three rows above. + +Determinism passed 28/28 configurations: SurfaceWorld seed 0 and FloatingIslands seed 0, Clang 19 +FP-contract off and GCC 14 default, W1/W8/W12 and five W12 repeats. All per-LOD and whole-view +hashes match L14. L13 route parity passed for SurfaceWorld seeds 0, 1, and 17 and FloatingIslands +seed 0; page, native-only, higher-LOD, edit, and history mismatch counts are zero. + +The L3 FP-contract preamble/self-test, L4 `FLazy`, L7 shared cache, L9/L12 proofs, L11 readiness and +crash fix, L13 route binding, and CLAUDE.md async rules remain in place. The evaluator and optional +recipe declaration are shared by all recipes. Builds and runs used CPUs 0–11, up to W12, normal +priority, 6 GiB address-space limits, and the unchanged `powersave` governor. Peak RSS was 904,400 KB +(GCC build); peak runtime RSS was 736,432 KB. No run exceeded the time or memory limits. + +## Capture pairs + +JPEGs are 1280×720 and each is under 74 KB. Before is L14; after is the rejected refinement×2 +candidate applied at LOD4–8. +The L1 view uses `(0,-35,-487.94) m`, yaw 0°, pitch −22°. Horizon uses the same location at pitch −2°. +The mesa frame aims from the L1 location at the L6 mesa band (`(-472,-1432,-463.151) m` in the +gate) with yaw −161° and pitch 0.9°. + +| View | Before | After refine×2 all | +|---|---|---| +| L1 camera | [l1-camera-before.jpg](captures/l1-camera-before.jpg) (59 KB) | [l1-camera-after-refineall.jpg](captures/l1-camera-after-refineall.jpg) (57 KB) | +| Horizon | [horizon-before.jpg](captures/horizon-before.jpg) (63 KB) | [horizon-after-refineall.jpg](captures/horizon-after-refineall.jpg) (60 KB) | +| LOD6 mesa rim | [lod6-mesa-rim-before.jpg](captures/lod6-mesa-rim-before.jpg) (74 KB) | [lod6-mesa-rim-after-refineall.jpg](captures/lod6-mesa-rim-after-refineall.jpg) (67 KB) | + +## Failed and retried runs + +- The first Clang build wrapper exited 127 because `/usr/bin/time` is absent; the direct Clang + `-ffp-contract=off` build succeeded. GCC 14 default also built successfully. +- A later sequential-build monitor was interrupted after Clang completed and before its GCC step + launched. Clang and GCC were rebuilt separately with the same compiler settings and 6 GiB cap. +- The first hash matrix omitted `--seed=0` and was discarded. A second FloatingIslands matrix used + the SurfaceWorld spawn camera; it was rerun with the L14 auto-surface camera. The corrected matrix + passed all 28 configurations. +- Initial SurfaceWorld route probes used no camera for seed 0 (the 2,370-tile bound), omitted + `--region-crossing` for seed 0 (shape compiler safety bound), and used the fixed seed-0 camera for + seed 1 (LOD2/exact-query parity mismatch; seed 17 was not run with that setup). They were rerun + with L14's camera selection and region-crossing option; all four final route audits passed. The + first 24 m crossing also omitted `--region-crossing` and exceeded the shape-build safety bound; + all four corrected compiler/worker combinations passed. +- The first connector audit compared aggregate counts. It was replaced with stable per-ray station + ID comparison before the final gate. The initial L4 selected-tile gate missed a changed tile; the + all-desired-tile coverage gate found and rejected it. The full-view gate is used in the table above. +- The first JPEG encoding pass did not set CPU affinity or an address-space cap. All six files were + re-encoded under CPUs 0–11 and the 6 GiB cap; sizes and pixels stayed the same. +- The first five speed pairs included screen-gate color capture on ordinary streaming tiles. That + diagnostic copy is now enabled only for gate runs; all five cost pairs were rerun and the table + above uses only the final logs. The final exact gate passed and station×2 remained rejected. +- No builds, captures, final audits, or cost runs timed out or breached their memory limits. The + intentional candidate rejections are listed above, not treated as infrastructure failures. + +Evidence logs are in `Saved/Linux`: the final baseline and station×2 all-tile gates are +`l15-final-gatecolors-exact.log` and `l15-final-gatecolors-station2.log`; the best-payoff +refinement×2 all-tile gate is `l15-final-gatecolors-refineall.log`. Single-LOD refinement coverage is in +`l15-gate-alltiles-refine-l4x2.log` and `l15-gate-alltiles-refine-l5x2.log`. Single-LOD refinement +and connector-ray probes are `l15-gate-refine-l{x}x2.log`, `l15-gate-reuse.log`, and +`l15-gate-rays{14,13,11,7}.log`. Hash, route, and crossing evidence is in +`l15-final-hash-audit.txt`, `l15-final-route-*.log`, and `l15-final-crossing-24m-*.log`; final +station×2 speed pairs are `l15-final-speed-pair{1..5}-{before,after}.log`; refinement×2 pairs are +`l15-final-speed-refineall-pair{1..5}-{before,after}.log`. + +## Note for the owner + +The default far terrain stays the same because every measured reduction exceeded the 1 px geometry +or shading limit, worsened a swap, or opened holes. Refinement×2 across LOD4–8 saves 13.6% by the +median whole-view ratio, but creates hundreds-pixel errors and visible gaps, so the captures show it +for review only and it is not enabled. + +## Orchestrator review (Claude) + +- I looked at the LOD6 mesa-rim pair. After refine×2, the jagged crests are visibly smoothed, black + holes appear in the cap/ceiling, and a dark sliver shows on the left horizon. That confirms the + gate's rejection: the instrument is right this time, not the world. +- **Not merged into `assembler/world`:** the candidate knobs and the evaluator 6→7 bump add no default + output and would invalidate version stamps for nothing. The full L15 code (the extended gate with + shading, swap and connector-ID audits, and the candidate controls) is kept on side branch + `wip/l15-far-budget`. `assembler/world` stays at L14 code plus this report. +- Conclusion of L14+L15: far terrain has no exact or within-budget saving left with today's design. The + remaining far cost is the price of the current refinement and connector-repair geometry. diff --git a/Standalone/Research/WorldAssemblerM3/Linux15/captures/horizon-after-refineall.jpg b/Standalone/Research/WorldAssemblerM3/Linux15/captures/horizon-after-refineall.jpg new file mode 100644 index 0000000..e4e36c4 Binary files /dev/null and b/Standalone/Research/WorldAssemblerM3/Linux15/captures/horizon-after-refineall.jpg differ diff --git a/Standalone/Research/WorldAssemblerM3/Linux15/captures/horizon-before.jpg b/Standalone/Research/WorldAssemblerM3/Linux15/captures/horizon-before.jpg new file mode 100644 index 0000000..37784a6 Binary files /dev/null and b/Standalone/Research/WorldAssemblerM3/Linux15/captures/horizon-before.jpg differ diff --git a/Standalone/Research/WorldAssemblerM3/Linux15/captures/l1-camera-after-refineall.jpg b/Standalone/Research/WorldAssemblerM3/Linux15/captures/l1-camera-after-refineall.jpg new file mode 100644 index 0000000..f01fc92 Binary files /dev/null and b/Standalone/Research/WorldAssemblerM3/Linux15/captures/l1-camera-after-refineall.jpg differ diff --git a/Standalone/Research/WorldAssemblerM3/Linux15/captures/l1-camera-before.jpg b/Standalone/Research/WorldAssemblerM3/Linux15/captures/l1-camera-before.jpg new file mode 100644 index 0000000..0622003 Binary files /dev/null and b/Standalone/Research/WorldAssemblerM3/Linux15/captures/l1-camera-before.jpg differ diff --git a/Standalone/Research/WorldAssemblerM3/Linux15/captures/lod6-mesa-rim-after-refineall.jpg b/Standalone/Research/WorldAssemblerM3/Linux15/captures/lod6-mesa-rim-after-refineall.jpg new file mode 100644 index 0000000..0fc76dd Binary files /dev/null and b/Standalone/Research/WorldAssemblerM3/Linux15/captures/lod6-mesa-rim-after-refineall.jpg differ diff --git a/Standalone/Research/WorldAssemblerM3/Linux15/captures/lod6-mesa-rim-before.jpg b/Standalone/Research/WorldAssemblerM3/Linux15/captures/lod6-mesa-rim-before.jpg new file mode 100644 index 0000000..baae9d2 Binary files /dev/null and b/Standalone/Research/WorldAssemblerM3/Linux15/captures/lod6-mesa-rim-before.jpg differ