L74's passage bound omitted the 0.21 m wall relief and 0.20 m floor relief, so its whole-tile
proof was unsound in principle (no tested view hit it). Passage support is now bounded per route
segment by four parameter-subinterval boxes using Catmull-Rom derivative extrema, local max
radius and relief padding. Stratum slicing only at LOD0-2 in FI/VS. Legacy sub-tile block
certificates are audit-only (runtime version was slower). TN regression (-80,-20,-3218) kept.
Exact full-grid vs skip hashes on every tile, 4 views, Clang/GCC, W1/W8/W12; control caught;
80-camera sweep 0 violations. Whole view vs c67b200: SW -1.3%, FI -7.6%, TN -2.3%, VS +0.2%.
Compiles in the Linux UE host (VFHostEditor, 27/27 actions).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
86 lines
6.6 KiB
Markdown
86 lines
6.6 KiB
Markdown
# L75 report
|
||
|
||
## Whole-tile veto census
|
||
|
||
Across 9,661 sampled tiles, 4,917 were uniform in the full-grid sample. The proof certified 3,093 (63% of those uniform tiles, 32% of all visits); 1,824 uniform tiles were vetoed.
|
||
|
||
| First veto | Missed uniform tiles |
|
||
|---|---:|
|
||
| Detail envelope too wide | 0 |
|
||
| Composer candidate | 0 |
|
||
| Passage bounds | 289 |
|
||
| Primitive overlap | 236 |
|
||
| Transition | 141 |
|
||
| Stratum crossing | 924 |
|
||
| Smooth-min slack | 0 |
|
||
| Other / native interval inconclusive | 234 |
|
||
|
||
The 234 `other` cases are SW native interval queries that remain inconclusive. Per-stratum veto rows are in `Saved/Linux/l75/logs/veto-audit.json`.
|
||
|
||
## Changes and sub-tile proof
|
||
|
||
The dominant veto was stratum crossing. The classifier now slices its z interval at exact stratum boundaries and evaluates each slice; this reduced crossing vetoes from 1,354 to 924. Passage bounds now include the 0.21 m wall and 0.20 m floor relief, plus Catmull-Rom centerline extrema. The resulting bounds remain conservative; passage vetoes rose to 289 because the old bounds omitted real carve support.
|
||
|
||
Sub-tile checks use a block-local legacy interval and the same detail, composer, passage, primitive, transition, stratum, and smooth-min vetoes. A certified block is skipped; an inconclusive block falls back to full density sampling. Runtime legacy checks are enabled for TN, where the regression was found; the audit override exercises them in all four views.
|
||
|
||
The permanent TN regression is at `(-80,-20,-3218)`: density is `+0.0633840263` (air). The failed proofs bounded the nominal passage route but missed its wall/floor relief, which extends the carve outside that bound. All four containing blocks now classify mixed and sample the point. See `Saved/Linux/l75/logs/tn-block-regression.log`.
|
||
|
||
## Falsification and timing
|
||
|
||
Clang/GCC full-grid versus skip comparisons matched mesh, payload, and topology hashes on every tile in all four views. W1/W8/W12 comparisons also had zero mismatches. The deliberately too-tight negative control was caught in all four views. The 20-position-per-view sweep completed 80/80 positions with zero block-proof violations; hit rates were SW 83.68%, FI 69.16%, TN 73.80%, VS 73.64%. The fast tier passed in 318.6 s.
|
||
|
||
Three interleaved pairs per view compared the rebuilt `c67b200` baseline (source stamp `aacea94c`) with L75 (`ebc12def`). Whole-view medians:
|
||
|
||
| View | Before | L75 | Change |
|
||
|---|---:|---:|---:|
|
||
| SW | 2.405 s | 2.510 s | +4.37% |
|
||
| FI | 4.839 s | 5.351 s | +10.58% |
|
||
| TN | 4.477 s | 4.976 s | +11.15% |
|
||
| VS | 2.464 s | 3.187 s | +29.34% |
|
||
|
||
The L75 proof work improved coverage but did not improve whole-view time. Full-detail unknown boxes rose from c67 to L75: SW 1,424→1,493, FI 9,391→15,636, TN 3,760→11,342, and VS 176→5,543. Further work should isolate the conservative primitive bounds and full-sampling fallbacks before claiming a speedup. Far LOD refinement was left unchanged.
|
||
|
||
## Builds, source changes, and failed runs
|
||
|
||
Clang 19 and GCC 14 builds passed at source stamp `ebc12def`. The fast tier passed. After timing, the requested `VFHostEditor` Linux Development build was launched with `-MaxParallelActions=4` and the required process limits. Bundled CoreCLR failed before UnrealBuildTool or C++ compilation with `GC heap initialization failed (0x8007000E)` / `Failed to create CoreCLR`; retrying with bounded .NET GC settings had the same failure. The UE compile is therefore unverified under the mandated 6 GiB address-space limit. Log: `Saved/Linux/l75/ue-build-driver.log`.
|
||
|
||
No top-level Unreal module `Source/` files changed. The standalone source changes are `Standalone/Source/StreamingWorld.h` and `Standalone/Source/VoxelForge/Private/VoxelMarchingCubesMesher.cpp`. The cached L74 binary failed its owner-data preflight and was excluded; the timing baseline was rebuilt from `c67b200`. No final hash, sweep, negative-control, or fast-tier run failed.
|
||
|
||
## Net subset (follow-up)
|
||
|
||
Kept the corrected passage proof and TN regression. Passage support is now stored as four parameter-subinterval bounds per route segment. Each bound uses Catmull-Rom derivative extrema where smoothing can occur, otherwise linear endpoints, plus the local maximum radius and outward padding. The 0.21 m wall relief is included along the route; the 0.20 m floor relief is added only for upper-entry segments where that field can apply. The four proof boxes are a conservative union; runtime passage-feature bounds also use their union. The refreshed sampled-tile audit found 5,028 uniform tiles and 1,881 misses:
|
||
|
||
| First veto | Missed uniform tiles |
|
||
|---|---:|
|
||
| Detail envelope | 0 |
|
||
| Composer candidate | 0 |
|
||
| Passage bounds | 313 |
|
||
| Primitive overlap | 199 |
|
||
| Transition | 0 |
|
||
| Stratum crossing | 1,135 |
|
||
| Smooth-min slack | 0 |
|
||
| Other / native interval inconclusive | 234 |
|
||
|
||
Sub-tile legacy block certificates are audit-only. The committed native block path remains enabled, with its full-grid fallback when any block candidate is uncertified. Stratum slicing is limited to LOD0–2 in FI and VS; SW and TN use the conservative crossing veto. The TN probe `(-80,-20,-3218)` remains air at `+0.0633840263`; all four covering blocks were Mixed/unknown, with zero violations across 62,261,518 audited samples.
|
||
|
||
Final evidence passed on source stamp `17470bc8`:
|
||
|
||
- Clang/GCC full-grid versus skip: 16 comparisons, exact mesh/payload/topology hashes on every tile; zero mismatches.
|
||
- W1/W8/W12: 32 comparisons, zero mismatches.
|
||
- Negative control: caught in all four views.
|
||
- Sweep: 20 positions per view, 80/80 zero violations and exact tile hashes. Hit rates were SW 24.13%, FI 22.05%, TN 25.88%, VS 22.32%.
|
||
- Fast tier: PASS, 318.9 s.
|
||
|
||
Three interleaved whole-view pairs against rebuilt `c67b200`:
|
||
|
||
| View | Before median | Net subset | Change |
|
||
|---|---:|---:|---:|
|
||
| SW | 2.441 s | 2.410 s | −1.27% |
|
||
| FI | 4.975 s | 4.596 s | −7.62% |
|
||
| TN | 4.569 s | 4.462 s | −2.34% |
|
||
| VS | 2.479 s | 2.484 s | +0.20% |
|
||
|
||
The UE `VFHostEditor` Linux Development build succeeded after timing, with `-MaxParallelActions=4` and no address-space limit (27/27 actions, 68.4 s). It emitted three `CreateSectionGroup` deprecation warnings at `VoxelWorld.cpp`. No top-level Unreal `Source/` files changed; the standalone `Source/` changes are `Standalone/Source/StreamingWorld.h` and `Standalone/Source/VoxelForge/Private/VoxelMarchingCubesMesher.cpp`.
|
||
|
||
Failed experiments: the original L75 runtime legacy-block configuration and the mixed-parent native-block gate regressed whole-view timing, so they were dropped. The earlier UBT attempt under the 6 GiB address-space cap failed before C++ compilation because CoreCLR could not initialize; the authorized uncapped UBT build passed.
|