wip(assembler): round S1 -- one Core voxel-size source; per-tile feature lists (islands)
AVoxelWorld::CoreVoxelSizeCm (default 25, 32 voxels/tile) flows through plan, field, mesher, content, water, atmosphere, edits and collision. Staged-owner BuildHost passes at 20 cm (SurfaceWorld + islands, W1/W8/W16, anchors, BP edits, collision) with a fixed-25cm negative control; default-size hashes match round 4; Core off stays legacy 12.5 cm. Reusable BuildWorldAssemblyFeatureTileListV1; wired into FloatingIslands only so far. 256-island stress: tile p95 112.5 -> 2.0 ms, 0 mismatches, dropped-feature control fails. Content placement measured (no populated cells): island ground search 7.25 ms/cell vs legacy 0.29 ms -- open. Outside-review evaluation in Round5/REPORT.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
This commit is contained in:
1 parent
111cf3d262
commit
d6e69420e8
25 files changed
+2136
-250
No files matched your search
@@ -1283,6 +1283,49 @@ sampled ground/cap heights plus the Z bounds of intersecting type-2/type-4 manif
|
||||
with overlapping player edits or another strate keep the full mesh range. See round 6 of the M1
|
||||
report for per-kind streaming results and validation limits.
|
||||
|
||||
### 8.22 Core voxel scale, per-tile features and placement measurements — World Assembler M3 Round 5
|
||||
|
||||
The opt-in Core world has one physical voxel-size source on AVoxelWorld: CoreVoxelSizeCm, default
|
||||
25 cm and constrained to the supported 12.5–25 cm range for this integration. GetActiveVoxelSizeCm()
|
||||
is the runtime conversion point for Core coordinates. CoreTileVoxelCount is 32 voxels; tile length
|
||||
is derived as voxel size × 32 × 2^LOD. Core-off remains on the legacy 12.5 cm VOXEL_SIZE path.
|
||||
Owner/Core compatibility conversions use the resolved values and must not assume that a Core voxel
|
||||
is twice a legacy voxel.
|
||||
|
||||
The resolved physical size is rounded to microns and carried with tileVoxelCount in the immutable
|
||||
Core world configuration. Non-default Core size participates in plan and season identity. The
|
||||
default 25 cm value is omitted from the added identity suffix so recorded default SurfaceWorld and
|
||||
M2 recipe/fixture identities keep their prior form. Water remains fixed for the season; player
|
||||
carve/fill remains unrestricted. Collision support, clipmap keys and LOD stay in Core voxel units
|
||||
and derive centimetres at the adapter/mesh boundary.
|
||||
|
||||
Floating Islands builds a deterministic candidate feature list per tile using conservative
|
||||
inclusive bounds. Candidate IDs retain canonical feature order. A worker-scoped context lets density
|
||||
samples evaluate only the tile's candidate islands and connectors. If bounds cannot prove a feature
|
||||
irrelevant, it stays in the candidate list; future caves, shafts, pits and passages should use the
|
||||
same common tile-list builder. The Round 5 audit reports exact full-field/candidate equality and
|
||||
deliberately removes a feature as a negative control. This API does not change feature planning or
|
||||
field identity. Air-side pruning uses a conservative lower bound for the version-2 scaled root
|
||||
ellipsoids and their smooth-min reductions; a geometric AABB distance alone can overstate their
|
||||
positive density and change hashes outside the visible island bounds. BuildHost compared the staged
|
||||
owner plan's candidate field against the full scan at every queried sample and restored the Round 4
|
||||
island aggregate hashes.
|
||||
|
||||
The current configuration is per-world. A later per-strate size needs a physical-space field-query
|
||||
contract at boundaries, transition meshes with deterministic LOD ancestry, edit rasterization that
|
||||
can touch both resolutions without gaps or double application, and a stable, canonically ordered
|
||||
strate-ID-to-size map in plan/season identity. Border and LOD hashes must cover both sides; mixed-size
|
||||
edits and replays must match on every worker count. Until those rules exist, one world size is the
|
||||
supported contract.
|
||||
|
||||
Round 5 measured content evaluation per placement-grid cell and stationary manager update on staged
|
||||
owner settings. SurfaceWorld uses its known heightfield and made no density queries in the Core
|
||||
measurement. Floating Islands still uses the exact generic density march; a top-anchor shortcut
|
||||
measured slower and was reverted. The sampled authored entries produced no placements, so these
|
||||
figures measure anchor-search work and steady update overhead, not spawn/asset-instancing cost.
|
||||
See Standalone/Research/WorldAssemblerM3/Round5/REPORT.md for the test matrix, owner-plan hash proof,
|
||||
and content-placement measurements.
|
||||
|
||||
## 9. Multiplayer model (listen-server first, dedicated-friendly)
|
||||
|
||||
> **Status: transport is DESIGN ONLY — nothing is networked in-tree yet** (no `Replicated`/`HasAuthority`/RPCs; a
|
||||
|
||||
Reference in new issue
Block a user