- 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
252 lines
16 KiB
Markdown
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.
|