Files
VoxelForge/Standalone/Research/WorldAssemblerM3/Linux52/REPORT.md
T
Fr0zkaandClaude Opus 5.5 408c14baff perf(mesher): shared proof-driven sampling skips certified-uniform blocks (L52); FI 7.1 -> 5.6 s; R21
The shared marching-cubes mesher applies its 8-cell block proofs at step 2 for standalone shape contexts
and skips density-grid fills outside certified-uniform blocks (plus a one-sample normal halo); mixed and
unknown blocks still sample exactly. FI certified-air boxes 1,959 -> 14,119; FI LOD1 samples -63%. FI whole
view 7.08 -> 5.61 s (-21%), moving p50 about -33%; SW unchanged. Geometry hashes identical (no version
bump); proof audit 36.9 M samples, 0 violations, Clang and GCC. Source stamp now covers the standalone
mesher copy. Research R21 (deepened): native Core cave generator design.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
2026-10-24 23:53:43 +02:00

6.7 KiB
Raw Blame History

Linux 52 — shared proof-driven meshing

Date: 2026-10-24. Branch: assembler/world.

Critical path and profile

Profiles used --profile-lod-work --mesh-coverage with 12 workers. In the FI profile, shape setup took 0.887 s, first tile was ready at 1.186 s, the near ring at 1.351 s, and the whole view at 5.194 s. After the ring, the remaining tile drain took 3.843 s. LOD0/1 meshing remains the largest work pool. LOD7/8 together still cost about 7.66 worker-seconds, but those jobs overlap with other workers and are not a 7.66 s wall-time stage.

SW took 0.437 s for shape setup, 0.510 s to first tile, 0.524 s to the near ring, and 1.572 s for the whole view. Its post-ring tail is 1.048 s. LOD6 connector evaluation and LOD8 meshing have the largest remaining worker sums. The trace shows the serial shape prefix followed by the outstanding-tile drain; it does not include queue-wait timestamps, so it cannot separate scheduler saturation from far-tile ordering.

Shape-stage timings (before → candidate, ms):

Recipe Local shapes Intervals/signs Surface band Far parents Total
FI 35.1 → 37.3 84.8 → 85.8 689.2 → 706.6 50.4 → 49.9 866.5 → 886.9
SW 34.4 → 36.5 82.7 → 78.1 261.1 → 259.2 52.3 → 53.8 438.2 → 436.2

W12 worker sums per LOD (seconds; before → candidate):

LOD FI SW
0 30.214 → 28.633 1.994 → 2.032
1 17.079 → 2.829 1.034 → 1.075
2 1.977 → 2.092 1.014 → 1.078
3 1.647 → 1.683 0.729 → 0.783
4 1.952 → 2.004 1.299 → 1.368
5 0.777 → 0.792 0.502 → 0.531
6 2.677 → 2.650 1.817 → 1.896
7 2.045 → 1.972 1.046 → 1.098
8 5.665 → 5.684 2.723 → 2.884

FI LOD0 density samples fell 18.951 M → 17.883 M (−5.6%); LOD1 fell 12.948 M → 4.802 M (−62.9%). SW LOD0/1 sample counts were unchanged at 21.952 M and 19.208 M.

Change and gain

The shared mesher now applies its existing 8-cell block proofs at Step 2 for standalone shape contexts. It omits density-grid fills outside certified uniform blocks and their one-sample normal halo. Mixed and unknown blocks still use exact sampling. FI certified-air boxes rose from 1,959 to 14,119; mixed boxes stayed at 18,857 and unknown boxes at 240. FI meshing worker time fell 46.44 s → 30.60 s, while proof classification rose 6.53 s → 22.47 s. These are overlapping worker sums, not wall time.

The full-tier five-pair medians show FI whole-view readiness 7.080 s → 5.614 s (−20.7%), with first tile 1.273 s → 1.264 s and near ring 1.448 s → 1.441 s. SW measured 1.720 s → 1.718 s (−0.1%), first tile 0.535 s → 0.533 s, near ring 0.552 s → 0.549 s. A separate direct five-pair set measured FI 6.800 s → 5.430 s and SW 1.642 s → 1.649 s.

Moving submit-to-completion p50/p95 (ms; one before/after paired sweep per recipe and distance):

