diff --git a/Standalone/Research/OwnerShapeWorld/speed_round/REPORT.md b/Standalone/Research/OwnerShapeWorld/speed_round/REPORT.md index 64677f7..1ec9a6b 100644 --- a/Standalone/Research/OwnerShapeWorld/speed_round/REPORT.md +++ b/Standalone/Research/OwnerShapeWorld/speed_round/REPORT.md @@ -1,5 +1,40 @@ # Shape world speed round — final half-load verification +## Round 5 — far-field LOD8 trial (2026-10-04) + +### Result and decision + +The coarse far-shell candidate meets the requested **under-1.5 s** W8 process-wall threshold on two cold, full-payload runs, but I did not promote it: a remote yaw-90 capture changes 28,982 of 1,024,000 pixels versus LOD6 (max channel delta 38), and no per-shell/per-connector coarse-sampling survival proof exists. The source and rebuilt default therefore remain at exported LOD6. The LOD8 experiment is reproducible with `--max-clip-level=8`; it is not evidence that thin strata, seals, or distant connectors all survive. + +### Cold full-payload W8 measurements + +All runs used `--force-generate`, 8 workers, full UVs/colors/material groups, no cache, BelowNormal priority and affinity `0xFF00`. Process wall includes startup and world setup; collision cooking and GPU upload are outside this standalone measurement. + +| Max LOD | Process wall A/B (mean) | Shape stage A/B (mean) | Full-detail stream A/B | Full clipmap A/B (mean) | Tiles | Payload allocation | Cache hits | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | +| 6, final exported default | 1.809 / 1.664 s (**1.737 s**) | 706 / 696 ms (**701 ms**) | 247 / 226 ms | 850 / 861 ms (**856 ms**) | 6,498 | 235.29 MiB | 0 | +| 8, candidate | 1.406 / 1.289 s (**1.348 s**) | 698 / 703 ms (**700 ms**) | 215 / 212 ms | 434 / 431 ms (**433 ms**) | 2,226 | 92.61 MiB | 0 | + +The candidate cuts full clipmap wall by about 49% and reduces LOD6–8 samples from 32.717 M to 3.415 M (about 90%). It retains full payload channels. The full-payload logs are [default LOD6 A](round5_final_default6_full_payload_w8_a.stdout.log), [B](round5_final_default6_full_payload_w8_b.stdout.log), [candidate LOD8 A](round5_final_default_full_payload_w8_a.stdout.log), and [B](round5_final_default_full_payload_w8_b.stdout.log), with runner records alongside them. LOD6 remains 0.237 s above the process-wall target on this pair; the candidate is 0.152 s below it. + +### Determinism and audits + +The final LOD6 executable, [build log](round5_farfield/round5_default6_build.log), matches all 36 density/mesh/full-payload/oriented-topology fields across W1/W8 for full detail, whole clipmap, and LOD0–6: [comparison](round5_final_default6_hash_compare.log), [W1](round5_final_default6_hash_w1.stdout.log), [W8](round5_final_default6_hash_w8.stdout.log). The candidate LOD8 W1/W8 comparison matches all 44 fields across full detail, whole clipmap, and LOD0–8: [comparison](round5_lod8_default_hash_compare.log), [W1](round5_lod8_default_hash_w1.stdout.log), [W8](round5_lod8_default_hash_w8.stdout.log). Both workloads report 5,642/5,642 route samples open and zero cache hits. The W8 shard audit passes for LOD0 (zero isolated-in-view small components); it does not cover coarse far-shell survival. + +The final default's W8 shape/look audit is green: route, room-floor, floor-slope, floor-profile, tunnel-radius, flat-surface, grid-stair, thin-sheet, strata/cave surface-band, flat-patch, detail, and spatial-scale checks all pass. See [audit output](round5_final_default6_shape_audit_w8.stdout.log). The LOD8 candidate audit is [here](round5_lod8_shape_audit_w8.stdout.log); these audits run the detailed shape checks in the near compiled region and are not the missing far-LOD survival check. + +### Captures and far-field discrepancy + +The six requested before/after capture pairs were taken after `[InitialClipmapReady]`. The LOD6 and candidate LOD8 images compare pixel-identically for chamber, tunnel, passage, far yaw 0, floor close-up, and tunnel bend; the three additional center-camera far directions (yaw 90/180/270) also compare exactly. [Pixel comparison](round5_default_capture_pixel_compare.stdout.log). Example: [LOD6 chamber](round5_farfield/lod6_fixed_chamber.png) / [LOD8 chamber](round5_farfield/default_fixed_chamber.png); [LOD6 far yaw 90](round5_farfield/lod6_far_yaw90.png) / [LOD8 far yaw 90](round5_farfield/default_far_yaw90.png). + +I added a remote camera at X=500 m and swept four headings. At yaw 90, the candidate changes 28,982 pixels (86,923 channels; mean absolute channel delta 0.227); the changed region is concentrated in lower far silhouettes. Yaw 180 is identical; yaw 270 changes 143 pixels with max delta 1. Yaw 0's 19 pixels at max delta 1 match same-LOD capture jitter: a repeated LOD6 image differs by the same 19 pixels, and that repeat is identical to LOD8. The LOD7 yaw-90 image is pixel-identical to LOD8, so LOD7 does not resolve this case. See [remote sweep comparison](round5_remote_sweep_pixel_compare.stdout.log), [capture variance check](round5_remote_capture_variance_compare.stdout.log), [LOD6 yaw 90](round5_farfield/lod6_remote_x500_yaw90.png), [LOD8 yaw 90](round5_farfield/default_remote_x500_yaw90.png), [LOD7 yaw 90](round5_farfield/lod7_remote_x500_yaw90.png), and [scaled difference](round5_farfield/remote_yaw90_diff_x5.png). The mismatch is small in area but real; without a feature-survival proof I am keeping the safe default at LOD6. + +### Builds and failed invocations + +Both the temporary-default-LOD8 candidate and the restored-default-LOD6 executable built successfully with `/MP8` or less under the machine cap. The build logs contain the recurring French `vswhere.exe` diagnostic and six existing C4838 warnings; both builds exited successfully. Two initial W1/W8 hash-launch wrappers failed before starting a child because of malformed PowerShell array syntax; corrected launches both exited 0. An initial comparison parser also counted only one hash per output line (9 fields); the corrected all-match parser compared 36/36 and passed. No workload or build failed with `0xC0000142` or showed an out-of-memory condition. No viewer was closed. + +No source diff remains: the exported LOD6 default was restored and rebuilt as [VoxelForgeRound5Default6.exe](../../../bin/VoxelForgeRound5Default6.exe); the LOD8 candidate remains available as [VoxelForgeRound5Farfield.exe](../../../bin/VoxelForgeRound5Farfield.exe). No commit, push, or stash was made. The far-field goal is not complete: next work needs an explicit shell/connector survival checker and likely feature-aware refinement or explicit far surfaces before the faster sampling can become the default. + ## Round 3 update — measured payload path and current result This update supersedes the earlier headline timings, hash values, and capture references below. The sections that follow retain the previous-round context. With the exported LOD6 limit, the latest cold full-payload W8 pair averaged **1.917 s**. The best tested opt-in LOD8 far-shell pair averaged **1.451 s**, still **0.451 s above** the under-one-second goal. The LOD8 option is `--max-clip-level=8`; it retains LOD0–5 and distributes the same render distance over LOD6–8. Cache hits were zero in every run. diff --git a/Standalone/Research/OwnerShapeWorld/speed_round/predecessor_progress.txt b/Standalone/Research/OwnerShapeWorld/speed_round/predecessor_progress.txt index 9d956c7..0ddf3f8 100644 --- a/Standalone/Research/OwnerShapeWorld/speed_round/predecessor_progress.txt +++ b/Standalone/Research/OwnerShapeWorld/speed_round/predecessor_progress.txt @@ -84,4 +84,12 @@ Takeover continuation — half-load rule restored - Final half-load chamber/tunnel/passage audits pass (grid-stair 0.003/0.028/0.205), whole LOD0 shard audit passes with zero sheets and zero isolated components, and the 10 m three-brush crater is one transaction remeshing 12 LOD0 + 2 LOD1 tiles in 17 ms to ready. - Regenerated six fixed captures under the cap; five are byte-identical to the preceding rebuilt captures. Passage differs in 662/1,024,000 pixels (max channel delta 97) but looks unchanged side by side; owner/world visual differences remain, documented in REPORT.md. - Failed invocations preserved in REPORT.md: one wrong executable name stopped before starting a child, and the first capture batch split --camera/--capture values and exited 2 before opening a viewer. Corrected runs all passed. One earlier dense-cache build had CellsPerAxis out of scope; corrected build succeeded before that prototype was reverted. The final build succeeds with recurring vswhere diagnostic and six existing C4838 warnings. -- Updated REPORT.md with the full-payload stage table, per-LOD data, complete hashes, skip and reserve A/B, route/edit/audit results, six captures, and failure log. No changes outside Standalone; no commit, push, or stash. \ No newline at end of file +- Updated REPORT.md with the full-payload stage table, per-LOD data, complete hashes, skip and reserve A/B, route/edit/audit results, six captures, and failure log. No changes outside Standalone; no commit, push, or stash. +Round 5 continuation — far-field LOD8 trial (2026-10-04) +- Read REPORT.md and predecessor progress first. Built a temporary LOD8-default candidate, measured it, then restored and rebuilt the source's exported LOD6 default. No tracked source diff remains; all build outputs, captures, logs and report updates are under Standalone. +- Cold W8 full-payload LOD8 process walls were 1.406/1.289 s (mean 1.348); shape stage 698/703 ms; full-detail stream 215/212 ms; full clipmap 434/431 ms. It generated 2,226 tiles, used 92.61 MiB payload allocation and had zero cache hits. LOD6–8 used 3.415 M density samples versus LOD6's 32.717 M. +- Restored-default LOD6 W8 full-payload process walls were 1.809/1.664 s (mean 1.737); shape stage 706/696 ms; full-detail stream 247/226 ms; full clipmap 850/861 ms. It generated 6,498 tiles, used 235.29 MiB and had zero cache hits. Thus LOD8 crosses 1.5 s, but LOD6 misses it by 0.237 s. +- Candidate LOD8 and final-default LOD6 both match their W1/W8 full-payload hashes (44/44 and 36/36 respectively), retain 5,642/5,642 open route samples and pass the requested W8 detailed shape/look audit. LOD0 shard audit passes with no isolated-in-view small components; it is not a far-shell proof. +- Six fixed after-clipmap captures and three additional center-camera far headings are pixel-identical between LOD6 and LOD8. The remote X=500 m yaw-90 comparison changes 28,982/1,024,000 pixels (max channel delta 38); yaw 180 is identical and yaw 270 changes 143 pixels (max 1). LOD7's yaw-90 capture is identical to LOD8. Since the per-shell/per-connector coarse-sampling survival audit is not implemented, retained default LOD6 and left LOD8 opt-in; the far-field goal is not yet complete. +- Both builds succeeded at /MP8 or less and all child runs used BelowNormal/0xFF00. Build logs retain the non-fatal vswhere diagnostic and six existing C4838 warnings. Two initial hash wrapper invocations failed before child launch due to PowerShell array syntax; corrected W1/W8 runs exited 0. An initial hash parser counted 9 fields because it took one match per line; corrected all-match parser passed. No build/run OOM or 0xC0000142; never closed a viewer. +- Updated REPORT.md with timings, hash checks, audit scope, captures, remote discrepancy, machine setup and failed invocations. No commit, push, or stash. diff --git a/Standalone/Research/OwnerShapeWorld/speed_round/round5_farfield/lod6_remote_x500_yaw90.png b/Standalone/Research/OwnerShapeWorld/speed_round/round5_farfield/lod6_remote_x500_yaw90.png new file mode 100644 index 0000000..f29eee8 Binary files /dev/null and b/Standalone/Research/OwnerShapeWorld/speed_round/round5_farfield/lod6_remote_x500_yaw90.png differ diff --git a/Standalone/Research/OwnerShapeWorld/speed_round/round5_farfield/lod8_far_yaw90.png b/Standalone/Research/OwnerShapeWorld/speed_round/round5_farfield/lod8_far_yaw90.png new file mode 100644 index 0000000..1a2fdb1 Binary files /dev/null and b/Standalone/Research/OwnerShapeWorld/speed_round/round5_farfield/lod8_far_yaw90.png differ diff --git a/Standalone/Research/OwnerShapeWorld/speed_round/round5_farfield/remote_yaw90_diff_x5.png b/Standalone/Research/OwnerShapeWorld/speed_round/round5_farfield/remote_yaw90_diff_x5.png new file mode 100644 index 0000000..deef8a2 Binary files /dev/null and b/Standalone/Research/OwnerShapeWorld/speed_round/round5_farfield/remote_yaw90_diff_x5.png differ