Files
VoxelForge/Standalone/Research/OwnerShapeWorld/round2/REPORT.md
T
Fr0zkaandClaude Opus 5.5 97c0455939 standalone: shape-world look round 2 -- shards gone, calmer layered relief, still 0.72 s / 1.6 s cold
- Removed the thin automatic room-support slabs that left floating caps (in-view detached thin
  sheets 9 -> 0; the audit now also fails on isolated small components).
- Bounded 16-voxel floor/wall blend (18 rejected: it created a sub-voxel sheet), 3-voxel
  strata/cave blend, C1 tunnel radius profile (0 radius/slope steps at joins).
- Surface relief: broad octave with amplitude modulation instead of uniform bumps.
- Cold, no cache: 64 m full detail 0.924 s (8 workers) / 0.715 s (16); whole view 2.016 / 1.605 s.
- 1-worker and 6-worker hashes match; 5,642/5,642 passage samples open.
Not solved: regular bands in the narrow passage shafts, a few slivers on tile boundaries, faint
wall/floor plates; close-view mean surface distance to the owner field got worse (see REPORT.md).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
2026-10-04 04:09:59 +02:00

252 lines
16 KiB
Markdown

# Shape world round 2 — final measurements and visual status
## Status
The exact final source builds, meets both cold-generation targets, preserves all
5,642 passage-centerline samples, and is deterministic across repeat runs and
1/6 workers. The final mesh audit finds no sub-voxel sheets in the view and no
isolated small components. Tunnel radius and slope values agree at shared
joins.
The visual target is **not fully met**. The floor-to-wall transition is softer,
and the large floating shards from the earlier capture are gone, but the fixed
chamber still has a few plate-like lips/slivers. The passage close-up still
shows repeated annular bands. The final pictures are visibly different from
the owner's field, especially in relief hierarchy and tunnel profile. The
flat-patch and grid-stair tests also miss some of the visible chamber detail;
their pass results are not a visual sign-off.
## Final source and build
All source/build changes are under `Standalone/`:
- `Source/StandaloneShapeWorld.h` evaluates hierarchical relief with a broad
32-voxel octave, a modulated 16-voxel octave, and a 6-voxel octave at 0.18
amplitude.
The coherent detail remains bounded to an 8-voxel surface band. Tunnel and
passage radii use a nine-control-point low-pass profile plus cubic Hermite
interpolation, matching radius and slope at shared control points. Floor
profiles are C1 blended; the floor-clip blend radius is 16 voxels. Thin
positive support overlays were removed.
- `Source/StandaloneViewer.cpp` includes the surface, grid-stair, route, owner
comparison, and mesh-component/sheet audits. The temporary skirt-disable
probe switch was removed.
- `Source/StreamingWorld.h` and `Build.ps1` allow 16 workers; the build uses
`/MP16`.
The final exact-source build is `final_build_exact.log` and produced
`bin/VoxelForgeStandalone.exe`. It succeeded. The compiler still emits
the existing six C4838 double-to-float warnings in `VoxelStrateManager.cpp`;
the setup script also prints that `vswhere.exe` is not recognized, but that
diagnostic did not prevent the build.
Timing, determinism, comparison, and capture processes used Normal priority
and affinity `0xFFFF`, one heavy process at a time. Cold timing, determinism,
and capture runs used `--force-generate`; timing runs report zero mesh-cache
hits. The 8-worker numbers are for comparison with earlier rounds; the
16-worker numbers use the full machine. Times below are shape-build stage plus
uncached mesh-generation wall time.
| Cold job | Workers | Local shapes | Signs/intervals | Surface band | Far parents | Shape stage | Mesh wall | Total |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| 64 m full-detail area, 960 tiles | 8 | 58.3 ms | 136.0 ms | 558.8 ms | — | 754.5 ms | 170 ms | **0.924 s** |
| 64 m full-detail area, 960 tiles | 16 | 58.1 ms | 124.9 ms | 389.2 ms | — | 573.5 ms | 141 ms | **0.715 s** |
| Whole view, 6,498 tiles through LOD6 | 8 | 58.5 ms | 133.3 ms | 538.7 ms | 188.7 ms | 923.7 ms | 1.092 s | **2.016 s** |
| Whole view, 6,498 tiles through LOD6 | 16 | 57.3 ms | 126.0 ms | 407.8 ms | 190.0 ms | 785.8 ms | 819 ms | **1.605 s** |
Both targets are met: <=1 s for the full-detail area and <=5 s for the whole
view. Peak process memory reported by `RunMachine.ps1` was 0.21/0.17 GB for the
8/16-worker full-detail runs and 0.32/0.37 GB for the 8/16-worker whole-view
runs. Fresh timing logs: `final_recheck_full_detail_w8.stdout.log`,
`final_recheck_full_detail_w16.stdout.log`, `final_recheck_whole_view_w8.stdout.log`,
and `final_recheck_whole_view_w16.stdout.log`. Total time is shape-stage time
plus cold stream wall time; each run reported zero cache hits.
## Defect checks
| Check | Before | Final source | Result and limitation |
| --- | --- | --- | --- |
| In-view disconnected/sheet candidates | 9 sheets, 149 triangles under 1 voxel; failed | 0 sheets, 0 sheet triangles, 0 isolated small components; 5 small components touch tile boundaries | Pass. The audit now exits nonzero for either a thin sheet or an isolated small component. Boundary components remain separately reported because per-tile meshes do not establish whether they connect across neighbors. |
| Tunnel radius joins | Earlier extension/profile trial reached 0.0077-voxel endpoint mismatch; legacy control-radius step was 2.9156 voxels | 0.000000-voxel endpoint delta and 0.00000000 slope delta at 280 shared joins; smoothed adjacent-control step 1.7487 voxels | Numeric join check passes. The annular bands in the close-up show that C1 continuity alone does not remove the visible profile rhythm. |
| Tunnel grid-stair index | Correct baseline tunnel scan without `--round-tunnels`: relative join step 0.434; it fails at the final 0.400 threshold | 0.028 at threshold 0.400 | Pass on the fixed tunnel view. |
| Chamber grid-stair index | 0.041; below the 0.400 threshold | 0.003 at threshold 0.400 | Numeric improvement, but the baseline already passed. The audit does not catch every plate visible in the chamber image. |
| Passage grid-stair index | 0.276; below the 0.400 threshold | 0.205 at threshold 0.400 | Numeric improvement, but the baseline already passed. |
| Detail/flat-patch audit, chamber | Detail standard deviation 1.0056 voxels; flat-patch share 0.1% in the baseline audit | Detail standard deviation 0.6683 voxels; flat-patch share 5.0%, largest patch 433 samples | The audit reports PASS, but these results do not establish that the visible join plates were removed. |
| Passage routes | 5,642/5,642 open | 5,642/5,642 open in chamber, tunnel, and passage audits | Pass. This is a centerline sign test, not a character-capsule collision test. |
The final full-view sheet check is `final_recheck_whole_view_shard_audit_v2.stdout.log`.
The selected 16-voxel floor blend came after an 18-voxel probe that introduced
one boundary sheet (20 triangles, estimated thickness 0.497 voxel) and failed
with exit 13. That probe is recorded in
`final18_whole_view_shard_audit_w16.stdout.log`; radius 18 was reverted.
The grid-stair detector does not satisfy the original request on every view:
it fails on the pre-fix tunnel view and passes after, but the pre-fix chamber
and passage metrics already passed its threshold. The images still show why
that check needs better targeting.
## Owner-field comparison
Before and after use the same scan settings: 8 workers, 960 full-resolution
tiles for chamber/tunnel/passage, 4-sample mesh-vertex stride, and the same
fixed cameras. The far comparison uses 4,770 LOD6 tiles. “Changed signs” is the
share of lattice samples where the shape field differs from the owner field;
surface distances are sampled symmetric nearest-vertex distances, not a
continuous Hausdorff distance. Unmatched samples are listed separately.
| View | Lattice samples | Changed signs before → after | Mean surface distance before → after | Max distance before → after | Unmatched samples before → after |
| --- | ---: | ---: | ---: | ---: | ---: |
| Chamber | 35,103,600 | 2,098,617 (5.978%) → 2,069,214 (5.895%) | 1.0325 m → 1.0826 m | 6.4677 m → 6.4840 m | 9,393 → 8,832 |
| Tunnel | 35,103,600 | 2,098,617 (5.978%) → 2,069,214 (5.895%) | 1.0325 m → 1.0826 m | 6.4677 m → 6.4840 m | 9,393 → 8,832 |
| Passage | 37,240,000 | 1,232,883 (3.311%) → 1,230,337 (3.304%) | 0.9814 m → 1.0292 m | 6.3422 m → 6.3750 m | 12,602 → 12,520 |
| Far view, LOD6 | 9,470,835 | 856,305 (9.041%) → 856,305 (9.041%) | 2.1667 m → 2.1588 m | 5.3070 m → 5.3070 m | 783,976 → 783,967 |
The changed-sign share improves slightly in the close views; surface distance
gets worse on average there. The far field changes almost not at all. Taken
together, these numbers do not show a material increase in owner similarity.
Final logs are `final16_compare_baseline_{chamber,tunnel,passage}_w8`,
`fine18_compare_after_{chamber,tunnel,passage}_w8`,
`final16_compare_baseline_far_lod6_w8`, and
`fine18_compare_after_far_lod6_w8`.
## Determinism
Two cold 6-worker runs and one cold 1-worker run at the passage camera produced
the same hashes, with zero cache hits and 5,642/5,642 route samples open:
| Field | All three runs |
| --- | --- |
| Full detail | `0x0c985b329e1aaf79` |
| LOD0 | `0x778716fa053056c1` |
| LOD1 | `0x49e560dbbca29f45` |
Fresh matching runs are `final_recheck_determinism_w6_a.stdout.log`,
`final_recheck_determinism_w6_b.stdout.log`, and
`final_recheck_determinism_w1.stdout.log`. The exact final-source rebuild is
recorded in `final_build_exact.log`.
## Captures and visual review
The final after captures were made from the exact 16-voxel floor-blend and
0.18-fine-amplitude source with fresh
generation. The `before_*.png` captures use the saved pre-fix executable; owner
references are the fixed captures under `../final/`.
| View | Camera | Before | Final after | Owner |
| --- | --- | --- | --- | --- |
| Chamber | `(-11.75,-123.25,-19.85)`, yaw 0° | `before_chamber.png` | `final_after_chamber.png` | `../final/chamber_fixed_owner.png` |
| Tunnel | `(-11.75,-123.25,-19.85)`, yaw 90° | `before_tunnel.png` | `final_after_tunnel.png` | `../final/tunnel_fixed_owner.png` |
| Passage | `(-39.19,6.27,-28.51)`, yaw 63° | `before_passage.png` | `final_after_passage.png` | `../final/passage_fixed_owner.png` |
| Far view | `(-11.61244,-118.2212,-19.8452)`, yaw 0° | `before_far.png` | `final_after_far.png` | `../final/far_owner.png` |
| Passage-floor close-up | `(-39.19,6.27,-25.51)`, yaw 63°, pitch -25° | `before_passage_floor_closeup.png` | `final_after_passage_floor_closeup.png` | No separate owner close-up was supplied |
| Tunnel bend | `(-198.97,-99.57,-45.58)`, yaw 33.59°, pitch 23.17° | `before_tunnel_bend.png` | `final_after_tunnel_bend.png` | No separate owner close-up was supplied |
I reviewed the four fixed after/owner pairs and both close-ups. The chamber
transition is softer than before, but small plate-like lips and dark slivers
remain. The tunnel still has a visible wedge and its forms repeat more
regularly than the owner's. The passage view has broad horizontal shelves and
large dark cutouts; its landing alone is present in the owner image, but the
surrounding shape differs. The close-up shows conspicuous concentric bands.
The far view reads as cloudy relief, while the owner image has larger,
connected cave forms with finer detail. Overall, this is a fast coherent
alternate field, but the final images are **not visibly close to the owner's
field** and the wall/floor plates and tunnel bands remain.
## Failed and rejected builds/runs
The failures below are retained in the logs; none is presented as a successful
final check.
- `build_hardjoin.stderr.log` failed with MSVC D8022 because it looked for
`standalone.rsp` in the wrong working directory. `build_hardjoin_retry` and
the final exact-source build succeeded.
- `resume2_before_tunnel_audit.stdout.log` is the invalid baseline audit that
included `--round-tunnels`; it failed the stair audit at 0.768. Keep it as a
failed run, not as the baseline measurement. The corrected run without that
option is `resume2_before_tunnel_audit_correct.stdout.log` (0.434 at the
older 0.450 threshold); the same corrected baseline scan under the tightened
0.400 threshold is `resume2_before_tunnel_diagnostics.stdout.log` and fails
at 0.434.
- Baseline mesh sheet audit `resume2_before_mesh_shard_audit_8.stdout.log`
failed with 9 sheets/149 triangles. Earlier candidates also failed:
`resume2_trial_mesh_shard_audit_8.stdout.log` (1 sheet/8 triangles) and
`resume2_bounded_mesh_shard_audit_16.stdout.log` (1 sheet/20 triangles).
The separate radius-18 trial failed with 1 sheet/20 triangles and was
reverted; radius 16 passes.
- `resume2_curvefloor_tunnel_audit_8.stdout.log` is the rejected whole-segment
curve trial: only 3,279/5,642 route samples stayed open. The current route
test passes 5,642/5,642.
- Failed floor/detail trial gates include
`resume2_after_tunnel_audit_8.stdout.log` (smoothed floor-slope delta 1.082
and flat-patch share 21.8%), `resume2_floorrelief_tunnel_audit_16.stdout.log`
(slope delta 2.383), the `resume2_familyblend12_*` logs (0.807), the
`resume2_profile_baked_relief_*` logs (0.807/2.373), and
`resume2_trial_smoothlow_capture.stdout.log` (slope delta 1.082). The
no-floor-bridge trial `resume2_no_floorbridges_tunnel_audit_16.stdout.log`
failed its flat-patch gate at 20.2%. These variants were discarded.
- Earlier join trials in `passage_fixed_after_extensions.stdout.log` and
`tunnel_overlap_floor_audit.stdout.log` reported 0.0077-voxel endpoint
mismatch against a 0.005 threshold. The final radius-profile join audit is
0.000000 voxels.
- The first 18-voxel capture used a repository-root-relative output path while
the runner's working directory was `Standalone/`. Capture failed repeatedly;
I stopped only that viewer process and reran with the correct path. The
corrected 18-voxel captures succeeded, but the 18-voxel mesh audit failed
as described above.
- The 13-control-point radius-filter probe built and captured successfully,
but the close-up and bend images showed no visible improvement over the
nine-point filter, so the source was restored and rebuilt.
- The 6-voxel smooth-union probe did not remove the shaft bands; the
12-voxel union added lumpy ledges. Both were rejected. Disabling skirts also
produced no visible change and its temporary CLI switch was removed.
- The first floor close-up camera probe was below the surface and was rejected
as invalid framing; `final_after_passage_floor_closeup.png` is the raised
replacement.
- During this resume, `candidate_chamber.png` and `candidate_tunnel.png`
tested a continuous combined SDF for roughness with a weaker floor-detail
boost. The wall became too smooth, so the candidate was rejected.
- Candidate 2 used broader, quieter relief and a reduced floor boost.
`candidate2_whole_view_shard_audit.stdout.log` failed with one 48-triangle
sheet at 0.459 voxel thickness; its chamber flat-patch share rose to 13.7%.
- Candidate 3 reduced only the floor boost. Its grid and sheet checks passed,
but the fixed captures stayed too quiet and still showed the floor join.
Candidate 4 increased the broad octave; its one-voxel sheet check passed,
but the tunnel capture still showed floating plates and boundary components.
- Candidate 5 added an independent broad amplitude envelope.
`candidate5_whole_view_shard_audit.stdout.log` failed with one 18-triangle
sheet at 0.678 voxel thickness. The fixed captures still showed plates and
shards.
- Candidate 6 moved floor clipping after the primitive union.
`candidate6_chamber_audit.stdout.log` and
`candidate6_tunnel_audit.stdout.log` failed the grid-surface audit;
`candidate6_whole_view_shard_audit.stdout.log` found one isolated small
component, and `candidate6_chamber.png` / `candidate6_tunnel.png` showed
severe lattice stairs and shards. Its first shard-audit run printed `status=FAIL`
but exited 0 because the exit condition ignored isolated components. The
final source corrects that exit condition; its shard audit passes with zero
isolated components and zero sub-voxel sheets.
Other retained `GridStairAudit status=FAIL` logs from the exploratory sequence
are `after_chamber_grid`, `after_csg_chamber_grid`, `after_csg_tunnel_grid`,
`after_fade12_chamber_grid`, `after_floor_metadata_chamber_grid`,
`after_floor_metadata_tunnel_grid`, `after_floorblend_chamber_grid`,
`after_floorblend_tunnel_grid`, `after_scan16_chamber_grid`,
`after_tunnel_grid`, `critical_shapecontains_tunnel_audit`,
`final_compare_baseline_passage_w8`, `final16_compare_baseline_passage_w8`,
`final_grid_tunnel`,
`floor_profile_tunnel_audit`, `floor_slope_tunnel_audit`,
`proxy_fade_tunnel_audit`, `resume2_familyblend12_tunnel_capture`,
`resume2_no_roomclips_chamber_capture`,
`resume2_no_roomclips_tunnel_capture`,
`smooth_capsule_union_tunnel_audit`, and `union_width3_tunnel_audit`. They
record failed or rejected variants/baselines, not the final 16-voxel source.
The corrected grid detector still does not meet the requested before/after
criterion on every fixed view: the baseline chamber (0.041) and passage
(0.276) metrics were already below the 0.400 threshold, while the baseline
tunnel (0.434) fails and the final tunnel (0.028) passes. The final captures
also still show wall/floor plates and repeated tunnel bands, so these checks
and images do not justify a visual-completion claim.
No commit, push, or stash was made.