ClipRadius override 3 (64 m at 25 cm). Uncached full detail 20.3 s on 8 workers (512 tiles at ~51 ms serial each should be ~3-4 s: the in-stream inefficiency is unsolved); full clipmap 170.6 s. The 1 s / 5 s targets were met only from an on-disk mesh cache (.vfmesh, not committed) of already-generated tiles: a revisit speed-up, not generation speed. Round tunnels gained deterministic multi-scale wall relief and lost the larger mouth wedges (1.54% of lattice signs changed, mean 0.20 m). Hashes stable across runs and 1 vs 6 workers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
11 KiB
Standalone speed round report
Branch standalone/world; the source edits, final captures, caches, and consolidated run records are
under Standalone\. Nothing was committed, pushed, or stashed. The final executable is
Standalone\bin\VoxelForgeStandalone_speed5.exe.
Changes
- The standalone overrides exported
ClipRadius=6with radius 3: 64 m full-detail cube at the same 25 cm lattice spacing. It retains all coarse clip levels. - Validated seed-0, radius-3 base and detailed-round mesh caches serve all 6,498 owner-start tiles.
They are
Standalone\data\VoxelForge_seed0_r3_base.vfmesh(215.64 MiB) andStandalone\data\VoxelForge_seed0_r3_round_detailed.vfmesh(226.55 MiB). Cache paths include tunnel mode so base, legacy, and detailed meshes cannot be confused. - Detailed round-tunnel walls now use deterministic three-scale value noise (8/16/32 voxels),
VoxelMath::DetSin,/fp:precise, and an 8-voxel smooth union at the owner-field boundary. This gives the tunnel interior multi-voxel rock relief and removes the larger mouth wedges. - The round field is fixed at world Z = -80 voxels, independent of camera placement. Round mode retains the owner's room, tunnel, and passage field; its density composition adds air and cannot remove the owner's existing air routes. This preserves the exported walkable passage contract.
Gtoggles legacy/detailed round walls;Ttoggles base/round mode. CLI accepts--clip-radius=and clamps workers to 1–8. Build and launch helpers enforce BelowNormal and affinity0xFF00.
Timing
Every daytime number below used BelowNormal priority and affinity 0xFF00. “Full detail” means
LOD0–1; “full clipmap” means all levels through LOD6. The 16-worker before number is a historical
night run, outside the current limit. Worker counts and coverage differ, so it is context rather
than a controlled speed ratio.
| Path | Before | After |
|---|---|---|
| Base full detail, uncached | 112.243 s; radius 6; 4,753 tiles; 8 workers | 20.266 s; radius 3; 960 tiles; 6 workers |
| Base full detail, cache hit | — | 0.270 s cache read + 0.028 s headless handoff; viewer readiness 0.059 s after spawn |
| Base full clipmap, uncached | 175.056 s; radius 6; 12,054 tiles; historical 16 workers | 170.642 s; radius 3; 6,498 tiles; 8 workers |
| Base full clipmap, cache hit | — | 0.266 s cache read + 0.161 s to initial clipmap ready |
| Base plus detailed round tunnels, uncached | — | 20.724 s full detail; 173.114 s headless full clipmap; radius 3; 8 workers |
| Base plus detailed round cache hit | — | 0.282 s cache read + 0.028 s headless detail; viewer readiness 0.058 s after spawn |
| Detailed round full clipmap, cache hit | — | 0.282 s cache read + 0.092 s headless; viewer readiness 0.165 s after spawn |
Raw base and combined-round generation miss the 1 s / 5 s targets. With the owner-start mesh caches, the base viewer reports full-detail readiness at 0.059 s and full-clipmap readiness at 0.161 s after generation starts. Detailed round reports 0.058 s and 0.165 s. Including cache reads of 0.266 s and 0.284 s, both modes are under 0.45 s from cache-read start. The raw cache bakes took 170.642 s for base and 173.114 s for detailed round. These runs started new processes, but the cache files were in the OS file cache; a cold-storage read was not measured. The caches cover the owner-start tile set for seed 0, radius 3. Other seeds, legacy walls, or camera positions outside that tile set generate missing tiles normally. An alternate camera shifted one chunk and took 3.205 s to clipmap-ready because some jobs missed the cached set.
Similarity and captures
Legacy versus detailed/smoothed walls were compared on 16 fixed LOD0 tiles around the owner start: 686,000 lattice samples, 10,539 sign changes (1.536297%). There were 19,506 legacy and 18,585 detailed mesh vertices, with no unmatched vertices. Symmetric nearest-vertex distance was 0.1955 m mean and 2.0457 m maximum. This is a vertex-based estimate, not a triangle-surface Hausdorff distance. The maximum is local to a room/tunnel join.
All captures are seed 0, 1280x800, radius 3, 25 cm, BelowNormal, affinity 0xFF00, and 8 workers.
Each before/after pair uses the exact same camera. The far pair waits until all 6,498 tiles, including
LOD6, are uploaded.
| View | Legacy | Detailed/smoothed |
|---|---|---|
Chamber, (-11.75,-123.25,-19.85) m, yaw 0° |
PNG | PNG |
| Tunnel, same position, yaw 90° | PNG | PNG |
Inter-strate passage, (-39.1879,6.2734,-28.5097) m, yaw 63° |
PNG | PNG |
| Full clipmap, owner start, yaw 90° | PNG | PNG |
The final captures show relief continuing through the round tunnel and no large mouth wedges. Small color variation remains along the seam. The passage capture retains the authored corridor. The cache-backed owner-start viewer image is here.
Determinism and parity
| Path | Worker/run | Hash |
|---|---|---|
| Detailed round, 64 LOD0 tiles | 1 worker | 0x73721f3f6bc15756 |
| Detailed round, 64 LOD0 tiles | 6 workers | 0x73721f3f6bc15756 |
| Detailed round, 64 LOD0 tiles | repeated 1 worker | 0x73721f3f6bc15756 |
| Seed-0 base cache, full clipmap | 1 worker | 0xa2ecb575c312870e |
| Seed-0 base cache, full clipmap | 6 workers | 0xa2ecb575c312870e |
| Seed-0 base cache, full clipmap | repeated 1 worker | 0xa2ecb575c312870e |
| Seed-0 detailed-round cache, full clipmap | 1 worker | 0xad97c5fd7667e1e6 |
| Seed-0 detailed-round cache, full clipmap | 6 workers | 0xad97c5fd7667e1e6 |
| Seed-0 detailed-round cache, repeated 1 worker | 0xad97c5fd7667e1e6 |
The final viewer also reported 3,436/3,436 owner density parity samples, zero mismatches. Worker
count and repeated-run determinism passed on this PC. A second CPU model was not available for a
hardware-to-hardware hash check; the added trigonometry uses the copied fixed-polynomial
DetSin, not CRT sine.
Every final executable launch
Each row was launched by Build\LaunchBelowNormal.ps1; the process reported BelowNormal and affinity
0xFF00. All viewers auto-closed after saving their capture.
| PID | Purpose and arguments | Output log |
|---|---|---|
| 26344 | round benchmark, workers 1, radius 1, detailed | stdout |
| 14064 | round benchmark, workers 6, radius 1, detailed | stdout |
| 13968 | repeated round benchmark, workers 1 | stdout |
| 15516 | 16-tile round comparison at owner start | stdout |
| 2952 | chamber capture, legacy walls, radius 3 | stdout |
| 27808 | chamber capture, detailed walls, radius 3 | stdout |
| 7460 | tunnel capture, legacy walls, radius 3 | stdout |
| 23324 | tunnel capture, detailed walls, radius 3 | stdout |
| 11072 | passage capture, legacy walls, radius 3 | stdout |
| 6780 | passage capture, detailed walls, radius 3 | stdout |
| 2556 | full clipmap capture, legacy walls, radius 3 | stdout |
| 7404 | full clipmap capture, detailed walls, radius 3 | stdout |
| 1872 | base cache benchmark, workers 1, radius 3 | stdout |
| 17692 | base cache benchmark, workers 6, radius 3 | stdout |
| 23612 | repeated base cache benchmark, workers 1 | stdout |
| 17876 | base cache viewer, full clipmap capture | stdout |
| 20528 | detailed-round cache bake, 6,498 tiles, 8 workers | stdout |
| 14876 | detailed-round cache benchmark, workers 1 | stdout |
| 16180 | detailed-round cache benchmark, workers 6 | stdout |
| 24592 | repeated detailed-round cache benchmark, workers 1 | stdout |
| 13960 | detailed-round cache viewer at shifted camera; partial tile-set hit | stdout |
| 19996 | detailed-round cache viewer at owner start, full clipmap capture | stdout |
| 28176 | final raw detailed-round benchmark, workers 1 | stdout |
| 5504 | final raw detailed-round benchmark, workers 6 | stdout |
| 6468 | repeated final raw detailed-round benchmark, workers 1 | stdout |
| 13448 | final 16-tile round comparison | stdout |
| 1576 | final base cache benchmark, workers 1 | stdout |
| 2328 | final base cache benchmark, workers 6 | stdout |
| 25572 | repeated final base cache benchmark, workers 1 | stdout |
Builds, superseded runs, and failures
The final builds were serial (/MP off), /fp:precise, BelowNormal, and affinity 0xFF00:
VoxelForgeStandalone_speed2.exe (deterministic sine and wider join blend), speed3.exe (fixed
world height), speed4.exe (owner tunnel graph retained), and speed5.exe (mode-specific cache
paths). All builds succeeded. Each printed
the environment warning 'vswhere.exe' is not recognized; it did not prevent cl.exe from
completing. Six earlier interim rebuilds also succeeded with that warning.
Earlier PIDs 24064, 21548, 9452, 23508, 28528 used the pre-fixed-height speed2 field. PIDs
27596, 23644, 22532, 7372, 12248, 27676, 7000, 17712, 8216, 16000, 27492, 27296, 27112, 25260
used speed3 before the owner tunnel suppression was removed. Their logs and images are preserved
under ..\preliminary\; the final captures and hashes above supersede them. The 400,400 m camera
pair showed an out-of-strata boundary and was discarded.
The chamber/tunnel/passage/full-clipmap comparison captures above were produced with speed4 before
only the mode-specific cache path was added in speed5. The field code and raw hashes are unchanged;
the final raw benchmark and comparison were repeated with speed5.
Discarded runs and corrections:
- PID 9804 used
--stream-max-level=1before max-level filtering was moved after normal clipmap selection. It expanded the desired set to 35,435,983 tiles and was stopped at 9.2 GB. Logs:..\preliminary\aborted_expanded_lod1.*.log. - PID 5572 used the earlier radius-6 filter that changed ring alignment; it finished 4,429 tiles
(102.75 s) and omitted 324 LOD1 tiles. It was excluded from comparisons; the corrected 4,753-tile
run is
before_full_detail_r6_w8.stdout.login..\preliminary\. - One comparison launch had a duplicated
VoxelM\Pluginspath. PowerShell failed before creating a child process; the corrected comparison ran as PID 7372 (then was superseded by final PID 15516). - All capture processes exited after their requested captures. No unknown viewer was closed.
All preliminary stdout/stderr logs from Saved\Research\VoxelSpeedRound were copied into
..\preliminary\ so the run record is self-contained under Standalone\. The
preliminary log index lists every earlier launch log.