Files
VoxelForge/Standalone/Research/WorldAssemblerM3/Round1/REPORT.md
T
Fr0zkaandClaude Opus 5.5 53a1e69af7 wip(assembler): M3 round 1 -- native FloatingIslands recipe in Core (standalone)
Bounds 517 boxes, 0 missed, negative control caught; capsule route 1044 centers, raised-route control
fails; W1/W8/W16 stable (field bf3ce7da876431e2); 39 ms native vs 64 ms legacy. My review: islands read
as thin flat pads with a radial pinch under them, not rock; next round fixes the look.

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

11 KiB
Raw Blame History

M3 Round 1 — FloatingIslands standalone Core proof

Result: the new finite island field builds in Core and the standalone legacy bridge. The recipe, bounds audit, worker-count field hashes and supported route pass for the frozen owner probe. The native result is intentionally denser and more routeable than the stochastic legacy slice; this is a measured visual difference, not a parity claim.

Native recipe and deliberate differences

Added FloatingIslandRecipeV1, FloatingIslandManifestV1, FloatingIslandFieldV1 and the planner to Core. The island field is a reusable feature family on the island channel; it is not a branch inside the owner FloatingIslands generator. The standalone manifest carries recipe and plan hashes, seeded anchors, stable IDs, a connected cluster graph, finite influence boxes, bridge parameters and route points. Coordinates and density use the existing fixed scale of 1/256 voxel; one Core voxel remains 25 cm and negative density is solid.

The visual oracle was loaded from type_6_FloatingIslands.json and queried through the legacy GetDensityAt evaluator. Its settings are seed 0, spacing 112 voxels, density 0.5, radii 24–48 voxels, thickness ratio 0.6, vertical jitter 0.6, top flatten 0.6, roughness 3 voxels, blend radius 6 voxels and boundary seal 4 voxels. The native recipe uses those shape ranges and aligns its middle island to a detected legacy top at (48, 16, -1904.035) voxels.

The native shape uses a flat-ish top, an explicit finite underside plane, tapered radial support and a bounded 12.6016-voxel three-harmonic lobe warp. This intentionally replaces the legacy query-space 3D fBM warp with a stable bounded contour function. The legacy source has no explicit lower plane in its island max-SDF; the native bottom closes the taper instead of carrying the legacy centerline degeneracy below the nominal island bottom. Native surface roughness remains bounded to the recipe's 3-voxel envelope.

The planner guarantees five primary route islands. islandDensityQ16 selects up to two optional side sites; this seed selected one, producing six islands and five sharp-tag-ready connectors. This differs from the legacy stochastic density roll, which decides whether every grid site exists. The planner keeps the route-connected islands in a narrower vertical band than the legacy strate: adjacent height changes are clamped to the capsule grade contract, with a 5% grade reserve, and the serialized route is fitted above its sampled capsule footprint. Connectors land 0.62 radii into the island tops, use a 4-voxel half-width and 3-voxel thickness, and extend the field through the landings. This is why the local native slice contains substantially more rock than the old slice. The fixed-season water block is not emitted here; player edits remain unrestricted, and this generation audit applies the route law only to system-generated geometry.

Bounds and route audits

Island AABBs include radius, maximum lobe displacement, taper Z, roughness and smoothing reach. Connector AABBs include the swept bridge width, endpoint span, thickness, roughness and smoothing reach. A box intersecting any feature influence box returns unknown; a box outside every feature box gets the certified all-air interval. The audit sampled each local field box and the void beside the connectors.

Audit Result
Island / connector influence boxes 6 / 5
Bounds boxes / point samples 517 / 13,932
Intersecting boxes left unknown 108
Missed bounds 0
Void boxes proven air 4
Shrunken-island-bound negative control Detected
Bound audit Pass

The bounds negative control removes the lobe and blend reach from a candidate island box, then finds negative density outside that false box while excluding every other feature's valid influence box.

The final-field route has 117 waypoints and 116 segments. Its analytic capsule sweep samples route centers no farther apart than 0.5 voxel, 17 capsule cross-section positions and five support probes per center; at least three support probes must find rock within the recorded search depth.

Route result Value
Swept centers / capsule field samples 1,044 / 283,968
Support probes 6,344
Capsule samples inside rock 0
Unsupported centers 0
Grade failures 0
Minimum sampled density 40 subvoxels (0.15625 voxel)
Route sweep Pass

The negative control raises the whole route by 8 voxels. It is rejected at all 1,044 swept centers for lack of support (zero capsule collisions), so the support test detects the failure mode independently of capsule intersection.

Determinism and existing hashes

Planner calls repeated three times with identical canonical JSON and hashes. The 32,768-point native field stream hashes identically at W1, W8 and W16. Stable IDs for this plan are:

Feature Stable IDs
Islands e6e461e18b3a9c87, 2bc1820baba047f6, adc259cbe2a395e9, 62a5f29ab581c2b0, 0412f78b71b39ceb, 7855fb022cc561c9
Connectors eaa5dd310e846520, 034023599b466c51, 08e698cf39fd6c22, 3794e6d8e5033e8b, 4962fa885545fb26

