feat(simulation): VoxelColumn walking skeleton (T-1028)
D-239 §1/§7/§10 — the lower derivation chain end-to-end with the AlluvialPlain fallback only (specialized families are T-1029). - chunk_context.rs: ChunkContext (64m) — basin_direction + meander phase/wavelength + active-channel params. NO per-tile flow_direction[64x64] (D8 ~152m coarser than a chunk, D-239 §10); features >64m seed from Region-or-higher. SeedDomain::ChunkContext=8. - voxel.rs: VoxelColumn (1m) composing the D-228 tile axes (TerrainMaterial / FloorMaterial=None / Vegetation / Water / elevation_m). Derive-on-demand + VoxelCache (LRU BTreeMap, never persisted per D-227). Domain warp (T-1026) wired through: f64 warp -> as-i32 truncation to the voxel address; all material/morphology gates integer (D-010 — the meander wavelength f64 is truncated before the Water decision). - AlluvialPlain generator: Soil/Wetland terrain, climate vegetation, integer-meander channel (Shallow/Deep) from ChunkContext. The other 7 families are dispatch stubs (canonical terrain material, fall back to AlluvialPlain geometry) — no panic. 29 new tests incl end-to-end determinism (same seed/pos -> identical column), cache hit/miss/eviction/re-derivation, warp-applied. cargo test 1563 pass, clippy -D warnings clean, fmt clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -97,6 +97,9 @@ pub enum SeedDomain {
|
||||
/// Anti-squaring domain warp (D-239 §4, T-1026).
|
||||
/// Keyed by per-tile position id (see `atlas::domain_warp::pos_to_id`).
|
||||
DomainWarp = 7,
|
||||
/// ChunkContext derivation (64 m carrier, D-239 §1, T-1028).
|
||||
/// Keyed by region-scale position id (see `atlas::chunk_context::pos_to_id`).
|
||||
ChunkContext = 8,
|
||||
}
|
||||
|
||||
/// A position in the deterministic seed tree (D-224).
|
||||
@@ -253,6 +256,7 @@ mod tests {
|
||||
assert_eq!(SeedDomain::Block as u64, 5);
|
||||
assert_eq!(SeedDomain::Npc as u64, 6);
|
||||
assert_eq!(SeedDomain::DomainWarp as u64, 7);
|
||||
assert_eq!(SeedDomain::ChunkContext as u64, 8);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
Reference in New Issue
Block a user