Recipe / step Before Candidate
FI / 8 m 418.3 / 631.7 279.4 / 463.7
FI / 24 m 790.1 / 1,406.4 535.1 / 898.8
SW / 8 m 24.8 / 45.9 23.3 / 46.5
SW / 24 m 54.9 / 99.2 57.1 / 101.4

The moving percentiles use 144 entering tiles at 8 m and 314 at 24 m. The direct static timings ran five pairs per recipe; the full verifier also ran its own five cost pairs per recipe. Moving measurements were not repeated five times.

An earlier broad Core experiment classified every fine tile. All 62,400 SW boxes were unknown; it added 11.7 classifier worker-seconds and about 20 ms of wall time, so that change was reverted. The retained shared mesher path benefits FI with negligible SW classifier work and no SW sample-count change. The source-stamp helper now hashes nested Standalone/Source/VoxelForge sources, fixing the previous blind spot that let a mesher rebuild carry an L51 stamp.

Proofs, hashes, version, and tiers

The brute-force uniform-block audit checked 27,727 blocks and 36,904,637 samples under both Clang and GCC: zero fallbacks, unknowns, or violations. Clang/GCC W1/W8/W12, random-camera sweeps, and the 30-cell matrix passed. Fast, medium, and full also passed capture, walkability, passage, transition, hole, and ring gates.

Owner full-detail signatures match L51 for both recipes (density / mesh / payload / topology):

  • FI: 1feaa7bd5d80b60d / a818654be89790ac / 370ff80451105a39 / 06e507557aa70173
  • SW: ace56c8f205238ad / a9c603a1248de6b8 / ea55f1f4fcc6a894 / 5ea7bc78a1b678ae

No geometry hash changed, so farHorizonVersion remains 5; no version bump was needed. Final source stamp and manifest SHA-256: 5c2acf01030d994d5983bc6390664f049b9945a95316da747e131b126c51b041. Mesher SHA-256: 927e41985b13941fe538da7fc81ae136dabf970218a4bf76a022a81a71e17024. Stamp-helper SHA-256: 205a4c0fa4d19679f5f2e201e40efcb9aee0b1320991030404d54d781aea31f4. Final headless binary SHA-256: Clang cd10303927bdc64179e8c395089ffc86be75d03844170c6be8e1b2ac39b6e152; GCC 5838c8192900a2930adf162ac360863578509b117ef6f5d5b5b1dbad8b8d5824. Both builds used FP contraction off.

Tier Result Elapsed
Fast PASS, 136 checks 150.7 s
Medium PASS, 484 checks 634.3 s
Full PASS, 1,084 checks; 30/30 cells 1,421.5 s

Failed runs and remaining work

The first full run with GCC's default FP contraction failed SW W1 LOD2 hash stability. Rebuilding GCC with FP contraction off made the Clang/GCC peer matrix pass; the final tier summaries now use identical binary hashes. An initial timing attempt had no timing directory and launched no process. The first mesher build also exposed the source-stamp blind spot; it was discarded and rebuilt after fixing the manifest.

FI remains 5.61 s whole-view with a 1.44 s near ring; shape setup alone is 0.89 s and LOD0 still costs 28.63 worker-seconds. SW remains 1.72 s with a 0.55 s near ring. Reaching about 1 s needs a much cheaper or overlapped shape stage, less LOD0 mixed-surface work, and scheduler/LOD-drain tracing to improve far-tile completion without slowing the near ring.

Orchestrator review (Claude)

Accepted. The stamp matches the final Clang and GCC builds (5c2acf01…). FI whole view 7.08 → 5.61 s (−21%); FI moving p50 is about −33% at 8 m and 24 m; SW is unchanged. Geometry hashes are identical, so there's no version bump. The proof audit covered 36.9 M samples with 0 violations. Two process fixes come with it:

  • the stamp now covers the standalone mesher copy (Standalone/Source/VoxelForge), which had let a mesher rebuild carry the old stamp;
  • GCC must build with FP contraction off, or SW W1 LOD2 diverges. That's the L2 lesson, enforced again.

Cumulative across L51 and L52: FI 16.74 → 5.61 s. Next measured bottlenecks: shape setup (0.89 s, serial), LOD0 mixed-surface work, and far-tile drain ordering.