The standalone check reparsed and validated the existing manifests without changing their content hashes: M1 round-1 c87ae279b0e26f53 and SurfaceWorld round-4 8933693d9560ba9f. The existing Core field evaluators and M2 mesher implementation were not edited; the full M2 actor/mesher hash matrix was not replayed in this standalone round.

New island content Hash
Recipe 111825edfebea17f
Plan 65675554b7aa947e
Manifest 03a4685554edce1a
Field samples W1 / W8 / W16 bf3ce7da876431e2 each

Matched captures and legacy timing

Five CPU-rendered capture pairs use the same detected island anchor, orthographic camera and scale. The cluster and close-up fields were sampled at 4-voxel and 2-voxel grids respectively. The tile/LOD view overlays 32-voxel tile and 64-voxel LOD reference planes on the canonical field mesh; it is a review view, not a production mesher seam-closure test. No viewer or GPU was launched.

contact_sheet.jpg — 640×1,290 px, 68,601 bytes. Individual matched pairs are in captures/; each is 640×258 px and 12,798–18,890 bytes. They show the overview, underside, lobed edge/cliff, tile/LOD references and planned route. The legacy side of the route pair is unmarked because the legacy generator has no planner route.

The same 32,768 quantized query positions were timed serially against the direct legacy owner evaluator and FloatingIslandFieldV1::densitySubvoxels, excluding plan generation, mesh extraction, rendering and Unreal scheduling:

Evaluator Time
Legacy owner bridge (GetDensityAt) 63.62 ms
Native island field 39.31 ms
Native / legacy 0.618× (about 1.62× faster)

This is a point-query comparison for the island field, not a full-world or tile-meshing benchmark. In the same sparse sample, 90 legacy samples and 885 native samples were solid: 14 were legacy-only and 809 native-only. The overall sign mismatch is 823/32,768 (2.512%), mostly because air dominates the sample volume. The side-by-side captures and these occupancy counts show that percentage must not be read as visual or occupancy parity; the routeable native cluster is denser in this narrow vertical slice than the stochastic owner field.

Run ledger

All builds and audit runs stayed below the 15-minute stop limit. No process crashed and no 0xC0000142 retry occurred. The audit wrapper samples its test process; the final process peaked at 45.8 MiB private memory and the highest observed failed-audit process was 159.3 MiB. The existing MSVC setup prints a French vswhere.exe-not-found warning before successfully finding vcvars64.bat; the standalone build also emits existing float-conversion warnings in VoxelStrateManager.cpp.

Failed run Failure Correction / outcome
Initial Target All compile New island methods referenced interval/detail types declared later; one Q use was outside its namespace. Forward declarations and qualified fixed-scale constant; subsequent Core/All builds passed.
Second Target All compile One remaining unqualified Q in FloatingIslandFieldV1::isValid. Qualified it; subsequent builds passed.
First audit-wrapper invocation Default probe path resolved one directory too high; audit executable did not start. Corrected the probe path.
First audit-harness compile Windows min/max and TEXT macros broke standard-library expressions. Set NOMINMAX and removed the conflicting compatibility macro around Windows.h.
Route attempt 1 445 blocked capsule samples; 7 grade failures. Fit route height to the full capsule footprint and start grade fitting.
Route attempt 2 0 blocked; 19 unsupported centers; 3 grade failures. Added smaller route intervals and a grade reserve.
Route attempt 3 0 blocked; 23 unsupported centers; 10 grade failures. Added precise first-failure diagnostics; set a 5% grade reserve.
Route attempt 4 0 blocked; 38 unsupported centers; grade passed. Extended bridge landings into the island tops.
Route attempt 5 17 blocked samples; support and grade passed. Raised the recorded capsule clearance from 0.25 to 0.5 voxel.

The final Target All build and final standalone audit passed. The final run is retained in run_ledger.txt; audit metrics, plan data and query breakdown are in audit.json.

Source inventory and round boundary

New source files:

  1. Standalone/Core/src/FloatingIslandsInternal.h — Core field, serializer, planner, bounds and route audits.
  2. Standalone/Research/WorldAssemblerM3/Round1/FloatingIslandsAudit.cpp — legacy comparison and standalone audit driver.
  3. Standalone/Research/WorldAssemblerM3/Round1/BuildFloatingIslandsAudit.ps1 — BelowNormal build/run wrapper with time and test-process memory caps.
  4. Standalone/Research/WorldAssemblerM3/Round1/RenderFloatingIslandCaptures.py — CPU-only small matched capture renderer.

Changed existing source/docs: Standalone/Core/include/VoxelForgeCore/VoxelForgeCore.h, Standalone/Core/src/VoxelForgeCore.cpp (include only), Standalone/Core/API.md, and this report. Source/ and Standalone/Source/ were not edited. No owner project files, editor, .uasset, commit, push or stash were touched.

This round ends at standalone Core proof. FloatingIslandManifestV1 is not yet embedded in WorldAssemblyManifest or the Unreal adapter. The reference-plane capture does not close production tile/LOD seams, the route is not cooked into Unreal collision, and the feature emits no seasonal water body. These belong to later M3 integration/look rounds; player-edit policy remains the owner's unrestricted choice.