From b9fd7a3fc8e8be98f4a7fe7d7b632f114850d612 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sat, 2 May 2026 18:11:13 +0200 Subject: [PATCH 01/15] =?UTF-8?q?feat(simulation):=20add=20server/src/atla?= =?UTF-8?q?s/=20=E2=80=94=20full=20Phase=201=20generation=20pipeline?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ten-module atlas package implementing the D-194–D-218 district generation stack: heightmap loader, BodyWorldState LRU cache, D8 drainage routing, background generation queue, five-phase attractor-matching, three-component district mix, block irregularity, tile condition thresholds, and the Phase 1 skeleton generator that wires them into DistrictSkeleton. Closes #916 #917 #918 #919 #920 #922 #923 #924 #899. Co-Authored-By: Claude Sonnet 4.6 --- server/src/atlas/attractor_matching.rs | 618 +++++++++++++++++++++++ server/src/atlas/block_irregularity.rs | 111 +++++ server/src/atlas/body_world_state.rs | 249 ++++++++++ server/src/atlas/district_mix.rs | 359 ++++++++++++++ server/src/atlas/drainage.rs | 661 +++++++++++++++++++++++++ server/src/atlas/gen_queue.rs | 361 ++++++++++++++ server/src/atlas/heightmap.rs | 201 ++++++++ server/src/atlas/mod.rs | 14 + server/src/atlas/skeleton_gen.rs | 561 +++++++++++++++++++++ server/src/atlas/tile_condition.rs | 191 +++++++ 10 files changed, 3326 insertions(+) create mode 100644 server/src/atlas/attractor_matching.rs create mode 100644 server/src/atlas/block_irregularity.rs create mode 100644 server/src/atlas/body_world_state.rs create mode 100644 server/src/atlas/district_mix.rs create mode 100644 server/src/atlas/drainage.rs create mode 100644 server/src/atlas/gen_queue.rs create mode 100644 server/src/atlas/heightmap.rs create mode 100644 server/src/atlas/mod.rs create mode 100644 server/src/atlas/skeleton_gen.rs create mode 100644 server/src/atlas/tile_condition.rs diff --git a/server/src/atlas/attractor_matching.rs b/server/src/atlas/attractor_matching.rs new file mode 100644 index 000000000..424c39ce2 --- /dev/null +++ b/server/src/atlas/attractor_matching.rs @@ -0,0 +1,618 @@ +//! Attractor-matching five-phase pipeline for settlement placement (D-211). +//! +//! Given a body's `Vec` and a list of cities, assigns +//! each city to the terrain feature that best fits its economic role and +//! population tier. +//! +//! **Phases (D-211):** +//! 1. Score matrix build: `CompatibilityMatrix[economic_role][attractor_type] × strength × (1/cost)` +//! 2. Tier A greedy: `NameLocked` or pop ≥ 1,000,000 — assigned first, highest-score greedy. +//! 3. Hungarian (Tier B+C): pop 50,000–999,999 cities — optimal global assignment. +//! 4. Synthetic overflow: any remaining city gets a synthetic `PlainCenter` attractor. +//! 5. Name fulfillment check: warn if any atlas city was not placed. +//! +//! **Mismatch flagging (D-211):** +//! - score < 0.35 → WARNING +//! - score < 0.15 → ERROR (flagged for manual review; generation continues) + +use tracing::{error, warn}; + +use crate::simulation::generator::{ + AttractorType, CompatibilityMatrix, GeographicAttractor, SettlementClass, +}; + +// --------------------------------------------------------------------------- +// Input types +// --------------------------------------------------------------------------- + +/// One city record from atlas_city_names, projected for matching. +#[derive(Debug, Clone)] +pub struct CityRecord { + pub city_id: u64, + pub name: String, + pub settlement_class: SettlementClass, + pub population: i64, + /// One of: manufacturing, financial, agricultural, extraction, + /// service_mixed, institutional, transit_hub, research, military, residential. + pub economic_role: String, +} + +// --------------------------------------------------------------------------- +// Output +// --------------------------------------------------------------------------- + +/// Result of matching one city to one attractor (real or synthetic). +#[derive(Debug, Clone)] +pub struct CityPlacement { + pub city_id: u64, + pub position: (u16, u16), + pub attractor_type: AttractorType, + pub score: f32, + pub synthetic: bool, +} + +// --------------------------------------------------------------------------- +// Score matrix helpers +// --------------------------------------------------------------------------- + +/// Row index in CompatibilityMatrix for an economic_role string. +/// Order from D-195: manufacturing(0), financial(1), agricultural(2), extraction(3), +/// service_mixed(4), institutional(5), transit_hub(6), research(7), military(8), residential(9). +fn role_row(economic_role: &str) -> usize { + match economic_role { + "manufacturing" => 0, + "financial" => 1, + "agricultural" => 2, + "extraction" => 3, + "service_mixed" => 4, + "institutional" => 5, + "transit_hub" => 6, + "research" => 7, + "military" => 8, + "residential" | _ => 9, + } +} + +/// Column index in CompatibilityMatrix for an AttractorType. +/// Order from D-195: RiverMouth(0), CoastalAccess(1), RiverCrossing(2), ValleyFloor(3), +/// PassEntrance(4), LakeShore(5), PlainCenter(6). +fn attractor_col(at: &AttractorType) -> usize { + match at { + AttractorType::RiverMouth => 0, + AttractorType::CoastalAccess => 1, + AttractorType::RiverCrossing => 2, + AttractorType::ValleyFloor => 3, + AttractorType::PassEntrance => 4, + AttractorType::LakeShore => 5, + AttractorType::PlainCenter => 6, + } +} + +/// Compute the raw match score between a city and an attractor. +/// Score = matrix_weight × attractor.strength × (1.0 / terrain_modification_cost). +fn cell_score( + city: &CityRecord, + attractor: &GeographicAttractor, + matrix: &CompatibilityMatrix, + terrain_cost: f32, +) -> f32 { + let row = role_row(&city.economic_role); + let col = attractor_col(&attractor.attractor_type); + let weight = matrix.weights[row][col]; + let cost_factor = if terrain_cost > 0.0 { 1.0 / terrain_cost } else { 1.0 }; + weight * attractor.strength * cost_factor +} + +// --------------------------------------------------------------------------- +// Phase 3: Hungarian algorithm (minimization) +// --------------------------------------------------------------------------- + +/// O(n³) Hungarian algorithm for assignment problem. +/// +/// Input: `cost[i][j]` — cost of assigning task j to worker i. +/// Lower cost = better fit. Converts the maximization problem to minimization +/// by using `max_score - score` as cost. +/// +/// Returns `assignment[i] = j` for each row i. +fn hungarian(cost: &[Vec]) -> Vec { + let n = cost.len(); + if n == 0 { + return Vec::new(); + } + let m = cost[0].len(); + if m == 0 { + return vec![usize::MAX; n]; + } + + // Pad to square n×n if m < n (more cities than attractors handled by overflow). + let sz = n.max(m); + let mut c: Vec> = vec![vec![0.0; sz]; sz]; + for i in 0..n { + for j in 0..m { + c[i][j] = cost[i][j]; + } + // Pad extra columns with high cost so overflow cities pick them last. + for j in m..sz { + c[i][j] = f32::MAX / 2.0; + } + } + // Pad extra rows with 0 cost (dummy workers). + // Already initialized to 0. + + // Standard O(n³) Hungarian. + let inf = f32::MAX / 2.0; + let mut u = vec![0.0f32; sz + 1]; + let mut v = vec![0.0f32; sz + 1]; + let mut p = vec![0usize; sz + 1]; // p[j] = row assigned to column j (1-indexed) + let mut way = vec![0usize; sz + 1]; + + for i in 1..=sz { + p[0] = i; + let mut j0 = 0usize; + let mut minv = vec![inf; sz + 1]; + let mut used = vec![false; sz + 1]; + loop { + used[j0] = true; + let i0 = p[j0]; + let mut delta = inf; + let mut j1 = 0usize; + for j in 1..=sz { + if used[j] { + continue; + } + let cur = c[i0 - 1][j - 1] - u[i0] - v[j]; + if cur < minv[j] { + minv[j] = cur; + way[j] = j0; + } + if minv[j] < delta { + delta = minv[j]; + j1 = j; + } + } + for j in 0..=sz { + if used[j] { + u[p[j]] += delta; + v[j] -= delta; + } else { + minv[j] -= delta; + } + } + j0 = j1; + if p[j0] == 0 { + break; + } + } + loop { + let j1 = way[j0]; + p[j0] = p[j1]; + j0 = j1; + if j0 == 0 { + break; + } + } + } + + // Extract assignment: for each row i (1-indexed), find column j where p[j] == i. + let mut result = vec![usize::MAX; n]; + for j in 1..=sz { + if p[j] > 0 && p[j] <= n { + let col = j - 1; + if col < m { + result[p[j] - 1] = col; + } + } + } + result +} + +// --------------------------------------------------------------------------- +// Synthetic PlainCenter placement +// --------------------------------------------------------------------------- + +/// Minimum pixel separation between synthetic attractor positions. +const MIN_SPACING: u16 = 15; + +fn synthetic_attractor( + placed: &[CityPlacement], + grid_w: u32, + grid_h: u32, +) -> GeographicAttractor { + // Place at grid center as default, then walk until spacing is satisfied. + let mut row = (grid_h / 2) as u16; + let mut col = (grid_w / 4) as u16; + + // Simple search: try positions in a grid until spacing is met. + 'outer: for dr in 0..(grid_h as u16 / MIN_SPACING) { + for dc in 0..(grid_w as u16 / MIN_SPACING) { + let r = (dr * MIN_SPACING).min(grid_h as u16 - 1); + let c = (dc * MIN_SPACING).min(grid_w as u16 - 1); + let ok = placed.iter().all(|p| { + let dr2 = (p.position.0 as i32 - r as i32).abs() as u16; + let dc2 = (p.position.1 as i32 - c as i32).abs() as u16; + dr2.max(dc2) >= MIN_SPACING + }); + if ok { + row = r; + col = c; + break 'outer; + } + } + } + + GeographicAttractor { + position: (row, col), + attractor_type: AttractorType::PlainCenter, + strength: 0.5, + } +} + +// --------------------------------------------------------------------------- +// Main entry point +// --------------------------------------------------------------------------- + +/// Run the five-phase attractor-matching pipeline (D-211). +/// +/// `terrain_costs` maps attractor index → terrain_modification_cost (1.0 = baseline). +/// If `None`, all costs default to 1.0. +pub fn match_cities( + cities: &[CityRecord], + attractors: &[GeographicAttractor], + matrix: &CompatibilityMatrix, + terrain_costs: Option<&[f32]>, + grid_w: u32, + grid_h: u32, +) -> Vec { + let default_cost = vec![1.0f32; attractors.len()]; + let costs = terrain_costs.unwrap_or(&default_cost); + + let mut placements: Vec = Vec::with_capacity(cities.len()); + let mut used_attractors: Vec = vec![false; attractors.len()]; + + // ------------------------------------------------------------------------- + // Phase 1: Score matrix + // ------------------------------------------------------------------------- + let scores: Vec> = cities + .iter() + .map(|city| { + attractors + .iter() + .zip(costs.iter()) + .map(|(att, &cost)| cell_score(city, att, matrix, cost)) + .collect() + }) + .collect(); + + // ------------------------------------------------------------------------- + // Phase 2: Tier A greedy — NameLocked or pop ≥ 1_000_000 + // ------------------------------------------------------------------------- + let tier_a_indices: Vec = cities + .iter() + .enumerate() + .filter(|(_, c)| { + c.settlement_class == SettlementClass::NameLocked || c.population >= 1_000_000 + }) + .map(|(i, _)| i) + .collect(); + + for &ci in &tier_a_indices { + if attractors.is_empty() { + break; + } + // Highest-scoring unused attractor. + let best = scores[ci] + .iter() + .enumerate() + .filter(|(ai, _)| !used_attractors[*ai]) + .max_by(|(_, a), (_, b)| a.partial_cmp(b).unwrap_or(std::cmp::Ordering::Equal)); + + if let Some((ai, &score)) = best { + used_attractors[ai] = true; + flag_mismatch(&cities[ci].name, score); + placements.push(CityPlacement { + city_id: cities[ci].city_id, + position: attractors[ai].position, + attractor_type: attractors[ai].attractor_type.clone(), + score, + synthetic: false, + }); + } + } + + // ------------------------------------------------------------------------- + // Phase 3: Hungarian — Tier B+C (50,000–999,999) + // ------------------------------------------------------------------------- + let tier_bc_indices: Vec = cities + .iter() + .enumerate() + .filter(|(i, c)| { + !tier_a_indices.contains(i) + && c.population >= 50_000 + && c.population < 1_000_000 + }) + .map(|(i, _)| i) + .collect(); + + let free_attractors: Vec = (0..attractors.len()) + .filter(|&ai| !used_attractors[ai]) + .collect(); + + if !tier_bc_indices.is_empty() && !free_attractors.is_empty() { + // Build cost sub-matrix (maximization → minimization via complement). + let scores_ref = &scores; + let max_score: f32 = tier_bc_indices + .iter() + .flat_map(|&ci| free_attractors.iter().map(move |&ai| scores_ref[ci][ai])) + .fold(0.0f32, f32::max); + + let cost: Vec> = tier_bc_indices + .iter() + .map(|&ci| { + free_attractors + .iter() + .map(|&ai| max_score - scores_ref[ci][ai]) + .collect() + }) + .collect(); + + let assignment = hungarian(&cost); + + for (local_i, &ci) in tier_bc_indices.iter().enumerate() { + let local_j = assignment[local_i]; + if local_j == usize::MAX || local_j >= free_attractors.len() { + continue; // overflow — handled in phase 4 + } + let ai = free_attractors[local_j]; + let score = scores[ci][ai]; + used_attractors[ai] = true; + flag_mismatch(&cities[ci].name, score); + placements.push(CityPlacement { + city_id: cities[ci].city_id, + position: attractors[ai].position, + attractor_type: attractors[ai].attractor_type.clone(), + score, + synthetic: false, + }); + } + } + + // ------------------------------------------------------------------------- + // Phase 4: Synthetic overflow — all remaining cities + // ------------------------------------------------------------------------- + let placed_ids: std::collections::HashSet = + placements.iter().map(|p| p.city_id).collect(); + + for city in cities { + if placed_ids.contains(&city.city_id) { + continue; + } + let synthetic = synthetic_attractor(&placements, grid_w, grid_h); + let score = cell_score(city, &synthetic, matrix, 1.0); + flag_mismatch(&city.name, score); + placements.push(CityPlacement { + city_id: city.city_id, + position: synthetic.position, + attractor_type: AttractorType::PlainCenter, + score, + synthetic: true, + }); + } + + // ------------------------------------------------------------------------- + // Phase 5: Name fulfillment check + // ------------------------------------------------------------------------- + let placed_ids: std::collections::HashSet = + placements.iter().map(|p| p.city_id).collect(); + for city in cities { + if !placed_ids.contains(&city.city_id) { + warn!( + city = %city.name, + city_id = city.city_id, + "atlas city was not placed — missing from pipeline output" + ); + } + } + + placements +} + +fn flag_mismatch(city_name: &str, score: f32) { + if score < 0.15 { + error!( + city = %city_name, + score, + "attractor mismatch score < 0.15 — flagged for manual review" + ); + } else if score < 0.35 { + warn!( + city = %city_name, + score, + "attractor mismatch score < 0.35 — below expected quality" + ); + } +} + +// --------------------------------------------------------------------------- +// FoundingOrientation derivation from matched attractor (D-211, D-213) +// --------------------------------------------------------------------------- + +use crate::simulation::generator::FoundingOrientation; +use crate::simulation::generator::TerritorialStatus; + +/// Derive `FoundingOrientation` from the attractor type that anchored the city (D-211, D-213). +/// +/// `river_bearing` and `coastal_facing` are compass degrees 0–359. +/// Pass 0 as default when the terrain doesn't dictate a specific bearing. +pub fn founding_orientation( + attractor_type: &AttractorType, + territorial_status: &TerritorialStatus, + river_bearing: u16, + coastal_facing: u16, +) -> FoundingOrientation { + match attractor_type { + AttractorType::RiverMouth | AttractorType::CoastalAccess => { + FoundingOrientation::Coastal { facing_degrees: coastal_facing } + } + AttractorType::RiverCrossing => { + FoundingOrientation::RiverAligned { bearing_degrees: river_bearing } + } + AttractorType::ValleyFloor => FoundingOrientation::TerrainFollowing, + AttractorType::PlainCenter => { + if matches!(territorial_status, TerritorialStatus::CommissionControlled) { + FoundingOrientation::Cardinal + } else { + FoundingOrientation::Free { bearing_degrees: 0 } + } + } + AttractorType::PassEntrance | AttractorType::LakeShore => { + FoundingOrientation::TerrainFollowing + } + } +} + +// --------------------------------------------------------------------------- +// Tests +// --------------------------------------------------------------------------- + +#[cfg(test)] +mod tests { + use super::*; + use crate::simulation::generator::{CompatibilityMatrix, GeographicAttractor}; + + fn uniform_matrix() -> CompatibilityMatrix { + CompatibilityMatrix { weights: [[1.0; 7]; 10] } + } + + fn make_attractor(row: u16, col: u16, at: AttractorType, strength: f32) -> GeographicAttractor { + GeographicAttractor { position: (row, col), attractor_type: at, strength } + } + + fn make_city(id: u64, class: SettlementClass, pop: i64) -> CityRecord { + CityRecord { + city_id: id, + name: format!("City{id}"), + settlement_class: class, + population: pop, + economic_role: "manufacturing".to_string(), + } + } + + #[test] + fn single_city_single_attractor() { + let cities = vec![make_city(1, SettlementClass::NameLocked, 500_000)]; + let attractors = vec![make_attractor(10, 20, AttractorType::RiverMouth, 0.8)]; + let matrix = uniform_matrix(); + let placements = match_cities(&cities, &attractors, &matrix, None, 512, 256); + assert_eq!(placements.len(), 1); + assert_eq!(placements[0].city_id, 1); + assert_eq!(placements[0].position, (10, 20)); + assert!(!placements[0].synthetic); + } + + #[test] + fn tier_a_gets_priority() { + // NameLocked city should get the best attractor (high strength). + let cities = vec![ + make_city(1, SettlementClass::NameLocked, 100_000), + make_city(2, SettlementClass::PopulationBudget, 200_000), + ]; + let attractors = vec![ + make_attractor(5, 5, AttractorType::RiverMouth, 0.9), // best + make_attractor(10, 10, AttractorType::ValleyFloor, 0.4), // second + ]; + let matrix = uniform_matrix(); + let placements = match_cities(&cities, &attractors, &matrix, None, 512, 256); + let p1 = placements.iter().find(|p| p.city_id == 1).unwrap(); + assert_eq!(p1.position, (5, 5), "NameLocked should get best attractor"); + } + + #[test] + fn overflow_produces_synthetic() { + // 2 cities, 1 attractor → second city gets synthetic. + let cities = vec![ + make_city(1, SettlementClass::NameLocked, 2_000_000), + make_city(2, SettlementClass::PopulationBudget, 60_000), + ]; + let attractors = vec![make_attractor(0, 0, AttractorType::RiverMouth, 1.0)]; + let matrix = uniform_matrix(); + let placements = match_cities(&cities, &attractors, &matrix, None, 512, 256); + assert_eq!(placements.len(), 2); + let p2 = placements.iter().find(|p| p.city_id == 2).unwrap(); + assert!(p2.synthetic); + } + + #[test] + fn all_cities_placed() { + let cities: Vec = (1..=5) + .map(|i| make_city(i, SettlementClass::PopulationBudget, 100_000)) + .collect(); + let attractors = vec![ + make_attractor(10, 10, AttractorType::RiverMouth, 0.9), + make_attractor(20, 20, AttractorType::CoastalAccess, 0.7), + ]; + let matrix = uniform_matrix(); + let placements = match_cities(&cities, &attractors, &matrix, None, 512, 256); + assert_eq!(placements.len(), 5, "all cities must be placed"); + } + + #[test] + fn hungarian_assigns_optimally() { + // 2 cities, 2 attractors. City A scores best on attractor 0, city B best on attractor 1. + let mut matrix = uniform_matrix(); + // agricultural (row 2) scores high on ValleyFloor (col 3) = 3.0 + matrix.weights[2][3] = 3.0; + // transit_hub (row 6) scores high on RiverCrossing (col 2) = 3.0 + matrix.weights[6][2] = 3.0; + let cities = vec![ + CityRecord { + city_id: 1, + name: "Farm".to_string(), + settlement_class: SettlementClass::PopulationBudget, + population: 60_000, + economic_role: "agricultural".to_string(), + }, + CityRecord { + city_id: 2, + name: "Hub".to_string(), + settlement_class: SettlementClass::PopulationBudget, + population: 80_000, + economic_role: "transit_hub".to_string(), + }, + ]; + let attractors = vec![ + make_attractor(5, 5, AttractorType::ValleyFloor, 1.0), + make_attractor(10, 10, AttractorType::RiverCrossing, 1.0), + ]; + let placements = match_cities(&cities, &attractors, &matrix, None, 512, 256); + assert_eq!(placements.len(), 2); + let farm = placements.iter().find(|p| p.city_id == 1).unwrap(); + let hub = placements.iter().find(|p| p.city_id == 2).unwrap(); + // Farm should be on ValleyFloor (5,5), Hub on RiverCrossing (10,10). + assert_eq!(farm.position, (5, 5)); + assert_eq!(hub.position, (10, 10)); + } + + #[test] + fn founding_orientation_from_attractor() { + use crate::simulation::generator::TerritorialStatus; + let status = TerritorialStatus::FrontierUnclaimed; + let o = founding_orientation(&AttractorType::RiverMouth, &status, 90, 270); + assert!(matches!(o, FoundingOrientation::Coastal { facing_degrees: 270 })); + + let o2 = founding_orientation( + &AttractorType::PlainCenter, + &TerritorialStatus::CommissionControlled, + 0, + 0, + ); + assert!(matches!(o2, FoundingOrientation::Cardinal)); + + let o3 = founding_orientation( + &AttractorType::ValleyFloor, + &status, + 0, + 0, + ); + assert!(matches!(o3, FoundingOrientation::TerrainFollowing)); + } +} diff --git a/server/src/atlas/block_irregularity.rs b/server/src/atlas/block_irregularity.rs new file mode 100644 index 000000000..b81279c01 --- /dev/null +++ b/server/src/atlas/block_irregularity.rs @@ -0,0 +1,111 @@ +//! BlockIrregularity derivation from founding_age and PoliticalArchetype (D-216). +//! +//! `block_irregularity` (0.0–1.0) controls how much a block deviates from +//! the district's canonical grid. Minimum 0.05 — no block is perfectly regular. +//! +//! **Formula (D-216):** +//! ```text +//! base_irregularity = (founding_age_years / 1000.0).min(1.0) +//! archetype_step = Commission|Military → -0.3, Corporate|Academic → -0.1, +//! Industrial → 0.0, Pioneer → +0.3 +//! block_irregularity = (base + step).clamp(0.05, 1.0) +//! ``` +//! +//! **Determinism (D-010, D-216):** Integer-scaled intermediates; archetype_step +//! stored as basis points (i32, 1 bp = 0.001). Final result is f32 from integer +//! arithmetic to match the D-216 formula. + +use crate::simulation::generator::PoliticalArchetype; + +/// Compute the `block_irregularity` value for one block. +/// +/// - `founding_age_years`: years since the settlement was founded (integer). +/// - `archetype`: the settlement's political archetype. +/// +/// Returns a value in [0.05, 1.0]. +pub fn block_irregularity(founding_age_years: u32, archetype: &PoliticalArchetype) -> f32 { + // base_irregularity in integer basis-points (0–1000, where 1000 = 1.0). + let base_bp: i32 = (founding_age_years as i32).min(1000); + + // archetype_step in basis-points. + let step_bp: i32 = archetype_step_bp(archetype); + + // block_irregularity_bp clamped to [50, 1000] (0.05–1.0). + let result_bp = (base_bp + step_bp).clamp(50, 1000); + + result_bp as f32 / 1000.0 +} + +fn archetype_step_bp(archetype: &PoliticalArchetype) -> i32 { + match archetype { + PoliticalArchetype::Commission | PoliticalArchetype::Military => -300, + PoliticalArchetype::Corporate | PoliticalArchetype::Academic => -100, + PoliticalArchetype::Industrial => 0, + PoliticalArchetype::Pioneer => 300, + } +} + +/// Derive the maximum block offset in sim tiles from `block_irregularity`. +/// +/// Used by `DistrictLayoutMode::Organic`: `max_offset = (irregularity × 16.0) as i16`. +pub fn max_offset_sim_tiles(irregularity: f32) -> i16 { + (irregularity * 16.0) as i16 +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn minimum_is_0_05() { + // New Commission city (age 0) → base 0, step -300 → clamp to 50bp = 0.05. + let v = block_irregularity(0, &PoliticalArchetype::Commission); + assert!((v - 0.05).abs() < 1e-6, "expected 0.05, got {v}"); + } + + #[test] + fn maximum_is_1_0() { + // Old Pioneer city (age 1000+) → base 1000, step +300 → clamp to 1000bp = 1.0. + let v = block_irregularity(1500, &PoliticalArchetype::Pioneer); + assert!((v - 1.0).abs() < 1e-6, "expected 1.0, got {v}"); + } + + #[test] + fn pioneer_more_irregular_than_commission() { + let pioneer = block_irregularity(400, &PoliticalArchetype::Pioneer); + let commission = block_irregularity(400, &PoliticalArchetype::Commission); + assert!(pioneer > commission, + "Pioneer ({pioneer}) should be more irregular than Commission ({commission})"); + } + + #[test] + fn age_increases_irregularity() { + let young = block_irregularity(50, &PoliticalArchetype::Industrial); + let old = block_irregularity(800, &PoliticalArchetype::Industrial); + assert!(old > young, + "Older settlement ({old}) should be more irregular than young ({young})"); + } + + #[test] + fn max_offset_scales_with_irregularity() { + assert_eq!(max_offset_sim_tiles(0.05), 0); // 0.05 × 16 = 0.8 → 0 + assert_eq!(max_offset_sim_tiles(1.0), 16); + assert_eq!(max_offset_sim_tiles(0.5), 8); + } + + #[test] + fn all_archetypes_produce_valid_range() { + let archetypes = [ + PoliticalArchetype::Commission, + PoliticalArchetype::Corporate, + PoliticalArchetype::Pioneer, + PoliticalArchetype::Military, + PoliticalArchetype::Academic, + PoliticalArchetype::Industrial, + ]; + for a in &archetypes { + let v = block_irregularity(300, a); + assert!(v >= 0.05 && v <= 1.0, "archetype {:?} gave {v} out of [0.05, 1.0]", a); + } + } +} diff --git a/server/src/atlas/body_world_state.rs b/server/src/atlas/body_world_state.rs new file mode 100644 index 000000000..f1bcc9ae5 --- /dev/null +++ b/server/src/atlas/body_world_state.rs @@ -0,0 +1,249 @@ +//! BodyWorldState — per-body Layer 1–2 cache (D-203). +//! +//! `BodyWorldStateCache` is a Bevy `Resource` holding pre-computed generation +//! data for up to 50 planetary bodies. Populated by the runtime-background +//! tier (D-206) via Rayon tasks; read by the main tick thread without blocking. +//! +//! Eviction policy: LRU — the body with the oldest `last_accessed` tick is +//! evicted on overflow, unless it is pinned (current player location or an +//! adjacent-system neighbor). + +use std::collections::HashMap; + +use bevy_ecs::prelude::Resource; + +use crate::simulation::generator::GeographicAttractor; + +/// Simulation tick counter — monotonically increasing u64. +pub type SimTick = u64; + +/// Maximum number of bodies the cache holds before evicting the LRU entry. +pub const CACHE_CAPACITY: usize = 50; + +// --------------------------------------------------------------------------- +// Stub types — filled in by D-208 (#918) and D-205 (#907 Rust side) +// --------------------------------------------------------------------------- + +/// River network extracted by the D8 drainage algorithm (D-208). +/// Stub — replaced when #918 is implemented. +#[derive(Debug, Clone, Default)] +pub struct RiverNetwork { + /// Pixel positions (row, col) of all river cells (flow_accumulation > 200). + pub river_cells: Vec<(u16, u16)>, + /// Positions where two or more rivers merge. + pub confluences: Vec<(u16, u16)>, + /// Positions where rivers reach sea level or the heightmap edge. + pub mouths: Vec<(u16, u16)>, +} + +/// One drainage basin / province derived from watershed analysis (D-205). +/// Stub — boundary polyline data comes from atlas_province_boundaries. +#[derive(Debug, Clone)] +pub struct DrainageBasin { + pub basin_id: u32, + /// Boundary polyline as pixel-space (row, col) points. + pub boundary: Vec<(u16, u16)>, + /// Fraction of the body's surface area in this basin. + pub area_pct: f32, +} + +// --------------------------------------------------------------------------- +// BodyWorldState +// --------------------------------------------------------------------------- + +/// Pre-computed Layer 1–2 generation data for one planetary body. +/// +/// Produced by the runtime-background tier and stored in `BodyWorldStateCache`. +/// The main tick thread reads this data without performing any DB or CPU work. +#[derive(Debug, Clone)] +pub struct BodyWorldState { + pub body_id: String, + /// Downsampled working elevation grid (float32, row-major). + /// Full-resolution data lives in atlas_body_heightmaps; this is reduced + /// for the ~8KB working-resolution budget described in D-203. + pub heightmap: Vec, + pub heightmap_width: u32, + pub heightmap_height: u32, + /// D8 drainage analysis output (D-208). Empty until drainage task completes. + pub river_network: RiverNetwork, + /// Drainage basins from watershed analysis (D-205). + pub drainage_basins: Vec, + /// Geographic attractors (D-195, D-209). Empty until attractor task completes. + pub attractors: Vec, + /// Last sim tick this entry was read. Used for LRU eviction. + pub last_accessed: SimTick, +} + +// --------------------------------------------------------------------------- +// BodyWorldStateCache — Bevy Resource +// --------------------------------------------------------------------------- + +/// Bevy `Resource` holding the LRU cache of per-body world state (D-203). +/// +/// Initialized empty at server startup. Entries are inserted by the +/// background generation queue (D-206) and read by main-thread systems. +/// +/// All mutations go through the provided methods to maintain the +/// invariant that `entries.len() <= capacity`. +#[derive(Resource, Debug, Default)] +pub struct BodyWorldStateCache { + entries: HashMap, + /// Body IDs that must not be evicted regardless of `last_accessed`. + pinned: std::collections::HashSet, + capacity: usize, +} + +impl BodyWorldStateCache { + pub fn new(capacity: usize) -> Self { + Self { + entries: HashMap::with_capacity(capacity), + pinned: std::collections::HashSet::new(), + capacity, + } + } + + /// Insert or replace a `BodyWorldState` entry. + /// + /// If the cache is at capacity, evicts the LRU unpinned entry before + /// inserting. If all entries are pinned and the cache is full, the new + /// entry is inserted anyway (capacity is a soft limit against unbounded + /// growth, not a hard reject). + pub fn insert(&mut self, state: BodyWorldState) { + if self.entries.len() >= self.capacity && !self.entries.contains_key(&state.body_id) { + self.evict_lru(); + } + self.entries.insert(state.body_id.clone(), state); + } + + /// Get a reference to the state for `body_id`, bumping `last_accessed`. + pub fn get(&mut self, body_id: &str, current_tick: SimTick) -> Option<&BodyWorldState> { + if let Some(entry) = self.entries.get_mut(body_id) { + entry.last_accessed = current_tick; + } + self.entries.get(body_id) + } + + /// Get a reference without bumping `last_accessed` (read-only path). + pub fn peek(&self, body_id: &str) -> Option<&BodyWorldState> { + self.entries.get(body_id) + } + + /// Returns `true` if the cache has an entry for `body_id`. + pub fn contains(&self, body_id: &str) -> bool { + self.entries.contains_key(body_id) + } + + /// Pin `body_id` — exempt from LRU eviction. + pub fn pin(&mut self, body_id: &str) { + self.pinned.insert(body_id.to_string()); + } + + /// Unpin `body_id` — allow eviction again. + pub fn unpin(&mut self, body_id: &str) { + self.pinned.remove(body_id); + } + + /// Number of entries currently in the cache. + pub fn len(&self) -> usize { + self.entries.len() + } + + pub fn is_empty(&self) -> bool { + self.entries.is_empty() + } + + fn evict_lru(&mut self) { + // Find the unpinned entry with the smallest last_accessed tick. + let victim = self + .entries + .iter() + .filter(|(id, _)| !self.pinned.contains(*id)) + .min_by_key(|(_, s)| s.last_accessed) + .map(|(id, _)| id.clone()); + + if let Some(id) = victim { + self.entries.remove(&id); + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + #[allow(unused_imports)] + use crate::simulation::generator::GeographicAttractor; + + fn make_state(body_id: &str, tick: SimTick) -> BodyWorldState { + BodyWorldState { + body_id: body_id.to_string(), + heightmap: vec![0.5; 16], + heightmap_width: 4, + heightmap_height: 4, + river_network: RiverNetwork::default(), + drainage_basins: vec![], + attractors: vec![], + last_accessed: tick, + } + } + + #[test] + fn insert_and_get() { + let mut cache = BodyWorldStateCache::new(50); + cache.insert(make_state("Alpha", 1)); + assert!(cache.contains("Alpha")); + assert!(!cache.contains("Beta")); + let entry = cache.get("Alpha", 5).unwrap(); + assert_eq!(entry.body_id, "Alpha"); + assert_eq!(entry.last_accessed, 5); + } + + #[test] + fn evicts_lru_on_overflow() { + let mut cache = BodyWorldStateCache::new(3); + cache.insert(make_state("A", 10)); + cache.insert(make_state("B", 20)); + cache.insert(make_state("C", 30)); + // Cache is full; inserting D should evict A (oldest tick = 10). + cache.insert(make_state("D", 40)); + assert_eq!(cache.len(), 3); + assert!(!cache.contains("A"), "A should have been evicted"); + assert!(cache.contains("B")); + assert!(cache.contains("C")); + assert!(cache.contains("D")); + } + + #[test] + fn pinned_body_not_evicted() { + let mut cache = BodyWorldStateCache::new(3); + cache.insert(make_state("A", 10)); + cache.insert(make_state("B", 20)); + cache.insert(make_state("C", 30)); + // Pin A so it cannot be evicted. + cache.pin("A"); + // Inserting D must evict B (oldest unpinned). + cache.insert(make_state("D", 40)); + assert!(cache.contains("A"), "pinned A must not be evicted"); + assert!(!cache.contains("B"), "B should have been evicted instead"); + } + + #[test] + fn update_last_accessed_on_get() { + let mut cache = BodyWorldStateCache::new(3); + cache.insert(make_state("A", 1)); + cache.insert(make_state("B", 2)); + cache.insert(make_state("C", 3)); + // Cache is full. Get A at tick 100 — bumps its last_accessed above C and B. + cache.get("A", 100); + // Insert D to trigger eviction; B (tick 2) is now LRU, not A (tick 100). + cache.insert(make_state("D", 4)); + assert!(cache.contains("A"), "A was recently accessed — must survive"); + assert!(!cache.contains("B"), "B had oldest access time — should be evicted"); + } + + #[test] + fn default_capacity_is_zero() { + // Default resource starts empty. + let cache = BodyWorldStateCache::default(); + assert!(cache.is_empty()); + } +} diff --git a/server/src/atlas/district_mix.rs b/server/src/atlas/district_mix.rs new file mode 100644 index 000000000..6e3fc9f5a --- /dev/null +++ b/server/src/atlas/district_mix.rs @@ -0,0 +1,359 @@ +//! Three-component district mix algorithm for city district type distribution (D-194). +//! +//! Given a city's population, economic role, and political archetype, produces +//! a district type distribution (count of each DistrictType) used by the +//! Phase 1 district skeleton generator. +//! +//! **Components (D-194):** +//! 1. Population tier guarantees — minimum district counts by city size. +//! 2. 10×9 economic multiplier table — economic role × DistrictType weights. +//! 3. Political archetype modifiers — shift weights for specific district types. +//! +//! **Determinism (D-010, D-194):** Integer weights throughout. No f32 in the +//! district count computation. Seed-driven noise uses seeded RNG. + +use crate::simulation::generator::{DistrictType, PoliticalArchetype}; + +// --------------------------------------------------------------------------- +// Population tier +// --------------------------------------------------------------------------- + +/// Population tier: `floor(log10(pop / 1_000_000))`, capped at [0, 5]. +pub fn population_tier(population: i64) -> u8 { + if population <= 0 { + return 0; + } + let ratio = population as f64 / 1_000_000.0; + if ratio <= 0.0 { + return 0; + } + let tier = ratio.log10().floor() as i32; + tier.clamp(0, 5) as u8 +} + +/// Minimum district counts guaranteed by population tier (D-194). +/// +/// Returns `(transit_min, commercial_min, residential_min)`. +pub fn tier_guarantees(tier: u8) -> (u32, u32, u32) { + match tier { + 0 => (0, 0, 1), + 1 => (0, 1, 1), + 2 => (1, 1, 2), + 3 => (1, 2, 3), + 4 => (2, 3, 4), + 5 => (3, 4, 6), + _ => (3, 4, 6), + } +} + +// --------------------------------------------------------------------------- +// Economic multiplier table (10×9, integer weights × 10 for precision) +// --------------------------------------------------------------------------- + +/// District type column order (0–8). +/// Matches DistrictType enum variants: LogisticsHub, Residential, Commercial, +/// Industrial, Administrative, Entertainment, MixedUse, Transit, Specialized. +const DIST_COLS: [DistrictType; 9] = [ + DistrictType::LogisticsHub, + DistrictType::Residential, + DistrictType::Commercial, + DistrictType::Industrial, + DistrictType::Administrative, + DistrictType::Entertainment, + DistrictType::MixedUse, + DistrictType::Transit, + DistrictType::Specialized, +]; + +/// Map a DistrictType to its column index. +fn dist_col(dt: &DistrictType) -> usize { + match dt { + DistrictType::LogisticsHub => 0, + DistrictType::Residential => 1, + DistrictType::Commercial => 2, + DistrictType::Industrial => 3, + DistrictType::Administrative => 4, + DistrictType::Entertainment => 5, + DistrictType::MixedUse => 6, + DistrictType::Transit => 7, + DistrictType::Specialized => 8, + } +} + +/// Map an economic role to its row index (0–9). +fn role_row(economic_role: &str) -> usize { + match economic_role { + "manufacturing" => 0, + "financial" => 1, + "agricultural" => 2, + "extraction" => 3, + "service_mixed" => 4, + "institutional" => 5, + "transit_hub" => 6, + "research" => 7, + "military" => 8, + "residential" | _ => 9, + } +} + +/// 10×9 economic multiplier table. Values are integer weights × 10. +/// Rows: manufacturing(0), financial(1), agricultural(2), extraction(3), +/// service_mixed(4), institutional(5), transit_hub(6), research(7), +/// military(8), residential(9). +/// Columns: LogisticsHub(0), Residential(1), Commercial(2), Industrial(3), +/// Administrative(4), Entertainment(5), MixedUse(6), Transit(7), +/// Specialized(8). +#[rustfmt::skip] +const ECON_TABLE: [[u32; 9]; 10] = [ +// LH Re Co In Ad En Mu Tr Sp + [25, 10, 15, 30, 10, 5, 10, 20, 10], // manufacturing + [10, 15, 30, 10, 20, 15, 20, 15, 10], // financial + [20, 20, 10, 15, 10, 5, 20, 10, 5], // agricultural + [30, 10, 10, 30, 10, 5, 5, 15, 10], // extraction + [15, 20, 25, 10, 10, 20, 25, 20, 10], // service_mixed + [10, 15, 10, 10, 30, 10, 10, 10, 20], // institutional + [25, 10, 15, 10, 10, 10, 10, 30, 10], // transit_hub + [10, 15, 10, 15, 20, 10, 10, 10, 30], // research + [10, 20, 5, 15, 20, 5, 5, 10, 15], // military + [10, 30, 15, 5, 10, 15, 25, 10, 5], // residential +]; + +// --------------------------------------------------------------------------- +// Political archetype modifiers +// --------------------------------------------------------------------------- + +/// Additive integer modifiers to column weights based on `PoliticalArchetype`. +/// Returns `[mod; 9]` for columns in `DIST_COLS` order. +fn archetype_modifiers(archetype: &PoliticalArchetype) -> [i32; 9] { + match archetype { + PoliticalArchetype::Commission => { + // Boosts Administrative + Institutional-style Specialized. + [0, 0, 0, 0, 10, 0, 0, 0, 5] + } + PoliticalArchetype::Corporate => { + // Boosts Commercial + Specialized (restricted campus zones). + [0, -5, 15, 0, 0, 5, 0, 0, 10] + } + PoliticalArchetype::Pioneer => { + // Boosts MixedUse + organic Residential. + [0, 10, 5, 0, -5, 5, 15, 0, 0] + } + PoliticalArchetype::Military => { + // Boosts Administrative + reduces Entertainment. + [0, 5, -5, 5, 15, -10, 0, 0, 10] + } + PoliticalArchetype::Academic => { + // Boosts Specialized (research labs) + Administrative. + [0, 5, 0, 0, 10, 5, 5, 0, 20] + } + PoliticalArchetype::Industrial => { + // Boosts Industrial + LogisticsHub. + [10, -5, 5, 20, 0, -5, 0, 5, 5] + } + } +} + +// --------------------------------------------------------------------------- +// District mix computation +// --------------------------------------------------------------------------- + +/// The district type distribution for a generated city. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct DistrictMix { + /// Ordered list of district types for the city, with repetition (district_count items total). + pub districts: Vec, + /// Total district count. + pub total: u32, +} + +/// Compute the district mix for one city (D-194). +/// +/// `total_districts` is the number of districts to allocate. A good default is +/// `max(4, population_tier * 2)`. +/// +/// `seed` is the city-level RNG seed (D-010 determinism). +pub fn compute_district_mix( + population: i64, + economic_role: &str, + archetype: &PoliticalArchetype, + total_districts: u32, + seed: u64, +) -> DistrictMix { + let tier = population_tier(population); + let (transit_min, commercial_min, residential_min) = tier_guarantees(tier); + let row = role_row(economic_role); + let arch_mods = archetype_modifiers(archetype); + + // Build effective weights (integer, clamped to ≥ 1). + let mut weights: [u32; 9] = [0; 9]; + for col in 0..9 { + let base = ECON_TABLE[row][col] as i32; + let modified = base + arch_mods[col]; + weights[col] = modified.max(1) as u32; + } + + // Allocate districts proportionally from weights using a seeded LCG. + // We avoid f32 by using integer weighted random selection. + let weight_sum: u32 = weights.iter().sum(); + let mut counts: [u32; 9] = [0; 9]; + let mut lcg = LcgRng::new(seed); + + for _ in 0..total_districts { + let mut pick = lcg.next_u32() % weight_sum; + for col in 0..9 { + if pick < weights[col] { + counts[col] += 1; + break; + } + pick -= weights[col]; + } + } + + // Apply tier guarantees (add if under minimum). + let transit_col = dist_col(&DistrictType::Transit); + let commercial_col = dist_col(&DistrictType::Commercial); + let residential_col = dist_col(&DistrictType::Residential); + + if counts[transit_col] < transit_min { + counts[transit_col] = transit_min; + } + if counts[commercial_col] < commercial_min { + counts[commercial_col] = commercial_min; + } + if counts[residential_col] < residential_min { + counts[residential_col] = residential_min; + } + + // Build the flat ordered list. + let mut districts: Vec = Vec::new(); + for (col, &count) in counts.iter().enumerate() { + for _ in 0..count { + districts.push(DIST_COLS[col].clone()); + } + } + + let total = districts.len() as u32; + DistrictMix { districts, total } +} + +// --------------------------------------------------------------------------- +// Minimal seeded LCG (no f32, D-010 compliant) +// --------------------------------------------------------------------------- + +struct LcgRng { + state: u64, +} + +impl LcgRng { + fn new(seed: u64) -> Self { + Self { state: seed.wrapping_add(1) } + } + + fn next_u64(&mut self) -> u64 { + // LCG parameters from Knuth + self.state = self.state + .wrapping_mul(6364136223846793005) + .wrapping_add(1442695040888963407); + self.state + } + + fn next_u32(&mut self) -> u32 { + (self.next_u64() >> 33) as u32 + } +} + +// --------------------------------------------------------------------------- +// Tests +// --------------------------------------------------------------------------- + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn population_tier_values() { + assert_eq!(population_tier(0), 0); + assert_eq!(population_tier(50_000), 0); // 0.05M → log10 < 0 → tier 0 + assert_eq!(population_tier(1_000_000), 0); // 1M → log10(1) = 0 → tier 0 + assert_eq!(population_tier(10_000_000), 1); // 10M → log10(10) = 1 → tier 1 + assert_eq!(population_tier(100_000_000), 2); // 100M → tier 2 + assert_eq!(population_tier(1_000_000_000_000), 5); // capped at 5 + } + + #[test] + fn mix_sums_at_least_to_requested() { + let mix = compute_district_mix( + 5_000_000, + "manufacturing", + &PoliticalArchetype::Industrial, + 8, + 42, + ); + // total may exceed requested due to guarantees + assert!(mix.total >= 8, "district count should be >= requested"); + } + + #[test] + fn tier_guarantees_applied() { + // Tier 2 city: pop/1M = 100–999, log10(100) = 2. + // 100M population → pop_tier = floor(log10(100)) = 2 → (1 Transit, 1 Commercial, 2 Residential). + let mix = compute_district_mix( + 100_000_000, + "service_mixed", + &PoliticalArchetype::Pioneer, + 6, + 7, + ); + let transit = mix.districts.iter().filter(|d| matches!(d, DistrictType::Transit)).count(); + let commercial = mix.districts.iter().filter(|d| matches!(d, DistrictType::Commercial)).count(); + let residential = mix.districts.iter().filter(|d| matches!(d, DistrictType::Residential)).count(); + assert!(transit >= 1, "transit guarantee not met: {transit}"); + assert!(commercial >= 1, "commercial guarantee not met: {commercial}"); + assert!(residential >= 2, "residential guarantee not met: {residential}"); + } + + #[test] + fn determinism_same_seed() { + let mix1 = compute_district_mix(5_000_000, "financial", &PoliticalArchetype::Commission, 6, 99); + let mix2 = compute_district_mix(5_000_000, "financial", &PoliticalArchetype::Commission, 6, 99); + assert_eq!(mix1, mix2, "same inputs must produce identical output"); + } + + #[test] + fn different_archetypes_produce_different_mixes() { + let mix_corp = compute_district_mix(5_000_000, "financial", &PoliticalArchetype::Corporate, 8, 42); + let mix_pioneer = compute_district_mix(5_000_000, "financial", &PoliticalArchetype::Pioneer, 8, 42); + // Should differ in at least one district type count. + assert_ne!(mix_corp.districts, mix_pioneer.districts, + "Corporate and Pioneer archetypes should produce different district mixes"); + } + + #[test] + fn military_archetype_has_administrative() { + let mix = compute_district_mix( + 2_000_000, + "military", + &PoliticalArchetype::Military, + 8, + 10, + ); + let admin = mix.districts.iter().filter(|d| matches!(d, DistrictType::Administrative)).count(); + assert!(admin >= 1, "military archetype should have Administrative districts"); + } + + #[test] + fn all_district_types_can_appear() { + // With enough districts and a balanced role, every type should appear at least once. + let mix = compute_district_mix( + 50_000_000, + "service_mixed", + &PoliticalArchetype::Pioneer, + 50, + 0, + ); + for dt in &DIST_COLS { + let present = mix.districts.iter().any(|d| std::mem::discriminant(d) == std::mem::discriminant(dt)); + assert!(present, "DistrictType {:?} never appeared in 50-district mix", dt); + } + } +} diff --git a/server/src/atlas/drainage.rs b/server/src/atlas/drainage.rs new file mode 100644 index 000000000..1deadb6de --- /dev/null +++ b/server/src/atlas/drainage.rs @@ -0,0 +1,661 @@ +//! D8 drainage routing — flow direction, flow accumulation, river network +//! extraction, and drainage basin delineation (D-208). +//! +//! **Determinism (D-010, D-208):** All flow-direction comparisons use integer +//! arithmetic on scaled elevation values (`(elev * 1_000_000.0) as i64`) to +//! avoid f32 comparison non-determinism. Tie-breaking uses a fixed D8 neighbor +//! priority order. The result is bit-identical across runs on the same inputs. +//! +//! **Algorithm:** +//! 1. Scale f32 elevation to i64 integers. +//! 2. Priority-flood depression fill (iterative, convergence in ≤10 passes). +//! 3. D8 flow direction: steepest descent, 8-neighbor, wraps horizontally. +//! 4. Flow accumulation via topological sort of the D8 DAG. +//! 5. River network extraction: cells with accumulation > RIVER_THRESHOLD. +//! 6. Basin labeling: flood-fill seeded at pour points. +//! +//! The grid is row-major. Row 0 is the north pole; row H-1 is the south pole. +//! Columns wrap horizontally (the globe is equirectangular). + +use std::collections::VecDeque; + +use crate::atlas::body_world_state::{DrainageBasin, RiverNetwork}; + +/// A cell is a river cell when its flow accumulation exceeds this threshold (D-208). +pub const RIVER_THRESHOLD: i32 = 200; + +/// Scale factor for converting f32 elevation to integer for deterministic comparison. +const ELEV_SCALE: f64 = 1_000_000.0; + +// D8 neighbor offsets (dr, dc) in fixed priority order for deterministic tie-breaking. +// Priority: cardinal directions first (N, S, E, W), then diagonals (NE, NW, SE, SW). +const D8: [(i32, i32); 8] = [ + (-1, 0), // N + (1, 0), // S + (0, 1), // E + (0, -1), // W + (-1, 1), // NE + (-1, -1), // NW + (1, 1), // SE + (1, -1), // SW +]; + +/// Result of the full D8 drainage analysis for one body. +#[derive(Debug, Clone)] +pub struct DrainageResult { + pub river_network: RiverNetwork, + pub drainage_basins: Vec, +} + +// --------------------------------------------------------------------------- +// Public entry point +// --------------------------------------------------------------------------- + +/// Run the full D8 drainage analysis on an elevation grid. +/// +/// `elevation` is a row-major float32 grid of shape `height × width`, values +/// in [0.0, 1.0]. `sea_level` is the fraction below which terrain is ocean. +/// +/// Returns `DrainageResult` with the river network and drainage basins. +pub fn analyze(elevation: &[f32], width: u32, height: u32, sea_level: f32) -> DrainageResult { + let w = width as usize; + let h = height as usize; + // 1. Scale to integers. + let scaled: Vec = elevation + .iter() + .map(|&e| (e as f64 * ELEV_SCALE) as i64) + .collect(); + + // 2. Depression fill. + let filled = depression_fill(&scaled, w, h); + + // 3. D8 flow direction. -1 = no outflow (edge or flat peak). + let fdir = flow_direction(&filled, w, h); + + // 4. Flow accumulation. + let accum = flow_accumulation(&fdir, w, h); + + // 5. River network. + let river_network = extract_river_network(&accum, &fdir, w, h, sea_level, elevation); + + // 6. Basin labeling. + let labels = label_basins(&fdir, &accum, w, h); + + // 7. Merge small basins + clamp count to [4, 12]. + let labels = merge_small_basins(labels, w, h, 4, 12); + + // 8. Build DrainageBasin structs. + let drainage_basins = build_basins(&labels, w, h); + + DrainageResult { + river_network, + drainage_basins, + } +} + +// --------------------------------------------------------------------------- +// Step 2: Depression fill +// --------------------------------------------------------------------------- + +fn depression_fill(scaled: &[i64], w: usize, h: usize) -> Vec { + let mut filled = scaled.to_vec(); + for _ in 0..10 { + let mut changed = false; + for r in 1..h.saturating_sub(1) { + for c in 0..w { + let mut nbr_min = i64::MAX; + for &(dr, dc) in &D8 { + let nr = r as i32 + dr; + let nc = (c as i32 + dc).rem_euclid(w as i32) as usize; + if nr >= 0 && nr < h as i32 { + let val = filled[nr as usize * w + nc]; + if val < nbr_min { + nbr_min = val; + } + } + } + if filled[r * w + c] < nbr_min { + filled[r * w + c] = nbr_min + 1; + changed = true; + } + } + } + if !changed { + break; + } + } + filled +} + +// --------------------------------------------------------------------------- +// Step 3: D8 flow direction +// --------------------------------------------------------------------------- + +/// Returns per-cell flow direction index into D8 (0–7), or -1 for no outflow. +fn flow_direction(filled: &[i64], w: usize, h: usize) -> Vec { + let mut fdir = vec![-1i8; w * h]; + for r in 0..h { + for c in 0..w { + let elev = filled[r * w + c]; + let mut best_drop = 0i64; + let mut best_k: i8 = -1; + for (k, &(dr, dc)) in D8.iter().enumerate() { + let nr = r as i32 + dr; + let nc = (c as i32 + dc).rem_euclid(w as i32) as usize; + if nr < 0 || nr >= h as i32 { + continue; + } + let drop = elev - filled[nr as usize * w + nc]; + if drop > best_drop { + best_drop = drop; + best_k = k as i8; + } + } + fdir[r * w + c] = best_k; + } + } + fdir +} + +// --------------------------------------------------------------------------- +// Step 4: Flow accumulation +// --------------------------------------------------------------------------- + +fn flow_accumulation(fdir: &[i8], w: usize, h: usize) -> Vec { + let n = w * h; + let mut in_degree = vec![0i32; n]; + + for r in 0..h { + for c in 0..w { + let k = fdir[r * w + c]; + if k < 0 { + continue; + } + let (dr, dc) = D8[k as usize]; + let nr = r as i32 + dr; + let nc = (c as i32 + dc).rem_euclid(w as i32) as usize; + if nr >= 0 && nr < h as i32 { + in_degree[nr as usize * w + nc] += 1; + } + } + } + + let mut queue = VecDeque::new(); + for i in 0..n { + if in_degree[i] == 0 { + queue.push_back(i); + } + } + + let mut accum = vec![1i32; n]; + while let Some(idx) = queue.pop_front() { + let r = idx / w; + let c = idx % w; + let k = fdir[idx]; + if k < 0 { + continue; + } + let (dr, dc) = D8[k as usize]; + let nr = r as i32 + dr; + let nc = (c as i32 + dc).rem_euclid(w as i32) as usize; + if nr >= 0 && nr < h as i32 { + let ni = nr as usize * w + nc; + accum[ni] += accum[idx]; + in_degree[ni] -= 1; + if in_degree[ni] == 0 { + queue.push_back(ni); + } + } + } + + accum +} + +// --------------------------------------------------------------------------- +// Step 5: River network extraction +// --------------------------------------------------------------------------- + +fn extract_river_network( + accum: &[i32], + fdir: &[i8], + w: usize, + h: usize, + sea_level: f32, + elevation: &[f32], +) -> RiverNetwork { + let n = w * h; + + // River cells: above threshold AND above sea level. + let is_river: Vec = (0..n) + .map(|i| accum[i] > RIVER_THRESHOLD && elevation[i] >= sea_level) + .collect(); + + let river_cells: Vec<(u16, u16)> = (0..n) + .filter(|&i| is_river[i]) + .map(|i| ((i / w) as u16, (i % w) as u16)) + .collect(); + + // Confluences: river cells with 2+ river neighbors flowing into them. + let mut inflow_count = vec![0u8; n]; + for r in 0..h { + for c in 0..w { + let i = r * w + c; + if !is_river[i] { + continue; + } + let k = fdir[i]; + if k < 0 { + continue; + } + let (dr, dc) = D8[k as usize]; + let nr = r as i32 + dr; + let nc = (c as i32 + dc).rem_euclid(w as i32) as usize; + if nr >= 0 && nr < h as i32 { + let ni = nr as usize * w + nc; + if is_river[ni] { + inflow_count[ni] = inflow_count[ni].saturating_add(1); + } + } + } + } + let confluences: Vec<(u16, u16)> = (0..n) + .filter(|&i| is_river[i] && inflow_count[i] >= 2) + .map(|i| ((i / w) as u16, (i % w) as u16)) + .collect(); + + // Mouths: river cells that flow to a sea cell or to the polar edge. + let mouths: Vec<(u16, u16)> = (0..n) + .filter(|&i| { + if !is_river[i] { + return false; + } + let r = i / w; + let c = i % w; + let k = fdir[i]; + if k < 0 { + return true; // no outflow — edge + } + let (dr, dc) = D8[k as usize]; + let nr = r as i32 + dr; + let nc = (c as i32 + dc).rem_euclid(w as i32) as usize; + if nr < 0 || nr >= h as i32 { + return true; // polar edge + } + // Flows into a sub-sea-level cell = mouth + elevation[nr as usize * w + nc] < sea_level + }) + .map(|i| ((i / w) as u16, (i % w) as u16)) + .collect(); + + RiverNetwork { + river_cells, + confluences, + mouths, + } +} + +// --------------------------------------------------------------------------- +// Step 6: Basin labeling +// --------------------------------------------------------------------------- + +fn label_basins(fdir: &[i8], accum: &[i32], w: usize, h: usize) -> Vec { + let n = w * h; + let mut labels = vec![-1i32; n]; + + // Pour points: local accumulation maxima above river threshold. + let mut pour_pts: Vec = Vec::new(); + for i in 0..n { + if accum[i] <= RIVER_THRESHOLD { + continue; + } + let r = i / w; + let c = i % w; + let mut is_max = true; + for &(dr, dc) in &D8 { + let nr = r as i32 + dr; + let nc = (c as i32 + dc).rem_euclid(w as i32) as usize; + if nr >= 0 && nr < h as i32 { + if accum[nr as usize * w + nc] > accum[i] { + is_max = false; + break; + } + } + } + if is_max { + pour_pts.push(i); + } + } + + if pour_pts.is_empty() { + // Flat/ocean world — single basin. + labels.iter_mut().for_each(|l| *l = 0); + return labels; + } + + for (basin_id, &idx) in pour_pts.iter().enumerate() { + labels[idx] = basin_id as i32; + } + + // Trace remaining cells: follow fdir until a labeled cell is reached. + for start in 0..n { + if labels[start] >= 0 { + continue; + } + // Walk forward, accumulate path. + let mut path: Vec = Vec::new(); + let mut cur = start; + let label = loop { + if labels[cur] >= 0 { + break labels[cur]; + } + path.push(cur); + let k = fdir[cur]; + if k < 0 { + break 0; // no outflow — assign to basin 0 + } + let r = cur / w; + let c = cur % w; + let (dr, dc) = D8[k as usize]; + let nr = r as i32 + dr; + let nc = (c as i32 + dc).rem_euclid(w as i32) as usize; + if nr < 0 || nr >= h as i32 { + break 0; // polar edge + } + let next = nr as usize * w + nc; + // Cycle guard: if we're visiting a cell already in path, stop. + if path.contains(&next) { + break 0; + } + cur = next; + }; + for idx in path { + labels[idx] = label; + } + } + + labels +} + +// --------------------------------------------------------------------------- +// Step 7: Merge small basins +// --------------------------------------------------------------------------- + +fn merge_small_basins( + mut labels: Vec, + w: usize, + h: usize, + min_count: usize, + max_count: usize, +) -> Vec { + let n = w * h; + let min_frac = 0.02f64; // 2% minimum basin area + + for _ in 0..200 { + // Count basin sizes. + let mut sizes: std::collections::HashMap = std::collections::HashMap::new(); + for &l in &labels { + *sizes.entry(l).or_insert(0) += 1; + } + let n_basins = sizes.len(); + + // Stop if within target range and all basins are large enough. + if n_basins <= max_count + && sizes.values().all(|&s| s as f64 / n as f64 >= min_frac) + { + break; + } + if n_basins <= min_count { + break; + } + + // Find the smallest basin. + let (&smallest_id, &smallest_size) = sizes + .iter() + .min_by_key(|(_, &s)| s) + .unwrap(); + + if n_basins <= max_count && smallest_size as f64 / n as f64 >= min_frac { + break; + } + + // Find its largest adjacent basin. + let nbr_id = find_largest_neighbor(&labels, smallest_id, &sizes, w, h); + let merge_into = nbr_id.unwrap_or(0); + + // Merge. + for l in labels.iter_mut() { + if *l == smallest_id { + *l = merge_into; + } + } + } + + // Renumber contiguously from 0. + let unique: Vec = { + let mut set: std::collections::HashSet = std::collections::HashSet::new(); + for &l in &labels { + set.insert(l); + } + let mut v: Vec = set.into_iter().collect(); + v.sort(); + v + }; + let remap: std::collections::HashMap = unique + .iter() + .enumerate() + .map(|(new, &old)| (old, new as i32)) + .collect(); + for l in labels.iter_mut() { + *l = remap[l]; + } + + labels +} + +fn find_largest_neighbor( + labels: &[i32], + target_id: i32, + sizes: &std::collections::HashMap, + w: usize, + h: usize, +) -> Option { + let n = w * h; + let mut neighbor_sizes: std::collections::HashMap = + std::collections::HashMap::new(); + + for i in 0..n { + if labels[i] != target_id { + continue; + } + let r = i / w; + let c = i % w; + for &(dr, dc) in &D8 { + let nr = r as i32 + dr; + let nc = (c as i32 + dc).rem_euclid(w as i32) as usize; + if nr >= 0 && nr < h as i32 { + let nbr_id = labels[nr as usize * w + nc]; + if nbr_id != target_id { + let size = sizes.get(&nbr_id).copied().unwrap_or(0); + let e = neighbor_sizes.entry(nbr_id).or_insert(0); + if size > *e { + *e = size; + } + } + } + } + } + + neighbor_sizes + .into_iter() + .max_by_key(|(_, s)| *s) + .map(|(id, _)| id) +} + +// --------------------------------------------------------------------------- +// Step 8: Build DrainageBasin structs +// --------------------------------------------------------------------------- + +fn build_basins(labels: &[i32], w: usize, h: usize) -> Vec { + let n = w * h; + let mut basin_map: std::collections::HashMap> = + std::collections::HashMap::new(); + + for (i, &l) in labels.iter().enumerate() { + basin_map.entry(l).or_default().push(i); + } + + let mut basins: Vec = Vec::with_capacity(basin_map.len()); + let mut ids: Vec = basin_map.keys().copied().collect(); + ids.sort(); + + for basin_id in ids { + let cells = &basin_map[&basin_id]; + let area_pct = cells.len() as f32 / n as f32; + + // Boundary cells: in this basin, adjacent to a different basin or edge. + let mut boundary: Vec<(u16, u16)> = Vec::new(); + for &idx in cells { + let r = idx / w; + let c = idx % w; + let mut on_boundary = false; + for &(dr, dc) in &D8 { + let nr = r as i32 + dr; + let nc = (c as i32 + dc).rem_euclid(w as i32) as usize; + if nr < 0 || nr >= h as i32 { + on_boundary = true; + break; + } + if labels[nr as usize * w + nc] != basin_id { + on_boundary = true; + break; + } + } + if on_boundary { + boundary.push((r as u16, c as u16)); + } + } + + // Sort boundary by angle from centroid for a coherent polygon. + if !boundary.is_empty() { + let cr = boundary.iter().map(|&(r, _)| r as f32).sum::() + / boundary.len() as f32; + let cc = boundary.iter().map(|&(_, c)| c as f32).sum::() + / boundary.len() as f32; + boundary.sort_by(|&(r1, c1), &(r2, c2)| { + let a1 = (r1 as f32 - cr).atan2(c1 as f32 - cc); + let a2 = (r2 as f32 - cr).atan2(c2 as f32 - cc); + a1.partial_cmp(&a2).unwrap_or(std::cmp::Ordering::Equal) + }); + // Subsample to ≤500 points. + if boundary.len() > 500 { + let step = boundary.len() / 500; + boundary = boundary.into_iter().step_by(step).collect(); + } + } + + basins.push(DrainageBasin { + basin_id: basin_id as u32, + boundary, + area_pct, + }); + } + + basins +} + +// --------------------------------------------------------------------------- +// Tests +// --------------------------------------------------------------------------- + +#[cfg(test)] +mod tests { + use super::*; + + fn flat_grid(w: u32, h: u32, val: f32) -> Vec { + vec![val; (w * h) as usize] + } + + fn slope_grid(w: u32, h: u32) -> Vec { + let n = (w * h) as usize; + (0..n) + .map(|i| { + let r = i / w as usize; + let c = i % w as usize; + // Slope: higher in top-left, drains toward bottom-right. + 1.0 - (r as f32 / h as f32 * 0.5 + c as f32 / w as f32 * 0.5) + }) + .collect() + } + + #[test] + fn flat_grid_produces_single_basin() { + let elev = flat_grid(16, 8, 0.5); + let result = analyze(&elev, 16, 8, 0.3); + // Flat world → no pour points → single basin + assert_eq!(result.drainage_basins.len(), 1); + assert!((result.drainage_basins[0].area_pct - 1.0).abs() < 0.01); + } + + #[test] + fn slope_grid_has_no_river_cells_below_threshold_by_default() { + // Small 8×4 grid: max flow_accum ≤ 32, below RIVER_THRESHOLD (200). + let elev = slope_grid(8, 4); + let result = analyze(&elev, 8, 4, 0.3); + // River cells may be empty on this tiny grid — that is acceptable. + // What matters: no panic and basin count ≥ 1. + assert!(!result.drainage_basins.is_empty()); + } + + #[test] + fn large_grid_river_cells_nonempty() { + // 512×256: max flow accumulation ~131K >> RIVER_THRESHOLD. + let elev = slope_grid(512, 256); + let result = analyze(&elev, 512, 256, 0.3); + assert!( + !result.river_network.river_cells.is_empty(), + "Expected river cells on a large sloped grid" + ); + } + + #[test] + fn basin_area_pcts_sum_to_one() { + let elev = slope_grid(64, 32); + let result = analyze(&elev, 64, 32, 0.3); + let total: f32 = result.drainage_basins.iter().map(|b| b.area_pct).sum(); + assert!( + (total - 1.0).abs() < 0.01, + "Basin area fractions must sum to 1, got {}", + total + ); + } + + #[test] + fn basin_count_within_target_range() { + let elev = slope_grid(128, 64); + let result = analyze(&elev, 128, 64, 0.3); + let n = result.drainage_basins.len(); + assert!( + n >= 1 && n <= 12, + "Basin count {} out of expected range [1, 12]", + n + ); + } + + #[test] + fn determinism() { + // Running analyze twice on the same input must produce identical results. + let elev = slope_grid(64, 32); + let r1 = analyze(&elev, 64, 32, 0.3); + let r2 = analyze(&elev, 64, 32, 0.3); + assert_eq!( + r1.river_network.river_cells, + r2.river_network.river_cells, + "River cells must be deterministic" + ); + assert_eq!( + r1.drainage_basins.len(), + r2.drainage_basins.len(), + "Basin count must be deterministic" + ); + } +} diff --git a/server/src/atlas/gen_queue.rs b/server/src/atlas/gen_queue.rs new file mode 100644 index 000000000..90c45f40e --- /dev/null +++ b/server/src/atlas/gen_queue.rs @@ -0,0 +1,361 @@ +//! Background generation queue — prioritized Rayon thread pool (D-206). +//! +//! All runtime-background generation work runs through this queue. The main +//! tick thread submits work items (non-blocking) and drains completion events +//! once per tick via a `crossbeam` channel. +//! +//! **Priority levels (D-206):** +//! - `Immediate`: player arrives within 1 game-minute. Runs first. +//! - `High`: player arrives within 5 game-minutes. +//! - `Medium`: player is in the same system. +//! - `Low`: player has heard of this location via NPC/news. +//! +//! **Work item types (D-206):** +//! - `AnalyzeBody`: D8 drainage + attractor extraction for a body. +//! - `GenerateSkeleton`: Phase 1 DistrictSkeleton for a city. +//! - `FillChunk`: Phase 2 chunk fill for a pre-loaded district. +//! +//! Completion events are delivered to the main thread via +//! `GenerationQueue::drain_completions()`, called once per tick from a Bevy +//! system in `TickPhase::PreInput`. +//! +//! **Thread count (D-206):** `available_parallelism - 2`, minimum 1. + +use std::sync::{Arc, Mutex}; + +use bevy_ecs::prelude::Resource; +use crossbeam_channel::{Receiver, Sender}; + +// --------------------------------------------------------------------------- +// Priority +// --------------------------------------------------------------------------- + +/// Work priority levels — lower discriminant = higher priority. +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] +pub enum GenPriority { + /// Player arrives within ~1 game-minute. Runs before all other levels. + Immediate = 0, + /// Player arrives within ~5 game-minutes. + High = 1, + /// Player is in the same system. + Medium = 2, + /// Player has seen or heard of this location (NPC dialogue, news ticker). + Low = 3, +} + +// --------------------------------------------------------------------------- +// Work item types +// --------------------------------------------------------------------------- + +/// A unit of background generation work (D-206). +#[derive(Debug, Clone)] +pub enum GenWorkItem { + /// Run D8 drainage analysis + attractor extraction for this body. + AnalyzeBody { body_id: String }, + /// Generate a Phase 1 DistrictSkeleton for this city. + GenerateSkeleton { city_id: u64 }, + /// Pre-fill a chunk in an existing district. + FillChunk { district_id: u64, block_pos: (u32, u32) }, +} + +impl GenWorkItem { + pub fn body_id(&self) -> Option<&str> { + if let GenWorkItem::AnalyzeBody { body_id } = self { + Some(body_id) + } else { + None + } + } +} + +// --------------------------------------------------------------------------- +// Completion event +// --------------------------------------------------------------------------- + +/// Sent back to the main thread when a work item finishes (D-206). +#[derive(Debug)] +pub enum GenCompletion { + BodyAnalyzed { body_id: String }, + SkeletonGenerated { city_id: u64 }, + ChunkFilled { district_id: u64, block_pos: (u32, u32) }, + /// Work item failed — body_id or city_id for logging. + Failed { item: GenWorkItem, reason: String }, +} + +// --------------------------------------------------------------------------- +// Internal queued work +// --------------------------------------------------------------------------- + +struct QueuedWork { + priority: GenPriority, + item: GenWorkItem, +} + +// --------------------------------------------------------------------------- +// GenerationQueue — Bevy Resource +// --------------------------------------------------------------------------- + +/// Bevy `Resource` managing the background generation queue (D-206). +/// +/// Submit work with `submit()`. Drain completions with `drain_completions()` +/// once per tick. The Rayon thread pool runs tasks in priority order. +#[derive(Resource)] +pub struct GenerationQueue { + /// Pending work items, sorted by priority on submission. + pending: Arc>>, + /// Completions channel — background tasks send here; main thread reads. + completion_tx: Sender, + completion_rx: Receiver, + /// Rayon thread pool dedicated to generation work. + pool: rayon::ThreadPool, + /// Set of body_ids currently in-flight to avoid duplicate submissions. + in_flight: Arc>>, +} + +impl std::fmt::Debug for GenerationQueue { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + let pending_len = self + .pending + .lock() + .map(|p| p.len()) + .unwrap_or(0); + f.debug_struct("GenerationQueue") + .field("pending_count", &pending_len) + .finish() + } +} + +impl GenerationQueue { + /// Create a new queue with the D-206 thread count: + /// `available_parallelism - 2`, minimum 1. + pub fn new() -> Self { + let n_threads = std::thread::available_parallelism() + .map(|p| p.get().saturating_sub(2).max(1)) + .unwrap_or(1); + Self::with_threads(n_threads) + } + + /// Create a queue with a specific thread count (for testing). + pub fn with_threads(n_threads: usize) -> Self { + let pool = rayon::ThreadPoolBuilder::new() + .num_threads(n_threads) + .thread_name(|i| format!("gen-worker-{i}")) + .build() + .expect("failed to build generation rayon pool"); + + let (tx, rx) = crossbeam_channel::unbounded(); + + Self { + pending: Arc::new(Mutex::new(Vec::new())), + completion_tx: tx, + completion_rx: rx, + pool, + in_flight: Arc::new(Mutex::new(std::collections::HashSet::new())), + } + } + + /// Submit a work item at the given priority. + /// + /// If an `AnalyzeBody` item for the same body_id is already in-flight or + /// pending, the submission is silently ignored (idempotent). + pub fn submit(&self, item: GenWorkItem, priority: GenPriority) { + // Dedup AnalyzeBody submissions. + if let Some(body_id) = item.body_id() { + let in_flight = self.in_flight.lock().unwrap(); + if in_flight.contains(body_id) { + return; + } + drop(in_flight); + // Check pending list. + let pending = self.pending.lock().unwrap(); + if pending.iter().any(|q| { + q.item.body_id().map_or(false, |id| id == body_id) + }) { + return; + } + drop(pending); + } + + let mut pending = self.pending.lock().unwrap(); + let pos = pending + .iter() + .position(|q| q.priority > priority) + .unwrap_or(pending.len()); + pending.insert(pos, QueuedWork { priority, item }); + drop(pending); + + self.dispatch_next(); + } + + /// Drain all completed items from the channel. + /// + /// Call once per tick from the main thread. Returns all completions + /// available without blocking. + pub fn drain_completions(&self) -> Vec { + let mut out = Vec::new(); + loop { + match self.completion_rx.try_recv() { + Ok(c) => out.push(c), + Err(_) => break, + } + } + out + } + + /// Number of items waiting in the pending queue. + pub fn pending_count(&self) -> usize { + self.pending.lock().unwrap().len() + } + + // Dispatch the highest-priority pending item to the Rayon pool. + fn dispatch_next(&self) { + let item = { + let mut pending = self.pending.lock().unwrap(); + if pending.is_empty() { + return; + } + pending.remove(0).item + }; + + // Mark body as in-flight. + if let Some(body_id) = item.body_id() { + self.in_flight + .lock() + .unwrap() + .insert(body_id.to_string()); + } + + let tx = self.completion_tx.clone(); + let in_flight = Arc::clone(&self.in_flight); + let pending = Arc::clone(&self.pending); + + self.pool.spawn(move || { + let completion = run_work_item(&item); + + // Un-mark in-flight. + if let Some(body_id) = item.body_id() { + in_flight.lock().unwrap().remove(body_id); + } + + let _ = tx.send(completion); + + // After finishing, check if more pending work exists — in a real + // impl, the next Rayon task is dispatched by the main thread on + // the next tick. We don't self-recurse here to avoid pool saturation. + let _ = pending; // keep Arc alive until task exits + }); + } +} + +impl Default for GenerationQueue { + fn default() -> Self { + Self::new() + } +} + +// --------------------------------------------------------------------------- +// Work execution stub +// --------------------------------------------------------------------------- + +/// Execute one work item. This is the Rayon task body. +/// +/// Currently a stub — real implementations will call `drainage::analyze()`, +/// the attractor pipeline, and the district skeleton generator. Stubs return +/// immediate success to allow the queue infrastructure to be tested independently. +fn run_work_item(item: &GenWorkItem) -> GenCompletion { + match item { + GenWorkItem::AnalyzeBody { body_id } => { + GenCompletion::BodyAnalyzed { body_id: body_id.clone() } + } + GenWorkItem::GenerateSkeleton { city_id } => { + GenCompletion::SkeletonGenerated { city_id: *city_id } + } + GenWorkItem::FillChunk { district_id, block_pos } => { + GenCompletion::ChunkFilled { + district_id: *district_id, + block_pos: *block_pos, + } + } + } +} + +// --------------------------------------------------------------------------- +// Tests +// --------------------------------------------------------------------------- + +#[cfg(test)] +mod tests { + use super::*; + use std::time::Duration; + + fn make_queue() -> GenerationQueue { + GenerationQueue::with_threads(2) + } + + #[test] + fn submit_and_drain() { + let q = make_queue(); + q.submit( + GenWorkItem::AnalyzeBody { body_id: "TestBody".to_string() }, + GenPriority::Medium, + ); + // Give Rayon time to complete the (stub) task. + std::thread::sleep(Duration::from_millis(50)); + let completions = q.drain_completions(); + assert_eq!(completions.len(), 1); + assert!(matches!( + &completions[0], + GenCompletion::BodyAnalyzed { body_id } if body_id == "TestBody" + )); + } + + #[test] + fn dedup_analyze_body() { + let q = make_queue(); + // Submit the same body twice before it can complete. + q.submit( + GenWorkItem::AnalyzeBody { body_id: "Dup".to_string() }, + GenPriority::Low, + ); + q.submit( + GenWorkItem::AnalyzeBody { body_id: "Dup".to_string() }, + GenPriority::Low, + ); + std::thread::sleep(Duration::from_millis(50)); + let completions = q.drain_completions(); + // Should have completed exactly once. + assert_eq!(completions.len(), 1); + } + + #[test] + fn priority_ordering() { + // Submit three items rapidly; Immediate should be dispatched first. + let q = make_queue(); + // Using GenerateSkeleton (no dedup logic) to test ordering directly. + q.submit(GenWorkItem::GenerateSkeleton { city_id: 1 }, GenPriority::Low); + q.submit(GenWorkItem::GenerateSkeleton { city_id: 2 }, GenPriority::Immediate); + q.submit(GenWorkItem::GenerateSkeleton { city_id: 3 }, GenPriority::Medium); + std::thread::sleep(Duration::from_millis(100)); + let completions = q.drain_completions(); + assert_eq!(completions.len(), 3); + } + + #[test] + fn drain_empty_returns_empty() { + let q = make_queue(); + let result = q.drain_completions(); + assert!(result.is_empty()); + } + + #[test] + fn pending_count_decreases_after_completion() { + let q = make_queue(); + q.submit( + GenWorkItem::FillChunk { district_id: 99, block_pos: (0, 0) }, + GenPriority::High, + ); + std::thread::sleep(Duration::from_millis(50)); + let completions = q.drain_completions(); + assert!(!completions.is_empty() || q.pending_count() == 0); + } +} diff --git a/server/src/atlas/heightmap.rs b/server/src/atlas/heightmap.rs new file mode 100644 index 000000000..7f6c7c69e --- /dev/null +++ b/server/src/atlas/heightmap.rs @@ -0,0 +1,201 @@ +//! Heightmap BLOB loader — reads float32 LE elevation grids from systems.db. +//! +//! Implements the Rust side of D-202. The Python pipeline stores each body's +//! elevation grid as a contiguous float32 little-endian BLOB in +//! `atlas_body_heightmaps.data`. This module loads that BLOB via `rusqlite` +//! and reinterprets the bytes into a `Vec` using `bytemuck`. +//! +//! Values are normalized elevation in [0.0, 1.0]. `sea_level` is the fraction +//! below which terrain is underwater (0.0 = no ocean). +//! +//! Canonical grid size: 512 × 256 (GRID_W × GRID_H), row-major. + +use rusqlite::{params, Connection}; +use thiserror::Error; + +/// Canonical grid dimensions matching the Python pipeline (generate_atlas.py). +pub const GRID_W: u32 = 512; +pub const GRID_H: u32 = 256; + +/// A loaded heightmap for one planetary body. +#[derive(Debug, Clone)] +pub struct BodyHeightmap { + pub body_id: String, + pub width: u32, + pub height: u32, + /// Row-major elevation values, normalized to [0.0, 1.0]. + pub data: Vec, + /// Elevation fraction below which terrain is ocean/sea. + pub sea_level: f32, +} + +impl BodyHeightmap { + /// Returns the elevation at (row, col), or `None` if out of bounds. + #[inline] + pub fn get(&self, row: u32, col: u32) -> Option { + if row < self.height && col < self.width { + Some(self.data[(row * self.width + col) as usize]) + } else { + None + } + } + + /// Returns `true` if the cell at (row, col) is land (above sea level). + #[inline] + pub fn is_land(&self, row: u32, col: u32) -> bool { + self.get(row, col).map_or(false, |e| e >= self.sea_level) + } +} + +#[derive(Debug, Error)] +pub enum HeightmapLoadError { + #[error("no heightmap row for body '{0}'")] + NotFound(String), + #[error("BLOB size {actual} does not match declared grid {w}×{h}×4 = {expected}")] + BlobSizeMismatch { + actual: usize, + w: u32, + h: u32, + expected: usize, + }, + #[error("SQLite error: {0}")] + Sql(#[from] rusqlite::Error), +} + +/// Load the heightmap for `body_id` from the open `conn`. +/// +/// The BLOB is reinterpreted in-place via `bytemuck::cast_slice` — no copy +/// beyond the initial `Vec` read from SQLite. On little-endian hosts +/// (all current targets) this is a zero-cost reinterpret. On big-endian hosts +/// the bytes are already stored LE, so each f32 would be byte-swapped; this +/// function does not perform that swap — big-endian support is deferred. +pub fn load_heightmap( + conn: &Connection, + body_id: &str, +) -> Result { + let result = conn.query_row( + "SELECT width, height, data, sea_level \ + FROM atlas_body_heightmaps WHERE body_id = ?1", + params![body_id], + |row| { + let width: u32 = row.get(0)?; + let height: u32 = row.get(1)?; + let blob: Vec = row.get(2)?; + let sea_level: f64 = row.get(3)?; + Ok((width, height, blob, sea_level as f32)) + }, + ); + + match result { + Err(rusqlite::Error::QueryReturnedNoRows) => { + Err(HeightmapLoadError::NotFound(body_id.to_string())) + } + Err(e) => Err(HeightmapLoadError::Sql(e)), + Ok((width, height, blob, sea_level)) => { + let expected = (width * height * 4) as usize; + if blob.len() != expected { + return Err(HeightmapLoadError::BlobSizeMismatch { + actual: blob.len(), + w: width, + h: height, + expected, + }); + } + // Reinterpret the LE bytes as f32 values. bytemuck::cast_slice + // is safe here: we verified the length is a multiple of 4, and + // f32 has no invalid bit patterns. + let floats: &[f32] = bytemuck::cast_slice(&blob); + let data = floats.to_vec(); + Ok(BodyHeightmap { + body_id: body_id.to_string(), + width, + height, + data, + sea_level, + }) + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use rusqlite::Connection; + + fn make_test_db() -> Connection { + let conn = Connection::open_in_memory().unwrap(); + conn.execute_batch( + "CREATE TABLE atlas_body_heightmaps ( + body_id TEXT PRIMARY KEY, + width INTEGER NOT NULL, + height INTEGER NOT NULL, + data BLOB NOT NULL, + sea_level REAL NOT NULL DEFAULT 0.0, + imported_at TEXT NOT NULL DEFAULT (datetime('now')) + );", + ) + .unwrap(); + conn + } + + fn insert_heightmap(conn: &Connection, body_id: &str, w: u32, h: u32, sea_level: f32) { + let floats: Vec = (0..(w * h)) + .map(|i| i as f32 / (w * h) as f32) + .collect(); + let bytes: &[u8] = bytemuck::cast_slice(&floats); + conn.execute( + "INSERT INTO atlas_body_heightmaps (body_id, width, height, data, sea_level) + VALUES (?1, ?2, ?3, ?4, ?5)", + params![body_id, w, h, bytes, sea_level], + ) + .unwrap(); + } + + #[test] + fn round_trip_canonical_size() { + let conn = make_test_db(); + insert_heightmap(&conn, "TestBody", GRID_W, GRID_H, 0.3); + let hm = load_heightmap(&conn, "TestBody").unwrap(); + assert_eq!(hm.width, GRID_W); + assert_eq!(hm.height, GRID_H); + assert_eq!(hm.data.len(), (GRID_W * GRID_H) as usize); + assert!((hm.sea_level - 0.3).abs() < 1e-6); + // First cell is 0.0, last approaches 1.0 + assert_eq!(hm.data[0], 0.0); + assert!(hm.data.last().copied().unwrap() < 1.0); + } + + #[test] + fn get_and_is_land() { + let conn = make_test_db(); + insert_heightmap(&conn, "LandBody", 4, 2, 0.5); + let hm = load_heightmap(&conn, "LandBody").unwrap(); + // First cell (index 0) = 0.0 / 8 = 0.0 — below sea level + assert!(!hm.is_land(0, 0)); + // Last cell (index 7) = 7.0 / 8 = 0.875 — above sea level + assert!(hm.is_land(1, 3)); + // Out-of-bounds returns false + assert!(!hm.is_land(99, 99)); + } + + #[test] + fn not_found_error() { + let conn = make_test_db(); + let err = load_heightmap(&conn, "Ghost").unwrap_err(); + assert!(matches!(err, HeightmapLoadError::NotFound(_))); + } + + #[test] + fn blob_size_mismatch_error() { + let conn = make_test_db(); + // Insert a truncated BLOB + conn.execute( + "INSERT INTO atlas_body_heightmaps (body_id, width, height, data, sea_level) + VALUES ('BadBlob', 4, 4, X'DEADBEEF', 0.0)", + [], + ) + .unwrap(); + let err = load_heightmap(&conn, "BadBlob").unwrap_err(); + assert!(matches!(err, HeightmapLoadError::BlobSizeMismatch { .. })); + } +} diff --git a/server/src/atlas/mod.rs b/server/src/atlas/mod.rs new file mode 100644 index 000000000..7cdc09a48 --- /dev/null +++ b/server/src/atlas/mod.rs @@ -0,0 +1,14 @@ +//! Atlas data loaders — reads pre-computed build-time data from systems.db. +//! +//! These loaders are used by the runtime-background tier (D-200, D-206) when +//! populating BodyWorldState (D-203). They are never called on the main tick thread. + +pub mod attractor_matching; +pub mod block_irregularity; +pub mod body_world_state; +pub mod district_mix; +pub mod drainage; +pub mod gen_queue; +pub mod heightmap; +pub mod skeleton_gen; +pub mod tile_condition; diff --git a/server/src/atlas/skeleton_gen.rs b/server/src/atlas/skeleton_gen.rs new file mode 100644 index 000000000..896a8bebf --- /dev/null +++ b/server/src/atlas/skeleton_gen.rs @@ -0,0 +1,561 @@ +//! Phase 1 district skeleton generator (D-194, D-196, D-211, D-213, D-214). +//! +//! Entry point: [`generate_skeleton`]. Consumes a [`CityGenerationContext`] +//! together with the city's raw population and economic role, and produces a +//! fully classified [`DistrictSkeleton`] with: +//! +//! - [`SettingType`] derived from the surrounding biome context. +//! - [`ComplexityTier`] derived from population tier × [`WorldTier`]. +//! - [`DistrictLayoutMode`] derived from [`PoliticalArchetype`]. +//! - 4×4 block grid with [`ZoningType`] assignments from the district-mix +//! algorithm (D-194). +//! - [`MultiBlockReservation`]s for parks (pop tier ≥ 2) and transit +//! terminals (transit_hub role or pop tier ≥ 3). +//! +//! **Phase 1 scope only** — no chunk-level tiles, no NPC placement, no tile +//! condition data. All stub fields (corridors, social_sites, etc.) are empty. +//! +//! **Determinism (D-010):** Seeded LCG via the district seed; no floating-point +//! in block assignment. + +use crate::atlas::block_irregularity::block_irregularity; +use crate::atlas::district_mix::{compute_district_mix, population_tier}; +use crate::simulation::generator::{ + BlockPlacement, BlockSkeleton, ComplexityTier, DistrictId, DistrictLayoutMode, + DistrictSkeleton, DistrictType, MultiBlockReservation, PoliticalArchetype, + ReservationFunction, ReservationId, SettingType, WorldTier, ZoningType, + CityGenerationContext, +}; + +// --------------------------------------------------------------------------- +// Public API +// --------------------------------------------------------------------------- + +/// Generate a Phase 1 [`DistrictSkeleton`] from a city's generation context. +/// +/// # Parameters +/// - `context`: Build-time city context (archetype, world tier, orientation…). +/// - `population`: Raw population count from atlas_city_names. +/// - `economic_role`: Economic role string (one of the 10 canonical values). +/// - `district_id`: Content-addressable identifier for this district. +/// - `founding_age_years`: Years since founding — controls block irregularity. +/// - `seed`: Deterministic seed for this district (derived from master seed via SeedChain). +pub fn generate_skeleton( + context: &CityGenerationContext, + population: i64, + economic_role: &str, + district_id: DistrictId, + founding_age_years: u32, + seed: u64, +) -> DistrictSkeleton { + // ── 1. SettingType ──────────────────────────────────────────────────── + // Pass through the surrounding_biome from context — it already encodes + // the planet/station/wilderness classification established at atlas time. + let setting = derive_setting(&context.surrounding_biome, economic_role); + + // ── 2. ComplexityTier ───────────────────────────────────────────────── + let tier = population_tier(population); + let complexity = derive_complexity(&context.world_tier, tier, population); + + // ── 3. DistrictLayoutMode ───────────────────────────────────────────── + let irregularity = block_irregularity(founding_age_years, &context.political_archetype); + let layout_mode = derive_layout_mode(&context.political_archetype, irregularity, seed); + + // ── 4. District mix → block grid ───────────────────────────────────── + // A single district occupies a 4×4 block grid = 16 blocks. + let total_blocks: u32 = 16; + let mix = compute_district_mix( + population, + economic_role, + &context.political_archetype, + total_blocks, + seed, + ); + + // ── 5. Multi-block reservations ─────────────────────────────────────── + let reservations = derive_reservations(tier, economic_role, seed); + + // Build the reservation lookup: block position → reservation id. + let mut block_reservation: [[Option; 4]; 4] = + [[None, None, None, None]; 4]; + for (idx, res) in reservations.iter().enumerate() { + let rid = idx as u64 + 1; // 1-based stable id within this district + for &(row, col) in &res.blocks { + let r = row as usize; + let c = col as usize; + if r < 4 && c < 4 { + block_reservation[r][c] = Some(rid); + } + } + } + + // ── Build 4×4 block grid ────────────────────────────────────────────── + // Flat district-mix list is already in deterministic order; assign + // row-major (row 0 col 0 → row 0 col 3 → row 1 col 0 …). + let primary_district_type = mix.districts.first().cloned() + .unwrap_or(DistrictType::MixedUse); + let blocks = build_block_grid(&mix.districts, &block_reservation, &primary_district_type); + + // ── Compute z_levels ────────────────────────────────────────────────── + // Phase 1: single-storey above ground for all non-reserved blocks. + // Reserved blocks carry their own z_levels count. + let z_levels: u8 = 1; + + DistrictSkeleton { + district_id, + seed, + district_type: district_type_from_mix(&primary_district_type), + context: String::new(), // stub — DistrictContext = String + world_tier: context.world_tier.clone(), + complexity, + setting, + layout_mode, + blocks, + reservations, + corridors: Vec::new(), + z_levels, + social_sites: Vec::new(), + access_points: Vec::new(), + society_profile: String::new(), + zone_palette: Vec::new(), + boundaries: String::new(), + guarantee_audit: None, + } +} + +// --------------------------------------------------------------------------- +// SettingType derivation +// --------------------------------------------------------------------------- + +/// Derive SettingType from the city's surrounding biome context. +/// +/// The surrounding_biome on CityGenerationContext already encodes the +/// planet/station classification. For city districts we map it to +/// Urban (the default for settled cities) or pass Station/Maritime/etc. +/// through directly. +fn derive_setting(surrounding_biome: &SettingType, economic_role: &str) -> SettingType { + match surrounding_biome { + // Station bodies → always Station setting regardless of role. + SettingType::Station => SettingType::Station, + // Orbital platforms. + SettingType::Orbital => SettingType::Orbital, + // Maritime worlds — coastal city districts are Maritime. + SettingType::Maritime => SettingType::Maritime, + // Agricultural worlds → Agricultural districts. + SettingType::Agricultural => SettingType::Agricultural, + // For all other planet classes, city districts are Urban. + // Exception: extraction role on wilderness worlds → Specialized. + SettingType::Wilderness { biome } => { + if economic_role == "extraction" { + SettingType::Specialized { + function: format!("extraction-{biome}"), + } + } else { + SettingType::Urban + } + } + // Transit nodes get Transitional setting. + SettingType::Transitional => SettingType::Transitional, + // Water bodies → Water districts don't host cities; treat as Specialized. + SettingType::Water { .. } => SettingType::Specialized { + function: "waterfront".into(), + }, + // Generic Specialized pass-through. + SettingType::Specialized { function } => SettingType::Specialized { + function: function.clone(), + }, + // Default for Urban and any unknown variant: Urban. + SettingType::Urban => SettingType::Urban, + } +} + +// --------------------------------------------------------------------------- +// ComplexityTier derivation +// --------------------------------------------------------------------------- + +/// Derive ComplexityTier from WorldTier + population tier (D-194, D-218). +/// +/// | WorldTier | pop_tier ≥ 1 | pop_tier = 0 | +/// |-----------------|---------------|----------------------| +/// | Epicenter | Full | Moderate | +/// | Regional | Full | Moderate | +/// | Backwater | Moderate | Minimal | +/// | Passage | Moderate | Minimal | +/// | Waypoint | Minimal | Minimal (→ Empty <5K)| +fn derive_complexity(world_tier: &WorldTier, pop_tier: u8, population: i64) -> ComplexityTier { + // Ghost stub threshold: pop < 5000 on Waypoint → Empty. + if population < 5_000 && matches!(world_tier, WorldTier::Waypoint) { + return ComplexityTier::Empty; + } + + match world_tier { + WorldTier::Epicenter | WorldTier::Regional => { + if pop_tier >= 1 { ComplexityTier::Full } else { ComplexityTier::Moderate } + } + WorldTier::Backwater | WorldTier::Passage => { + if pop_tier >= 1 { ComplexityTier::Moderate } else { ComplexityTier::Minimal } + } + WorldTier::Waypoint => ComplexityTier::Minimal, + } +} + +// --------------------------------------------------------------------------- +// DistrictLayoutMode derivation +// --------------------------------------------------------------------------- + +/// Derive DistrictLayoutMode from PoliticalArchetype + block irregularity (D-213, D-214). +/// +/// Commission / Military / Corporate / Academic → Grid (planned geometry). +/// Pioneer / Industrial → Organic (organic growth with per-block offsets). +fn derive_layout_mode( + archetype: &PoliticalArchetype, + irregularity: f32, + seed: u64, +) -> DistrictLayoutMode { + match archetype { + PoliticalArchetype::Commission + | PoliticalArchetype::Military + | PoliticalArchetype::Corporate + | PoliticalArchetype::Academic => DistrictLayoutMode::Grid, + + PoliticalArchetype::Pioneer | PoliticalArchetype::Industrial => { + // Organic: generate per-block offsets and rotations seeded from district seed. + let placements = organic_placements(irregularity, seed); + DistrictLayoutMode::Organic { placements } + } + } +} + +/// Generate 4×4 organic block placements seeded deterministically (D-010). +/// +/// Uses a seeded LCG; offset range controlled by `irregularity` (0.05–1.0) +/// scaled to the ±16 sim tile maximum from `block_irregularity::max_offset_sim_tiles`. +fn organic_placements(irregularity: f32, seed: u64) -> [[BlockPlacement; 4]; 4] { + let max_offset = (irregularity * 16.0) as i16; + let mut lcg = SkeletonLcg::new(seed); + + // Build the 2D array using a flat closure to keep things readable. + let mut flat: [BlockPlacement; 16] = core::array::from_fn(|_| BlockPlacement { + offset: (0, 0), + rotation_steps: 0, + street_width_bps: 10_000, + }); + + for item in flat.iter_mut() { + let raw_x = (lcg.next_u32() % (2 * max_offset as u32 + 1)) as i16 - max_offset; + let raw_y = (lcg.next_u32() % (2 * max_offset as u32 + 1)) as i16 - max_offset; + let rot = (lcg.next_u32() % 4) as u8; // 0–3 (15° increments, max 45°) + // Street width 7500–20000 bps proportional to irregularity. + let width_range = 12_500u32; // 20000 - 7500 + let width = 7_500u32 + (lcg.next_u32() % (width_range + 1)); + *item = BlockPlacement { + offset: (raw_x, raw_y), + rotation_steps: rot, + street_width_bps: width as u16, + }; + } + + // Safety: BlockPlacement is Copy-able; reshape flat array to [[_; 4]; 4]. + core::array::from_fn(|row| { + core::array::from_fn(|col| flat[row * 4 + col].clone()) + }) +} + +// --------------------------------------------------------------------------- +// Block grid construction +// --------------------------------------------------------------------------- + +/// Map a DistrictType to its primary ZoningType (D-194). +fn zoning_for_district(dt: &DistrictType) -> ZoningType { + match dt { + DistrictType::LogisticsHub => ZoningType::Industrial, + DistrictType::Residential => ZoningType::Residential, + DistrictType::Commercial => ZoningType::Commercial, + DistrictType::Industrial => ZoningType::Industrial, + DistrictType::Administrative => ZoningType::Administrative, + DistrictType::Entertainment => ZoningType::Commercial, + DistrictType::MixedUse => ZoningType::Mixed, + DistrictType::Transit => ZoningType::Transit, + DistrictType::Specialized => ZoningType::Restricted, + } +} + +/// Map the primary district type to the DistrictType field on DistrictSkeleton. +fn district_type_from_mix(primary: &DistrictType) -> DistrictType { + primary.clone() +} + +/// Build the 4×4 BlockSkeleton grid from the district mix list and reservation map. +/// +/// Blocks are assigned row-major (index = row * 4 + col). +/// Reserved blocks retain their zoning from the district mix but link to the reservation. +fn build_block_grid( + districts: &[DistrictType], + block_reservation: &[[Option; 4]; 4], + primary: &DistrictType, +) -> [[BlockSkeleton; 4]; 4] { + // Pad or truncate district list to exactly 16. + let district_iter: Vec<&DistrictType> = (0..16) + .map(|i| districts.get(i).unwrap_or(primary)) + .collect(); + + core::array::from_fn(|row| { + core::array::from_fn(|col| { + let idx = row * 4 + col; + let dt = district_iter[idx]; + let zoning = zoning_for_district(dt); + let reservation = block_reservation[row][col]; + + let density = density_for_zoning(&zoning); + BlockSkeleton { + position: (row as u8, col as u8), + zoning, + reservation, + chunk_layout: String::new(), // stub + hosted_sites: Vec::new(), + era: String::new(), // stub + era_modifications: Vec::new(), + era_cause: None, + density_pct: density, + landmark: None, + } + }) + }) +} + +/// Default build density percentage for a zoning type. +fn density_for_zoning(zoning: &ZoningType) -> u8 { + match zoning { + ZoningType::Residential => 60, + ZoningType::Commercial => 80, + ZoningType::Industrial => 70, + ZoningType::Administrative => 75, + ZoningType::Transit => 50, + ZoningType::Recreational => 30, + ZoningType::Restricted => 85, + ZoningType::Mixed => 65, + } +} + +// --------------------------------------------------------------------------- +// Multi-block reservations +// --------------------------------------------------------------------------- + +/// Derive Phase 1 multi-block reservations for a city (D-211, D-194). +/// +/// Reservation rules: +/// - Pop tier ≥ 2 → one 2×2 park reservation at the center-right (blocks (1,2),(1,3),(2,2),(2,3)). +/// - Transit_hub role OR pop tier ≥ 3 → one 1×2 transit terminal at row 0 cols 0–1. +/// +/// Phase 1 produces skeleton-only reservations — floor_zones and vertical_corridors +/// are deferred to Phase 2. +fn derive_reservations(pop_tier: u8, economic_role: &str, _seed: u64) -> Vec { + let mut out = Vec::new(); + + // Park: large cities need open space. + if pop_tier >= 2 { + out.push(MultiBlockReservation { + blocks: vec![(1, 2), (1, 3), (2, 2), (2, 3)], + template_tag: "park-central".into(), + function: ReservationFunction::Park, + z_levels: 1, + base_z: 0, + floor_zones: Vec::new(), + z_band_count: 1, + z_band_zones: Vec::new(), + vertical_corridors: Vec::new(), + hosted_sites: Vec::new(), + }); + } + + // Transit terminal: transit-hub economies and major cities. + if economic_role == "transit_hub" || pop_tier >= 3 { + out.push(MultiBlockReservation { + blocks: vec![(0, 0), (0, 1)], + template_tag: "transit-terminal".into(), + function: ReservationFunction::Terminal, + z_levels: 2, + base_z: -1, // one level of underground rail + floor_zones: Vec::new(), + z_band_count: 2, + z_band_zones: Vec::new(), + vertical_corridors: Vec::new(), + hosted_sites: Vec::new(), + }); + } + + out +} + +// --------------------------------------------------------------------------- +// Minimal seeded LCG (D-010 determinism) +// --------------------------------------------------------------------------- + +struct SkeletonLcg { + state: u64, +} + +impl SkeletonLcg { + fn new(seed: u64) -> Self { + // Mix seed to avoid degenerate state at 0. + Self { state: seed.wrapping_add(0x9e37_79b9_7f4a_7c15) } + } + + fn next_u64(&mut self) -> u64 { + self.state = self.state + .wrapping_mul(6364136223846793005) + .wrapping_add(1442695040888963407); + self.state + } + + fn next_u32(&mut self) -> u32 { + (self.next_u64() >> 33) as u32 + } +} + +// --------------------------------------------------------------------------- +// Tests +// --------------------------------------------------------------------------- + +#[cfg(test)] +mod tests { + use super::*; + use crate::simulation::generator::{ + CityGenerationContext, FoundingOrientation, PoliticalArchetype, SettingType, WorldTier, + }; + + fn make_context(archetype: PoliticalArchetype, world_tier: WorldTier) -> CityGenerationContext { + CityGenerationContext { + city_id: 1, + political_archetype: archetype, + prosperity_baseline: 0.7, + surrounding_biome: SettingType::Urban, + road_entry_directions: vec![0, 4], + footprint_radius_km: 10.0, + founding_orientation: FoundingOrientation::Cardinal, + world_tier, + } + } + + #[test] + fn setting_station_passthrough() { + let mut ctx = make_context(PoliticalArchetype::Commission, WorldTier::Regional); + ctx.surrounding_biome = SettingType::Station; + let sk = generate_skeleton(&ctx, 500_000, "institutional", 1, 200, 42); + assert!(matches!(sk.setting, SettingType::Station)); + } + + #[test] + fn setting_urban_for_city_on_planet() { + let ctx = make_context(PoliticalArchetype::Commission, WorldTier::Regional); + let sk = generate_skeleton(&ctx, 500_000, "financial", 1, 200, 42); + assert!(matches!(sk.setting, SettingType::Urban)); + } + + #[test] + fn complexity_epicenter_high_pop_is_full() { + let ctx = make_context(PoliticalArchetype::Commission, WorldTier::Epicenter); + // 10M pop → pop_tier = 1 → Full on Epicenter + let sk = generate_skeleton(&ctx, 10_000_000, "financial", 1, 200, 42); + assert_eq!(sk.complexity, ComplexityTier::Full); + } + + #[test] + fn complexity_waypoint_tiny_pop_is_empty() { + let ctx = make_context(PoliticalArchetype::Pioneer, WorldTier::Waypoint); + let sk = generate_skeleton(&ctx, 1_000, "residential", 1, 50, 42); + assert_eq!(sk.complexity, ComplexityTier::Empty); + } + + #[test] + fn complexity_backwater_low_pop_is_minimal() { + let ctx = make_context(PoliticalArchetype::Pioneer, WorldTier::Backwater); + // 50_000 pop → pop_tier = 0 → Minimal on Backwater + let sk = generate_skeleton(&ctx, 50_000, "residential", 1, 50, 42); + assert_eq!(sk.complexity, ComplexityTier::Minimal); + } + + #[test] + fn layout_commission_is_grid() { + let ctx = make_context(PoliticalArchetype::Commission, WorldTier::Regional); + let sk = generate_skeleton(&ctx, 500_000, "institutional", 1, 100, 99); + assert!(matches!(sk.layout_mode, DistrictLayoutMode::Grid)); + } + + #[test] + fn layout_pioneer_is_organic() { + let ctx = make_context(PoliticalArchetype::Pioneer, WorldTier::Regional); + let sk = generate_skeleton(&ctx, 500_000, "residential", 1, 400, 99); + assert!(matches!(sk.layout_mode, DistrictLayoutMode::Organic { .. })); + } + + #[test] + fn block_grid_is_fully_populated() { + let ctx = make_context(PoliticalArchetype::Commission, WorldTier::Regional); + let sk = generate_skeleton(&ctx, 500_000, "financial", 1, 200, 42); + // All 16 blocks must have valid positions. + for row in 0..4 { + for col in 0..4 { + let b = &sk.blocks[row][col]; + assert_eq!(b.position, (row as u8, col as u8)); + assert!(b.density_pct <= 100); + } + } + } + + #[test] + fn no_reservations_for_small_city() { + let ctx = make_context(PoliticalArchetype::Pioneer, WorldTier::Backwater); + // pop_tier 0, not transit_hub → no reservations. + let sk = generate_skeleton(&ctx, 80_000, "residential", 1, 50, 42); + assert!(sk.reservations.is_empty()); + } + + #[test] + fn park_reservation_for_large_city() { + let ctx = make_context(PoliticalArchetype::Commission, WorldTier::Epicenter); + // 100M pop → pop_tier 2 → park reservation. + let sk = generate_skeleton(&ctx, 100_000_000, "financial", 1, 300, 42); + let has_park = sk.reservations.iter() + .any(|r| matches!(r.function, ReservationFunction::Park)); + assert!(has_park); + } + + #[test] + fn transit_terminal_for_transit_hub_role() { + let ctx = make_context(PoliticalArchetype::Commission, WorldTier::Regional); + // pop_tier 0 but transit_hub → terminal reservation. + let sk = generate_skeleton(&ctx, 80_000, "transit_hub", 1, 200, 42); + let has_terminal = sk.reservations.iter() + .any(|r| matches!(r.function, ReservationFunction::Terminal)); + assert!(has_terminal); + } + + #[test] + fn reserved_blocks_linked_in_grid() { + let ctx = make_context(PoliticalArchetype::Commission, WorldTier::Epicenter); + // 100M pop → park at (1,2),(1,3),(2,2),(2,3) with reservation id 1. + let sk = generate_skeleton(&ctx, 100_000_000, "financial", 1, 300, 42); + // All park blocks must reference the park reservation (id=1). + for &(row, col) in &[(1u8, 2u8), (1, 3), (2, 2), (2, 3)] { + let b = &sk.blocks[row as usize][col as usize]; + assert!(b.reservation.is_some(), "block ({row},{col}) should be reserved"); + } + } + + #[test] + fn determinism_same_seed_same_output() { + let ctx = make_context(PoliticalArchetype::Industrial, WorldTier::Regional); + let sk1 = generate_skeleton(&ctx, 2_000_000, "manufacturing", 77, 250, 12345); + let sk2 = generate_skeleton(&ctx, 2_000_000, "manufacturing", 77, 250, 12345); + // Compare block grid zoning and positions. + for row in 0..4 { + for col in 0..4 { + assert_eq!(sk1.blocks[row][col].zoning, sk2.blocks[row][col].zoning); + assert_eq!(sk1.blocks[row][col].position, sk2.blocks[row][col].position); + assert_eq!(sk1.blocks[row][col].density_pct, sk2.blocks[row][col].density_pct); + } + } + assert_eq!(sk1.reservations.len(), sk2.reservations.len()); + } +} diff --git a/server/src/atlas/tile_condition.rs b/server/src/atlas/tile_condition.rs new file mode 100644 index 000000000..e5faa850f --- /dev/null +++ b/server/src/atlas/tile_condition.rs @@ -0,0 +1,191 @@ +//! Tile condition thresholds and derivation (D-217). +//! +//! A tile's visual condition is derived from the district's `prosperity_score` +//! (0.0–1.0) using four threshold bands. The block's `EraCause` applies a +//! minimum condition floor that prevents high-prosperity scores from masking +//! historical decay. +//! +//! **Threshold bands (D-217):** +//! | Band | Condition | prosperity_score | +//! |------|-----------|-----------------| +//! | 1 | Intact | > 0.63 | +//! | 2 | Worn | 0.43 – 0.63 | +//! | 3 | Cracked | 0.23 – 0.43 | +//! | 4 | Broken | < 0.23 | +//! +//! **Era-based floor (D-217):** +//! - `EconomicDisruption` (Decay-era): minimum Cracked. +//! - `EmergencyExtension`: minimum Worn. +//! - All other eras: no floor — condition follows prosperity_score freely. +//! +//! **Threshold crossing invalidation:** A tile's condition only changes when +//! `prosperity_score` crosses a band boundary. Checked once per game-minute. +//! +//! Threshold values are authored constants (D-217): 0.63, 0.43, 0.23. + +use crate::simulation::generator::EraCause; + +// --------------------------------------------------------------------------- +// TileCondition +// --------------------------------------------------------------------------- + +/// Visual condition band for a tile, derived from prosperity_score (D-217). +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] +pub enum TileCondition { + /// prosperity_score > 0.63. Clean, undamaged, well-maintained. + Intact, + /// prosperity_score 0.43–0.63. Scuff marks, minor discoloration, partial repairs. + Worn, + /// prosperity_score 0.23–0.43. Visible damage, incomplete repair, graffiti. + Cracked, + /// prosperity_score < 0.23. Structural damage, debris, derelict appearance. + Broken, +} + +// --------------------------------------------------------------------------- +// Threshold constants (D-217 authored — do not compute at runtime) +// --------------------------------------------------------------------------- + +pub const THRESHOLD_INTACT: f32 = 0.63; +pub const THRESHOLD_WORN: f32 = 0.43; +pub const THRESHOLD_CRACKED: f32 = 0.23; + +// --------------------------------------------------------------------------- +// Derivation +// --------------------------------------------------------------------------- + +/// Derive `TileCondition` from `prosperity_score` alone (no era floor). +pub fn condition_from_score(prosperity_score: f32) -> TileCondition { + if prosperity_score > THRESHOLD_INTACT { + TileCondition::Intact + } else if prosperity_score > THRESHOLD_WORN { + TileCondition::Worn + } else if prosperity_score > THRESHOLD_CRACKED { + TileCondition::Cracked + } else { + TileCondition::Broken + } +} + +/// Era-based minimum condition floor (D-217). +/// +/// Returns the minimum `TileCondition` for a block with the given `EraCause`. +/// `None` means no floor — condition follows prosperity_score freely. +pub fn era_condition_floor(era_cause: Option<&EraCause>) -> Option { + match era_cause { + Some(EraCause::EconomicDisruption) => Some(TileCondition::Cracked), + Some(EraCause::EmergencyExtension) => Some(TileCondition::Worn), + _ => None, + } +} + +/// Derive `TileCondition` with era-based floor applied. +/// +/// If the era floor is stricter (lower condition) than the score-derived +/// condition, the floor wins. +pub fn tile_condition(prosperity_score: f32, era_cause: Option<&EraCause>) -> TileCondition { + let from_score = condition_from_score(prosperity_score); + match era_condition_floor(era_cause) { + Some(floor) => { + // Lower enum discriminant = better condition (Intact < Worn < Cracked < Broken). + // Floor is a *minimum degradation* — we want the worse of the two. + if floor > from_score { + floor + } else { + from_score + } + } + None => from_score, + } +} + +/// Check whether a threshold crossing occurred between two prosperity scores. +/// +/// Returns `true` if the tile's condition band changed between `old_score` and +/// `new_score`. Used by the game-minute update loop to decide whether to +/// apply a `ChunkMutation.tile_override`. +pub fn threshold_crossed(old_score: f32, new_score: f32) -> bool { + condition_from_score(old_score) != condition_from_score(new_score) +} + +// --------------------------------------------------------------------------- +// Tests +// --------------------------------------------------------------------------- + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn intact_above_0_63() { + assert_eq!(condition_from_score(0.64), TileCondition::Intact); + assert_eq!(condition_from_score(1.0), TileCondition::Intact); + } + + #[test] + fn worn_between_0_43_and_0_63() { + assert_eq!(condition_from_score(0.63), TileCondition::Worn); + assert_eq!(condition_from_score(0.50), TileCondition::Worn); + assert_eq!(condition_from_score(0.44), TileCondition::Worn); + } + + #[test] + fn cracked_between_0_23_and_0_43() { + assert_eq!(condition_from_score(0.43), TileCondition::Cracked); + assert_eq!(condition_from_score(0.30), TileCondition::Cracked); + assert_eq!(condition_from_score(0.24), TileCondition::Cracked); + } + + #[test] + fn broken_below_0_23() { + assert_eq!(condition_from_score(0.23), TileCondition::Broken); + assert_eq!(condition_from_score(0.10), TileCondition::Broken); + assert_eq!(condition_from_score(0.0), TileCondition::Broken); + } + + #[test] + fn era_floor_decay_enforces_cracked_minimum() { + // Prosperous district in an EconomicDisruption-era block — still Cracked. + let cond = tile_condition(0.90, Some(&EraCause::EconomicDisruption)); + assert_eq!(cond, TileCondition::Cracked, + "EconomicDisruption floor must prevent Intact/Worn"); + } + + #[test] + fn era_floor_emergency_extension_enforces_worn_minimum() { + // High prosperity EmergencyExtension block should never be Intact. + let cond = tile_condition(0.80, Some(&EraCause::EmergencyExtension)); + assert_eq!(cond, TileCondition::Worn); + } + + #[test] + fn era_floor_does_not_improve_condition() { + // EconomicDisruption floor = Cracked; Broken score stays Broken. + let cond = tile_condition(0.10, Some(&EraCause::EconomicDisruption)); + assert_eq!(cond, TileCondition::Broken, + "Era floor must not improve condition below score-derived value"); + } + + #[test] + fn no_era_cause_follows_score() { + let cond = tile_condition(0.90, None); + assert_eq!(cond, TileCondition::Intact); + } + + #[test] + fn threshold_crossed_detects_band_change() { + // 0.7 → 0.5 crosses the 0.63 boundary. + assert!(threshold_crossed(0.70, 0.50)); + // 0.55 → 0.48 stays in Worn band. + assert!(!threshold_crossed(0.55, 0.48)); + // 0.40 → 0.20 crosses 0.23 boundary. + assert!(threshold_crossed(0.40, 0.20)); + } + + #[test] + fn condition_ordering_intact_is_best() { + assert!(TileCondition::Intact < TileCondition::Worn); + assert!(TileCondition::Worn < TileCondition::Cracked); + assert!(TileCondition::Cracked < TileCondition::Broken); + } +} From 38f9002844c3b8d2f17e0129dd7c94b2c89921e7 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sat, 2 May 2026 18:39:52 +0200 Subject: [PATCH 02/15] fix(simulation): resolve Bevy baseline test panics (#885) Three root causes: SnapshotBuffer hard-dependency in economy.rs (Option-wrapped), TickPhase::configure missing from SimulationPlugin (added idempotent call), and stale golden file after D-192 dropped the version field (regenerated). All 6 previously-failing tests now pass with zero regressions. Co-Authored-By: Claude Opus 4.6 (1M context) --- server/src/simulation/economy.rs | 8 +++++++- server/src/simulation/mod.rs | 5 +++++ server/tests/golden/proof_room_tick_10.json | 1 - 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/server/src/simulation/economy.rs b/server/src/simulation/economy.rs index 928bf0134..4c6401dc4 100644 --- a/server/src/simulation/economy.rs +++ b/server/src/simulation/economy.rs @@ -299,13 +299,19 @@ pub struct EconQueryBuffer { pub fn serve_econ_state_query( mut query_buf: ResMut, econ_state: Option>, - mut snapshot_buf: ResMut, + snapshot_buf: Option>, ) { let system_id = match query_buf.pending.take() { Some(s) => s, None => return, }; + // SnapshotBuffer only exists when BridgePlugin is loaded (not in standalone tests). + let mut snapshot_buf = match snapshot_buf { + Some(b) => b, + None => return, + }; + let econ_state = match econ_state { Some(s) => s, None => { diff --git a/server/src/simulation/mod.rs b/server/src/simulation/mod.rs index b32c752d2..995f50ed2 100644 --- a/server/src/simulation/mod.rs +++ b/server/src/simulation/mod.rs @@ -24,6 +24,7 @@ pub mod modification; pub mod monologue; pub mod movement; pub mod movement_plugin; +pub mod name_index; pub mod npc_components; pub mod npc_knowledge_transfer; pub mod path_follow; @@ -59,6 +60,10 @@ pub struct SimulationPlugin { impl Plugin for SimulationPlugin { fn build(&self, app: &mut App) { + // Phase ordering must be configured before any system is registered. + // TickPhase::configure is idempotent — safe if main.rs calls it again. + crate::tick_phases::TickPhase::configure(app); + // Tier marker components (D-026) — must register before behavior systems app.add_plugins(tier::TierPlugin); diff --git a/server/tests/golden/proof_room_tick_10.json b/server/tests/golden/proof_room_tick_10.json index 3e4ec9109..f7da9c7d8 100644 --- a/server/tests/golden/proof_room_tick_10.json +++ b/server/tests/golden/proof_room_tick_10.json @@ -38,7 +38,6 @@ "state_hash": 14452262397297540338, "tick": 8, "triangle_crisis_events": [], - "version": 19, "visible_tiles": [ { "tile_kind": "Floor", From 8abb8e4ec11840521aae9601e5c81ad56e7618d0 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sat, 2 May 2026 18:40:02 +0200 Subject: [PATCH 03/15] docs(decisions): formalize D-194 through D-218 generation cascade records 25 D-records defining the full generation pipeline from heightmap to walkable tile: WorldTier taxonomy (D-218), settlement classification (D-196), city generation context (D-200), drainage routing (D-208), attractor matching (D-211), district mix (D-194), and supporting enums/types. Produced by workshop #897, formalized from ticket specs. Co-Authored-By: Claude Opus 4.6 (1M context) --- decisions/architecture.md | 478 +++++++++++++++++++++++++++++++++++++- 1 file changed, 477 insertions(+), 1 deletion(-) diff --git a/decisions/architecture.md b/decisions/architecture.md index ffb340960..0916c5c23 100644 --- a/decisions/architecture.md +++ b/decisions/architecture.md @@ -761,4 +761,480 @@ Technical foundation decisions that constrain implementation: engine, client-ser --- -*54 decisions. Last updated: 2026-04-21 (D-192 — drop PROTOCOL_VERSION lockstep handshake, sprint 36 client triage)* +### D-194: Three-Component District Mix Algorithm for City District Type Distribution +- **Date:** 2026-05-01 +- **Decision:** District type distribution for a generated city is computed from three components combined at generation time: + 1. **Population tier guarantees** — minimum district counts enforced by city size. Population tier is `floor(log10(pop / 1_000_000))`, capped at 5. Larger populations guarantee minimum counts of Transit, Commercial, and Residential districts. + 2. **10×9 economic multiplier table** — rows are 10 `economic_role` values (manufacturing, financial, agricultural, extraction, service_mixed, institutional, transit_hub, research, military, residential); columns are 9 `DistrictType` variants. Each cell is a weight multiplier (0.0–3.0) applied to that district type's base probability for cities of that economic role. + 3. **Political archetype modifiers** — `PoliticalArchetype` shifts weights for Institutional, Restricted-access, and Civic district types. Corporate archetype boosts Commercial + Restricted. Commission archetype boosts Institutional + Administrative. Pioneer archetype boosts Mixed-use + Organic residential. + - **Founding age character** is applied as a post-mix adjustment to `BlockIrregularity` (see D-216), not to the district type distribution itself. + - The mix is self-contained per city: two cities with the same economic role, population tier, and political archetype produce the same district type distribution (modulo seed-driven noise). No city-to-city state dependency. + - Integer weights throughout — no f32 for D-010 determinism. +- **Rationale:** Economic role should visibly shape a city's physical form. A financial hub looks different from a mining hub. Population tier prevents cities from being too small to sustain their economic function. Political archetype encodes power structure in spatial form — Corporate settlements are commercially dense, Commission settlements are institutionally heavy. The three-component model is the minimum set to produce legible variety; adding more inputs risks over-constraining the generator. +- **Ticket:** #920 +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-191 (atlas pipeline), D-213 (DistrictType enum), D-214 (PoliticalArchetype), D-216 (BlockIrregularity) + +### D-195: Attractor-Matching Compatibility Matrix for Generative City Placement +- **Date:** 2026-05-01 +- **Decision:** City placement on a planetary surface uses an attractor-matching model. A `GeographicAttractor` is a terrain feature that increases city placement score at nearby positions. Seven `AttractorType` variants: `RiverMouth`, `CoastalAccess`, `RiverCrossing`, `ValleyFloor`, `PassEntrance`, `LakeShore`, `PlainCenter`. A `CompatibilityMatrix` is a 10×7 scoring table (10 `economic_role` values × 7 attractor types) whose cells are float weights (0.0–3.0) representing how strongly that economic role favors that terrain feature. Examples: manufacturing → RiverMouth 2.8, ValleyFloor 2.1; financial → CoastalAccess 2.5, PlainCenter 1.8; agricultural → ValleyFloor 3.0, PlainCenter 2.5. The matrix is authored data (not computed at runtime). Attractor extraction from heightmaps is defined in D-209. Matching algorithm is defined in D-211. +- **Rationale:** Terrain-naive city placement produces spatially incoherent worlds. The compatibility matrix gives different city types different terrain affinities, so financial hubs appear on coasts and agricultural cities appear in fertile valleys — without hard-coding placement rules per city type. The float weight matrix gives graduated preference, not binary requirement. +- **Ticket:** #919, #925 +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-191 (atlas pipeline), D-208 (D8 drainage — attractor extraction), D-209 (feature tag extraction), D-211 (attractor-matching pipeline) + +### D-196: SettlementClass Enum and Latent Settlement Active/Ghost Logic +- **Date:** 2026-05-01 +- **Decision:** Every settlement (city marker in `atlas_city_names`) has a `SettlementClass` that determines how it enters and exits active simulation: + ```rust + enum SettlementClass { + NameLocked, // Named in wiki; always active regardless of population + PopulationBudget, // Active if pop > threshold; ghost if below + EconomicTriggered, // Active only while economic role condition is met + OrganicGrowth, // Emergent; generated by simulation, no prior wiki record + } + ``` + - **Active threshold** (applies to `PopulationBudget`): population ≥ 50,000 for a city to receive full Phase 1 district skeleton generation. Below threshold: 1-district stub with Minimal ComplexityTier. + - **Ghost threshold** (applies to `PopulationBudget`): population < 5,000. Settlement is present in atlas data but receives no NPC population; structures are generated as abandoned (Worn/Derelict condition baseline). + - `NameLocked` settlements bypass both thresholds — they are always simulated regardless of population (handles narrative-significant small towns). + - `EconomicTriggered` settlements collapse to ghost state when their triggering economic condition lapses (e.g., a mining outpost depopulates when the mine is exhausted). + - `OrganicGrowth` settlements are not in `atlas_city_names` at generation time; they are written to the table during simulation when a settlement emerges organically. +- **Rationale:** Not every named location needs full generation, and not every simulated location is named. The classification separates authorial intent (NameLocked) from economic reality (PopulationBudget, EconomicTriggered) and simulation emergence (OrganicGrowth). Ghost settlements are important for world texture — abandoned mining towns and depopulated frontier outposts are as legible as thriving hubs. +- **Ticket:** #913 +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-191 (atlas pipeline), D-200 (CityGenerationContext), D-203 (BodyWorldState), D-207 (atlas_city_names) + +### D-197: prosperity_baseline Derivation Formula with Topographic Gradient +- **Date:** 2026-05-01 +- **Decision:** Each city's `prosperity_baseline` (f32, 0.0–1.0, used as economic pressure state seed) is derived at generation time from four components: + 1. **Economic role base** — lookup per `economic_role` value: manufacturing=0.55, financial=0.70, agricultural=0.50, extraction=0.45, service_mixed=0.60, institutional=0.65, transit_hub=0.60, research=0.65, military=0.55, residential=0.50. + 2. **Population log-scale bonus** — `0.04 × floor(log10(pop / 1_000_000 + 1))`, capped at +0.12. Larger cities are generally more prosperous. + 3. **Topographic gradient bonus** — terrain features that historically correlate with prosperity add to the baseline: river mouth +0.08, coastal access +0.06, valley floor +0.04, pass entrance +0.03. At most one terrain bonus applies (the highest-scoring attractor at the city's position). + 4. **Seed noise** — ±0.05 uniform noise applied last (integer-seeded per city, D-010 determinism). + - Formula: `base + pop_bonus + terrain_bonus + noise`, clamped to [0.1, 0.95]. + - `prosperity_baseline` is not the current prosperity level — it is the simulation's starting point and decay/growth target. The live pressure simulation (D-026) drifts from this value based on trade flows, events, and faction pressure. +- **Rationale:** A flat random baseline produces economically incoherent worlds. Terrain-informed prosperity encodes real-world patterns: port cities are wealthy, river-mouth cities are strategic. The log-scale population bonus prevents megacities from dominating without eliminating small-city character. Clamping to [0.1, 0.95] prevents degenerate all-thriving or all-collapsing starting states. +- **Ticket:** #920 (consumer of prosperity_baseline) +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-194 (district mix — consumes prosperity_baseline), D-195 (attractor types that produce terrain bonus) + +### D-198: Economic Simulation Independence from Layer 1–2 Spatial Data +- **Date:** 2026-05-01 +- **Decision:** The economics simulation (Phase 2, D-026 background tier) runs independently of Layer 1 (galaxy graph) and Layer 2 (location profiles / planetary topography). Economic state is seeded at game start from `systems.db` data (economic roles, trade flows, corporate presence) and then drifts via the pressure simulation. The generator (Layer 7 district skeleton) reads economic pressure state as an input but does not feed back into the simulation model. The two layers communicate one-way: simulation → generator (pressure state used to set district condition and density), never generator → simulation. + - **Prohibited:** Generator code must not modify `PressureState`. Generator code must not query live simulation state during async background generation tasks (race condition risk). Generator reads a snapshot of pressure state taken at generation dispatch time. + - **Allowed:** The generator reads `economic_health`, `prosperity_baseline`, `industries`, and `faction_influence` from the snapshot. These are read-only inputs to Phase 1 skeleton classification and Phase 2 condition application. +- **Rationale:** Bidirectional coupling between generator and simulation creates initialization order dependencies and potential circular references. The one-way data flow (simulation → generator snapshot → generator) keeps both systems independently testable and avoids race conditions in the Rayon thread pool (D-206). The generator is a consumer of economic state, not a participant in economic evolution. +- **Ticket:** #915 (CityGenerationContext reads economic snapshot) +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-026 (simulation tiers), D-200 (CityGenerationContext), D-206 (background generation queue) + +### D-199: 6-Field Minimum Economic Read Set for City Generation Context +- **Date:** 2026-05-01 +- **Decision:** When building a `CityGenerationContext` (D-200), the generator reads exactly 6 fields from the economic pressure snapshot per city. Reading more fields is permitted but these 6 are the minimum required for correct Phase 1 skeleton classification: + 1. `economic_role` — primary function of the city (determines DistrictType distribution via D-194) + 2. `prosperity_baseline` — starting economic health (0.0–1.0, see D-197) + 3. `population` — city population (determines ComplexityTier ceiling, BlockSkeleton density) + 4. `dominant_faction` — faction with highest `faction_influence` at this location (affects Institutional and Restricted district bias) + 5. `founding_age_years` — years since settlement founding (drives BlockIrregularity via D-216, era distribution) + 6. `settlement_class` — `SettlementClass` enum value (D-196, determines whether to generate at all) + - Fields 1–5 are read from `systems.db` (bodies table + economics tables). Field 6 is derived at generator dispatch time. + - All 6 fields must be present before a generation task is dispatched. Missing fields abort the task with a logged error; generation does not proceed with partial context. +- **Rationale:** A fixed minimum read set prevents generators from accumulating unbounded dependencies on simulation state. The 6 fields cover the minimum information needed to produce a correctly-classified skeleton. The abort-on-missing-fields rule ensures generator output is always deterministic from a complete context, never silently degraded from a partial one. +- **Ticket:** #915 (CityGenerationContext implementation) +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-196 (SettlementClass), D-197 (prosperity_baseline), D-198 (economic simulation independence), D-200 (CityGenerationContext struct) + +### D-200: Three-Tier Execution Model (Build-Time / Runtime-Background / Runtime-On-Demand) +- **Date:** 2026-05-01 +- **Decision:** The generation pipeline operates at three distinct execution tiers with no cross-tier mutation: + 1. **Build-time (Python pipeline):** Runs `make regen-db`. Produces `systems.db` tables including `atlas_body_heightmaps`, `atlas_city_names`, `atlas_province_boundaries`, `body_radius_km`. Output is a static artifact committed to the repo. Never runs during gameplay. + 2. **Runtime-background (Rayon thread pool, D-206):** Triggered by content-spidering events (player approaches a system, NPC names a location, news ticker references a place). Runs D8 drainage analysis (D-208), attractor extraction (D-209), settlement placement, and Phase 1 district skeleton generation. Output goes into `BodyWorldState` cache (D-203). Transparent to main tick thread. + 3. **Runtime-on-demand (main tick thread):** Triggered when the player crosses a chunk boundary. Runs Phase 2 chunk fill for the approaching chunk. Must complete within 5ms. Reads from `BodyWorldState` cache (always populated before this tier runs). + - **Tier boundary rules:** + - Build-time outputs are read-only at runtime. + - Runtime-background tasks read from `systems.db` and write to `BodyWorldState` only. + - Runtime-on-demand reads from `BodyWorldState` and writes to the active ECS world (chunk tile data, NPC spawns). + - No tier may write to a higher tier's outputs. No circular dependencies. + - `CityGenerationContext` struct (see below) is the data contract between tiers 1→2. + ```rust + struct CityGenerationContext { + city_id: u64, + political_archetype: PoliticalArchetype, + prosperity_baseline: f32, + surrounding_biome: SettingType, + road_entry_directions: Vec, // compass octants (0–7) + footprint_radius_km: f32, + founding_orientation: FoundingOrientation, + world_tier: WorldTier, + } + ``` +- **Rationale:** Three tiers with explicit boundaries eliminates the "where does this code run?" question. Build-time is deterministic and committable. Runtime-background is parallelizable. Runtime-on-demand has strict latency budgets. Cross-tier mutation would create race conditions between the Rayon thread pool and the main tick thread. +- **Ticket:** #915 +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-026 (simulation tiers), D-194 (district mix), D-203 (BodyWorldState), D-206 (background generation queue), tyre-sw1r3.md Layer 5/6 architecture + +### D-201: Spatial Hierarchy — Eight Tiers with Locked Dimensions +- **Date:** 2026-05-01 +- **Decision:** The generation pipeline has eight spatial tiers from galaxy to tile. Dimensions are locked and cannot be changed without amending this decision: + + | Tier | Name | Dimensions | Purpose | + |------|------|------------|---------| + | 1 | Galaxy | 300 systems | Galaxy graph, gate topology, cultural corridors | + | 2 | System | — | Orbital mechanics, body catalog | + | 3 | Body | ~512×256 pixels (equirectangular heightmap) | Planetary topography, climate zones | + | 4 | Region | ~50–500km | Province boundaries (watershed-derived, D-205), biome zones | + | 5 | Settlement | ~1–30km radius | City footprint, district layout | + | 6 | District | 512×512 sim tiles (256m) | Phase 1 skeleton, 4×4 block grid (D-094) | + | 7 | Block | 128×128 sim tiles (64m) | Generator planning unit, 2×2 chunks (D-094) | + | 8 | Chunk | 64×64 sim tiles (32m) | Streaming/serialization unit (D-094) | + + - Tiers 6–8 are locked by D-094 (district spatial hierarchy). This decision formalizes Tiers 1–5 with equivalent lock status. + - Tier 3 heightmap resolution (512×256 equirectangular at 1024×512 PNG) is the canonical format. Deviation requires amending D-191. + - Tier 4 province boundaries are pre-computed at build-time and stored in `atlas_province_boundaries` (D-205). They are not re-computed at runtime. + - The `SettingType` enum on `DistrictSkeleton` is the interface between Tier 5 (settlement planning) and Tier 6 (district generation). +- **Rationale:** Locking spatial dimensions prevents the generative layers from drifting in incompatible directions. The heightmap pipeline, atlas pipeline, and district generator all assume these dimensions and would need coordinated migration if they changed. Formalization prevents silent per-system variation. +- **Ticket:** #912 (WorldTier enum), #913 (SettlementClass) +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-094 (district hierarchy — Tiers 6–8), D-191 (atlas pipeline — Tier 3), D-205 (province boundaries — Tier 4), D-208 (D8 drainage — Tier 3 analysis) + +### D-202: Heightmap BLOB Storage Schema (atlas_body_heightmaps) +- **Date:** 2026-05-01 +- **Decision:** Heightmap elevation data is stored in `systems.db` as a BLOB in the `atlas_body_heightmaps` table. Schema: + ```sql + CREATE TABLE atlas_body_heightmaps ( + body_id INTEGER PRIMARY KEY REFERENCES bodies(id), + width INTEGER NOT NULL, -- pixel columns (canonical: 512) + height INTEGER NOT NULL, -- pixel rows (canonical: 256) + data BLOB NOT NULL, -- float32 little-endian, row-major, width×height floats + sea_level REAL NOT NULL DEFAULT 0.0, + imported_at TEXT NOT NULL DEFAULT (datetime('now')) + ); + ``` + - `data` is a `float32` little-endian BLOB. Size: `width × height × 4` bytes. Canonical: 512×256×4 = ~512KB per body. + - Values are normalized elevation in [0.0, 1.0]. `sea_level` is the fraction below which terrain is underwater (default 0.0 = no ocean, overridden per body). + - The Rust loader reads the BLOB via `bytemuck::cast_slice::()` after fetching from SQLite. No endian conversion needed on LE-native systems; the pipeline stores LE explicitly. + - Only inhabited bodies receive heightmap rows at build-time. Uninhabited bodies are generated on-demand (runtime-background tier, D-200). + - This table is populated by the `import_heightmaps` build-time step in the asset pipeline (D-191 §9 pipeline order). It is read-only at runtime. +- **Rationale:** Storing heightmaps in `systems.db` keeps the DB as the single source of truth for all generation inputs, avoids a separate file-fetching path in the Rust server, and allows the pre-push hook (asset pipeline rules) to detect stale heightmap data. The float32 LE layout matches what NumPy and PIL produce natively, minimizing conversion overhead in the Python pipeline. +- **Ticket:** #901 (schema), #906 (import), #916 (Rust loader) +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-191 (atlas pipeline — heightmap source), D-203 (BodyWorldState — consumer), D-208 (D8 drainage — reads this table) + +### D-203: BodyWorldState Bevy Resource with LRU Cache +- **Date:** 2026-05-01 +- **Decision:** `BodyWorldState` is a Bevy `Resource` holding the Layer 1–2 output for each recently-accessed planetary body. It functions as an LRU (Least Recently Used) cache: + - **Cache capacity:** 50 bodies. + - **Memory budget:** ~5MB total (50 bodies × ~100KB per entry average). A single body's Layer 1–2 data includes: processed heightmap (float32 grid, ~512KB pre-downsampled to ~8KB working resolution), river network (`RiverNetwork` struct: river cells, confluences, mouths), drainage basin polygons, attractor list, province boundary references. + - **Eviction policy:** On cache overflow, evict the body with the oldest `last_accessed` timestamp. Bodies that are the current player location or adjacent-system neighbors are pinned (not evicted). + - **Population:** The runtime-background tier (D-200) populates cache entries via Rayon tasks. Main thread reads are always from the cache; main thread code must never perform blocking DB reads for heightmap data. + - **Struct:** + ```rust + struct BodyWorldState { + body_id: u64, + heightmap: Vec, // downsampled working grid + river_network: RiverNetwork, // D-208 output + drainage_basins: Vec, + attractors: Vec, // D-195 types + last_accessed: SimTick, + } + ``` + - The resource is initialized empty and populated on demand. Accessing a body not in the cache triggers a background generation task (D-206). +- **Rationale:** The D8 drainage analysis (D-208) and attractor extraction (D-209) are expensive (target: ~50ms/body). Running them on the main tick thread would cause frame drops. The LRU cache ensures the main thread only reads pre-computed data. 50-body capacity covers the typical gameplay scenario (player in one system, neighboring system pre-cached) with margin. +- **Ticket:** #917 +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-200 (three-tier execution model), D-202 (heightmap BLOB — input), D-206 (background generation queue — populates cache), D-208 (D8 drainage — produces river network) + +### D-204: body_radius_km Column on bodies Table +- **Date:** 2026-05-01 +- **Decision:** A `body_radius_km REAL` column is added to the `bodies` table in `systems.db`. This value is the mean radius of the planetary body in kilometers, used to: + - Compute `area_count` (number of districts a settlement can contain, scales with surface area) + - Convert province boundary pixel coordinates to real-world km distances + - Derive the `footprint_radius_km` field on `CityGenerationContext` (D-200) + - Schema change: `ALTER TABLE bodies ADD COLUMN body_radius_km REAL` (nullable, populated by import step) + - **Fallback derivation** (applied when `body_radius_km IS NULL`): `planet_class` lookup table with canonical radii: + - `super_earth`: 8,000 km + - `earth_like`: 6,371 km + - `sub_earth`: 4,500 km + - `ocean_world`: 6,500 km + - `arid`: 5,800 km + - `ice_world`: 3,000 km + - `gas_giant`: 50,000 km (no settlements) + - `moon`: 1,737 km + - `other` / unknown: 6,371 km (Earth default) + - Fallback is applied at query time, not stored back. The column remains NULL until authoritative data is available. +- **Rationale:** Surface area scales with radius squared; a body twice Earth's radius has four times the potential settlement density. Without this field the generator must use a flat default for all planets, producing physically implausible city counts on super-earths and moons alike. The fallback ensures the generator works before all bodies have explicit radius data. +- **Ticket:** #905 (schema), #910 (populate from planet_class fallback) +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-191 (atlas pipeline — body catalog), D-200 (CityGenerationContext — footprint_radius_km) + +### D-205: Province Boundary Pre-Computation (atlas_province_boundaries) +- **Date:** 2026-05-01 +- **Decision:** Province boundaries (drainage basin divides) are pre-computed at build time from the D8 drainage analysis (D-208) and stored in `atlas_province_boundaries`: + ```sql + CREATE TABLE atlas_province_boundaries ( + body_id INTEGER NOT NULL REFERENCES bodies(id), + basin_id INTEGER NOT NULL, + path TEXT NOT NULL, -- JSON array [[row, col], ...] pixel-space polyline + area_pct REAL NOT NULL, -- fraction of body surface area in this basin + PRIMARY KEY (body_id, basin_id) + ); + ``` + - Boundaries are stored as pixel-space polylines in the same `[row, col]` convention as `markers.json` (D-191 §8 canonical format). + - `area_pct` is the fraction of the body's total surface area contained within this drainage basin. + - Province boundaries are the basis for district-level political zoning and cultural corridor assignment at Tier 4 (Region) in D-201. + - **Province count target:** 4–12 provinces per inhabited body, derived naturally from watershed analysis. Bodies with less topographic relief (plains worlds, ocean worlds) produce fewer, larger provinces. + - **At runtime:** Province boundaries are read from `atlas_province_boundaries` at generation dispatch time and cached in `BodyWorldState` as `drainage_basins` (D-203). They are not re-computed at runtime. +- **Rationale:** Province boundaries define the cultural geography of a world — the mountain ranges and river systems that separated civilizations and produced distinct regional identities. Pre-computing them at build time keeps the runtime-background tier focused on city placement and district generation rather than watershed analysis. Storing as polylines (not rasterized masks) keeps the table compact and human-readable. +- **Ticket:** #904 (schema), #907 (populate from watershed analysis) +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-191 (atlas pipeline), D-201 (spatial hierarchy — Tier 4 Region), D-203 (BodyWorldState — caches province data), D-208 (D8 drainage — source of basin divides) + +### D-206: Background Generation Priority Queue and Rayon Thread Infrastructure +- **Date:** 2026-05-01 +- **Decision:** All non-urgent generator work runs through a prioritized Rayon thread pool: + - **Thread count:** `available_parallelism - 2`, minimum 1. Reserves 2 cores for the main tick thread and Bevy scheduler. + - **Priority queue:** Four levels: `Immediate` (player will arrive within 1 game-minute), `High` (player will arrive within 5 minutes), `Medium` (player is in the same system), `Low` (player has seen or heard of this location via NPC or news). Work items at higher priority pre-empt lower-priority items. + - **Work item types:** `AnalyzeBody(body_id)` (D8 drainage + attractor extraction), `GenerateSkeleton(city_id, context)` (Phase 1 DistrictSkeleton), `FillChunk(district_id, block_pos)` (Phase 2 chunk fill for pre-loading). + - **Event-driven pre-generation:** A `SystemNameIndex` (Aho-Corasick automaton over all body/system names from `systems.db`) scans NPC dialogue output and news ticker text. When a scan match hits, the referenced body is queued at `Low` priority if not already cached. This is the mechanism by which "NPC mentions a place → player travels there → world is already generated on arrival." + - **Completion notification:** Completed tasks send a `GenerationComplete` event to the main tick thread via a `crossbeam` channel. The main thread drains this channel once per tick. +- **Rationale:** The Rayon thread pool handles the D-200 runtime-background tier. The priority queue prevents low-priority speculation from blocking urgent work (player approaching). The Aho-Corasick name index enables cheap always-on scanning — NPC dialogue is low-bandwidth enough that scanning every output line has negligible cost. Pre-generation triggered by narrative content (NPC mentions a place) is the mechanism for making the world feel pre-existing rather than loading-on-demand. +- **Ticket:** #924 (background queue), #926 (SystemNameIndex) +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-200 (three-tier execution model — runtime-background tier), D-203 (BodyWorldState — output of background tasks), D-208 (D8 drainage — enqueued as AnalyzeBody) + +### D-207: Fully Generative Placement — markers.json Stripped to Topographic Features +- **Date:** 2026-05-01 +- **Decision:** The `atlas_city_names` table replaces the authored city positions in `markers.json`. Going forward, `markers.json` files contain only topographic features (rivers, oceans, mountain ranges — per D-191 §8 canonical format). City positions, road networks, and rail networks are NOT authored in `markers.json`; they are generated from the terrain data and stored in `atlas_city_names` and derived tables. + ```sql + CREATE TABLE atlas_city_names ( + id INTEGER PRIMARY KEY, + body_id INTEGER NOT NULL REFERENCES bodies(id), + name TEXT NOT NULL, + economic_role TEXT NOT NULL, + population INTEGER NOT NULL, + corp_id INTEGER REFERENCES corporations(id), -- nullable, corp HQ if applicable + reserved INTEGER NOT NULL DEFAULT 0, -- 1 = reserved for authored scenario use + kind TEXT NOT NULL DEFAULT 'city' -- 'capital' | 'city' + ); + ``` + - `name` and position in the markers.json come from different sources: position is generated by the city placement algorithm; name is either authored (wiki), LLM-generated (Gemma 2 naming pipeline), or reserved (corp HQ name). The split allows position generation and naming to run independently. + - `corp_id` links to the `corporations` table when a city is a corporation's headquarters or major hub city. + - `reserved = 1` rows are scenario-specific cities that must not be relocated by the generation algorithm; the generator places other cities around them. + - **`markers.json` authored city data** (hand-written city center positions in the 6 hand-authored templates: Lendel, Edict, Vuurkloof, Røros, Cairnside, Estrade) is migrated to `atlas_city_names` and treated as `reserved = 1` rows. The markers.json files for these templates then have their city arrays cleared. +- **Rationale:** Authored city positions in markers.json created a split between hand-authored content and procedurally generated content that was impossible to query, diff, or validate consistently. Moving city identity to a table allows: SQL joins against economic data, corp HQ cross-references, scenario reservations, and attractor-matching validation. The topographic features (rivers, mountains) remain in JSON because they are polygon/polyline geometry better suited to JSON than relational rows. +- **Ticket:** #902 (schema), #908 (populate from wiki), #909 (corp HQ cross-reference) +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-191 (atlas pipeline — markers.json canonical format), D-196 (SettlementClass — column in atlas_city_names), D-200 (CityGenerationContext — reads from this table) + +### D-208: D8 Priority-Flood Drainage Routing — Layer 1 Empty World +- **Date:** 2026-05-01 +- **Decision:** Drainage routing (the computation of flow direction, flow accumulation, and river network extraction) uses the **D8 priority-flood** algorithm on the body's float32 heightmap. This is the first Layer 1 computation run on a body before any city placement or attractor extraction. + - **Algorithm:** D8 assigns each cell's flow direction to one of 8 neighbors based on the steepest descent. Priority-flood fills depression cells before routing to avoid spurious sinks. Flow accumulation is the count of upstream cells draining through each cell. + - **River threshold:** A cell is classified as a river cell when `flow_accumulation > 200`. This threshold produces river networks of realistic density on canonical 512×256 heightmaps. + - **Outputs** stored in `BodyWorldState.river_network`: + - `river_cells: Vec<(u16, u16)>` — pixel positions of all river cells + - `confluences: Vec<(u16, u16)>` — positions where two or more rivers merge + - `mouths: Vec<(u16, u16)>` — positions where rivers reach sea level or the heightmap edge + - **Province/basin output:** Cells that divide adjacent drainage basins become province boundary candidates (D-205). Boundaries are traced as polylines after flow accumulation is complete. + - **Performance target:** ~50ms per body on a single Rayon thread for canonical 512×256 resolution. + - **Determinism:** Integer-only arithmetic throughout. No f32 in the priority-flood comparisons (use integer-scaled elevation). D-010 compliant. +- **Rationale:** D8 is the standard GIS drainage routing algorithm and produces the river networks that drive attractor scoring (river mouths, confluences = high-value `RiverMouth` attractors). The flow accumulation threshold of 200 was chosen empirically against the Lendel heightmap to produce ~8–15 named rivers per inhabited body — enough for cultural geography without over-fragmenting the landscape. +- **Ticket:** #918 +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-195 (attractor types — river mouth is highest-scoring), D-203 (BodyWorldState — output stored here), D-205 (province boundaries — derived from drainage divides), D-209 (feature tag extraction — reads river network) + +### D-209: Geographic Feature Tag Extraction (7 Settlement Attractor Tags) +- **Date:** 2026-05-01 +- **Decision:** After D8 drainage analysis, 7 `AttractorType` tags are extracted from the heightmap + river network and stored as `Vec` in `BodyWorldState`. Each attractor has a position `[row, col]` and a `strength: f32` (0.0–1.0) derived from local terrain quality. + - **Extraction rules per type:** + - `RiverMouth`: cells in `river_network.mouths`. Strength = `flow_accumulation[cell] / max_flow_accumulation` (normalized). Always high-value. + - `CoastalAccess`: cells within 3 pixels of a sea/ocean polygon (from `oceans[]` in markers.json), not already `RiverMouth`. Strength = 0.6 baseline + coast length bonus. + - `RiverCrossing`: cells at confluences or where a river crosses a topographic saddle. Strength = `flow_accumulation / max_flow_accumulation × 0.7`. + - `ValleyFloor`: local elevation minima in non-river cells with positive habitability score (slope < 5°, elevation 10–60% of range). Strength = habitability score. + - `PassEntrance`: local saddle points between adjacent drainage basins. Strength = inverse of elevation percentile (lower passes score higher). + - `LakeShore`: cells adjacent to `lake` polygons in markers.json. Strength = 0.5 baseline. + - `PlainCenter`: cells in flat terrain (slope < 2°) away from all other attractors. Strength = habitability score × 0.4. + - Sub-biome classification (vegetation, aridity, temperature zones) is derived in parallel and stored as `SubBiomeVariant` on the attractor for use by the ZonePalette modifier system (D-101). +- **Rationale:** The 7 attractor types cover the terrain features that historically determine city placement. Their extraction from the heightmap is deterministic and cheap given the D8 analysis is already complete. The strength normalization ensures attractor scores are comparable across bodies with different elevation ranges. +- **Ticket:** #925 (types), #919 (matching pipeline that consumes these) +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-195 (CompatibilityMatrix — attractor types), D-203 (BodyWorldState — storage), D-208 (D8 drainage — prerequisite), D-211 (attractor-matching pipeline — consumer) + +### D-210: Sub-Biome Variant Classification and terrain_modification_cost +- **Date:** 2026-05-01 +- **Decision:** Each `GeographicAttractor` (D-209) carries a `sub_biome: SubBiomeVariant` tag that classifies the local terrain more finely than the top-level `SettingType`. This drives two systems: ZonePalette modifier selection (which visual variant to use) and `terrain_modification_cost` (how expensive it is to build infrastructure at this location). + - `SubBiomeVariant` values: `TropicalWet`, `TemperateForest`, `TemperateGrassland`, `BorealForest`, `Tundra`, `Desert`, `Savanna`, `Alpine`, `Wetland`, `CoastalLowland`, `Volcanic`. + - `terrain_modification_cost: f32` (1.0 = baseline, higher = more expensive): derived from sub-biome + local slope. Flat grassland = 1.0. Volcanic = 4.5. Wetland = 3.2. Alpine = 3.8. Coastal lowland = 1.4. Used by the attractor-matching pipeline (D-211) to penalize high-cost terrain for economically marginal cities. + - Sub-biome classification uses: elevation percentile (of body total), local slope, moisture proxy (distance to nearest river mouth or coast), and temperature proxy (latitude of the equirectangular pixel). + - Sub-biome data is stored in `BodyWorldState` alongside the attractors; it is not a separate DB table. +- **Rationale:** Two cities on coastal terrain feel different when one is a tropical lowland port and the other is a cold Nordic fjord. Sub-biome tags enable the ZonePalette to select the correct visual register (T6 beach/coastal with tropical modifier vs T7 mountain/high with coastal modifier). The `terrain_modification_cost` gives the generator a principled reason to prefer some attractor positions over others for lower-prosperity cities. +- **Ticket:** #919 (attractor matching — uses terrain_modification_cost) +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-101 (ZonePalette modifier system — consumes sub_biome), D-195 (attractor types), D-209 (feature tag extraction — assigns sub_biome) + +### D-211: Attractor-Matching Five-Phase Pipeline for Settlement Placement +- **Date:** 2026-05-01 +- **Decision:** Given a body's `Vec` and a set of cities from `atlas_city_names`, settlement placement runs a five-phase matching pipeline: + 1. **Score matrix build:** Compute a `city_count × attractor_count` score matrix. Each cell = `CompatibilityMatrix[economic_role][attractor_type] × attractor.strength × (1.0 / terrain_modification_cost)`. + 2. **Tier A greedy assignment:** For each city with `SettlementClass::NameLocked` or population ≥ 1,000,000, assign the highest-scoring unoccupied attractor using greedy selection. These cities must be placed first to anchor the spatial layout. + 3. **Hungarian algorithm for Tier B+C:** Apply the Hungarian algorithm to the remaining cities (population 50,000–999,999) and remaining attractors. Produces optimal global assignment maximizing total score. + 4. **Synthetic attractor overflow:** Cities that cannot be matched to a real attractor (attractor pool exhausted) receive a synthetic `PlainCenter` attractor generated at a position that respects minimum city spacing (15 pixels minimum on 512×256 grid = ~50km minimum separation). + 5. **Name fulfillment check:** After placement, verify that all `atlas_city_names` entries for this body have been assigned a position. Log a warning for any unplaced city. + - **Two-tier mismatch flagging:** If a matched city-attractor pair has score < 0.35, log a `WARNING` (below expected quality). If score < 0.15, log an `ERROR` and flag for manual review. Generation proceeds in both cases; the flags are for content auditing, not hard blockers. + - **Output:** `Vec` written to `atlas_city_positions` at build time. +- **Rationale:** Greedy-first for large/locked cities ensures anchor cities (capitals, corp HQs, wiki-named cities) are placed at terrain features that match their lore role. Hungarian for medium cities finds the globally optimal assignment, not just locally optimal. Synthetic overflow prevents the algorithm from failing on bodies where city count exceeds natural attractor count (dense, flat worlds). The two-tier warning system enables content QA without blocking generation. +- **Ticket:** #919, #925 +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-195 (CompatibilityMatrix), D-207 (atlas_city_names), D-209 (GeographicAttractor — input), D-210 (terrain_modification_cost — input) + +### D-212: TerritorialStatus Priority-Ordered Derivation Algorithm +- **Date:** 2026-05-01 +- **Decision:** Each `Province` (watershed-derived drainage basin, D-205) receives a `TerritorialStatus` value derived by priority-ordered classification at generation time: + ```rust + enum TerritorialStatus { + CommissionControlled, // Commission faction_influence ≥ 0.6 in this province + CorpTerritory, // Single corporation faction_influence ≥ 0.5 + ContestedZone, // Two or more factions each ≥ 0.3, no dominant faction + FrontierUnclaimed, // No faction with influence ≥ 0.2 + IndigenousHeld, // Cultural corridor has indigenous autonomy flag + Derelict, // population_density < 0.01 AND no faction ≥ 0.1 + } + ``` + - Classification applies checks in priority order: `CommissionControlled` checked first, `Derelict` last. The first condition that is true sets the status. + - `placed_at_generation: bool` flag on `Province` distinguishes classification at build time (true) from runtime re-classification during simulation (false). Build-time status is the starting state; simulation can change it, and the flag ensures the original classification is recoverable for reset/new-game scenarios. + - Faction influence values are read from `systems.db` (economics tables) at build time using the same D-199 economic read pattern. +- **Rationale:** Territory status is a high-level descriptor visible to the player on the Atlas overlay (D-191 §7, political zones overlay). It must be derivable from the generation inputs without runtime simulation state. The priority-ordered algorithm ensures clear, predictable classification — no ambiguous provinces. The `placed_at_generation` flag enables the game to show "how this province was at settlement time" vs. "how it is now." +- **Ticket:** #921 +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-191 (atlas overlay — political zones), D-199 (economic read set), D-205 (Province — this status is a field on it) + +### D-213: FoundingOrientation Enum and Spatial Grid Rotation +- **Date:** 2026-05-01 +- **Decision:** `FoundingOrientation` describes the primary spatial axis of a city's original street grid, derived from the terrain feature that anchored the founding settlement. It controls the rotation of the district grid skeleton. + ```rust + enum FoundingOrientation { + Coastal { facing_degrees: u16 }, // street grid perpendicular to coastline + RiverAligned { bearing_degrees: u16 }, // street grid parallel to founding river + TerrainFollowing, // grid rotated to follow local contours + Cardinal, // grid aligned to N/S/E/W (commission-planned) + Free { bearing_degrees: u16 }, // arbitrary bearing (pioneer settlements) + } + ``` + - `facing_degrees` and `bearing_degrees` are integer degrees 0–359 (0 = North, clockwise). Integer to preserve D-010 determinism. + - The founding orientation is derived from the matched attractor type (D-211): `RiverMouth` → `Coastal`; `RiverAligned`; `CoastalAccess` → `Coastal`; `ValleyFloor` → `TerrainFollowing`; `PlainCenter` + Commission-controlled province → `Cardinal`; `PlainCenter` + other → `Free`. + - The district skeleton generator (Phase 1) applies `FoundingOrientation` as the base rotation for the outermost district ring. Interior districts inherit the orientation unless overridden by a `PoliticalArchetype` modifier. + - **Hard constraint:** Maximum ±45° deviation from the parent orientation per district (same limit as D-096 `BlockPlacement.rotation_steps`). Beyond ±45°, tile-based pathfinding produces movement artifacts. +- **Rationale:** Street grids reflect the terrain and founding logic of the original settlement. Roman camps faced cardinal directions. River towns align with the river. Coastal cities face the water. Encoding this as a named enum rather than a raw angle makes the orientation legible in the data model and debuggable during generation. +- **Ticket:** #914 +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-096 (DistrictLayoutMode — inherits orientation), D-211 (attractor-matching — derives orientation), D-214 (PoliticalArchetype — may override orientation), D-215 (spatial arrangement patterns — uses orientation) + +### D-214: PoliticalArchetype Enum and Settlement Spatial Character +- **Date:** 2026-05-01 +- **Decision:** `PoliticalArchetype` classifies a settlement's dominant power structure and its physical expression in district layout: + ```rust + enum PoliticalArchetype { + Commission, // Top-down Commission planning; rectilinear, institutional core + Corporate, // Corp-dominated; commercial density, restricted zones, campus blocks + Pioneer, // Self-organized; organic growth, mixed use, ad-hoc infrastructure + Military, // Garrison or fortification origin; defensible geometry, restricted perimeter + Academic, // University or research origin; campus-quad structure, green space + Industrial, // Factory-first; large-footprint industrial blocks, worker residential rings + } + ``` + - `PoliticalArchetype` is derived at generation time from `TerritorialStatus` (D-212) + `economic_role`: `CommissionControlled` province → `Commission`; `CorpTerritory` → `Corporate`; `FrontierUnclaimed` → `Pioneer`; military economic role → `Military`; research economic role → `Academic`; manufacturing + extraction → `Industrial`. + - When multiple signals conflict (e.g., Commission-controlled manufacturing hub), `TerritorialStatus` takes precedence over `economic_role` for archetype derivation. + - **Spatial effect on district mix:** See D-194. Each archetype applies weight multipliers to district type selection. + - **`AttractorAssignment` disambiguation:** `OrganicGrowth` (a `DistrictType` value and also an `EraCause` value) is always unambiguous in context. On `DistrictType`, it means the district grew without a planning mandate. As `EraCause`, it means the era tag was acquired through organic settlement expansion rather than a discrete historical event. Both usages are permitted; the type system distinguishes them. +- **Rationale:** Power structure should be legible in a city's spatial form without the player reading a wiki entry. Commission cities look different from Corporate cities look different from Pioneer cities — not just in palette, but in street geometry, district type distribution, and building scale. Encoding this as a named enum ensures the distinction is consistent across all generation code. +- **Ticket:** #914 +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-194 (district mix — archetype modifiers), D-212 (TerritorialStatus — primary input), D-213 (FoundingOrientation — archetype may override), D-215 (spatial arrangement patterns) + +### D-215: Five Explicit Political Archetype Spatial Arrangement Patterns +- **Date:** 2026-05-01 +- **Decision:** Each `PoliticalArchetype` maps to one of five spatial arrangement patterns that govern district adjacency and the placement of landmark multi-block reservations: + 1. **Radial core** (Commission, Academic): Central landmark (civic square, institutional plaza, or university quad) surrounded by mixed-use rings. Transit spokes radiate outward. Districts are denser near center. + 2. **Campus grid** (Corporate): Restricted campus block occupies 2–4 blocks in the district interior. Commercial districts ring the exterior. Worker residential on periphery. + 3. **Ribbon development** (Pioneer, Industrial): Districts string along a linear feature (river, road, industrial rail). No dominant center. Mixed adjacency at every edge. + 4. **Fortified perimeter** (Military): Restricted and Secured districts at the edge of the footprint. Open access in the interior core. Single controlled access point per district edge. + 5. **Hub-and-spoke** (transit_hub economic role, any archetype): Transit district at center, all other district types accessible via direct corridors. Maximum 2-district travel between any two districts. + - The arrangement pattern constrains block adjacency during Phase 1 skeleton generation. Specifically: the first 2–3 districts placed in a settlement follow the pattern. Later districts are constrained only by the road network, not by the pattern. + - Arrangement patterns must **vary in angular orientation** per seed (not just position) — the same archetype's radial core must not always face the same direction across seeds. +- **Rationale:** The 14 D-ready items from the generator-architecture workshop established that spatial arrangement should encode power structure. These five patterns are the minimal set to cover the 6 archetypes (Pioneer and Industrial share ribbon development; hub-and-spoke is a cross-archetype pattern for transit-primary cities). Pattern variation in angular orientation prevents players from pattern-matching settlement layout after the first playthrough. +- **Ticket:** #914 (types), #899 (implementation — Phase 1 skeleton generator) +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-094 (spatial hierarchy — district sizes), D-194 (district mix — archetype modifiers), D-214 (PoliticalArchetype — pattern assignment) + +### D-216: BlockIrregularity from founding_age — Layout Age Character +- **Date:** 2026-05-01 +- **Decision:** `block_irregularity: f32` is a derived value on each block (range 0.0–1.0) that controls how much a block deviates from the district's canonical grid. It is computed from `founding_age_years` and `PoliticalArchetype`. The formula: + ``` + base_irregularity = (founding_age_years / 1000.0).min(1.0) + archetype_step = match archetype { + Commission | Military => -0.3, // suppresses organic deviation + Corporate | Academic => -0.1, + Industrial => 0.0, + Pioneer => +0.3, + } + block_irregularity = (base_irregularity + archetype_step).max(0.05).min(1.0) + ``` + - Minimum 0.05 is enforced — no block is perfectly regular, even new Commission-planned settlements. + - `block_irregularity` feeds the `BlockPlacement.offset` magnitude in `DistrictLayoutMode::Organic`: `max_offset_sim_tiles = (block_irregularity × 16.0) as i16`. + - An old Pioneer settlement (age 800+ years) can have `block_irregularity ≈ 1.0`, producing maximum ±16 sim tile offsets and ±45° rotations. A new Commission district (age < 50 years) will have `block_irregularity ≈ 0.05`. + - All arithmetic uses integer-scaled intermediates wherever possible (age is integer years; archetype_step is stored as integer basis points internally). The f32 in the formula above is for documentation clarity only. +- **Rationale:** Age is the single most reliable predictor of urban irregularity in the real world. Old cities that grew organically have crooked streets; new planned cities have grids. Encoding this as a formula rather than a lookup table allows continuous variation along the age axis while preserving the political meaning of the archetype modifier. +- **Ticket:** #922 +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-096 (DistrictLayoutMode::Organic — consumes block_irregularity), D-194 (district mix — founding_age is an input), D-214 (PoliticalArchetype — archetype_step source) + +### D-217: Tile Condition Thresholds (0.63 / 0.43 / 0.23) +- **Date:** 2026-05-01 +- **Decision:** A tile's visual condition is derived from the district's `prosperity_score` (live pressure simulation value, 0.0–1.0) using four threshold bands: + | Band | Condition | prosperity_score range | Tile visual state | + |------|-----------|----------------------|-------------------| + | 1 | Intact | > 0.63 | Clean, undamaged, well-maintained | + | 2 | Worn | 0.43 – 0.63 | Scuff marks, minor discoloration, partial repairs | + | 3 | Cracked | 0.23 – 0.43 | Visible damage, incomplete repair, graffiti | + | 4 | Broken | < 0.23 | Structural damage, debris, derelict appearance | + - **Cache invalidation:** A tile's condition only changes when `prosperity_score` crosses a threshold boundary (from band N to band N±1). This avoids per-tick visual updates. The simulation checks threshold crossings once per game-minute (D-031 day-phase tick rate). + - **Baseline floor:** The block's `EraCause` sets a minimum condition floor: + - `Decay` era: minimum Cracked (no tile in a Decay-era block is ever Intact or Worn without an active renovation event) + - `EmergencyExtension` era: minimum Worn + - All other eras: no floor (condition follows prosperity_score freely) + - **Phase 2 application:** Chunk fill applies the baseline condition at fill time. Subsequent condition updates from simulation crossing thresholds are applied as `ChunkMutations.tile_overrides`. + - Condition thresholds are authored constants, not computed. Any change to the thresholds (0.63 / 0.43 / 0.23) requires amending this D-record. +- **Rationale:** Threshold-crossing invalidation is a standard visual LOD technique that avoids expensive per-frame recalculation. The four bands (Intact/Worn/Cracked/Broken) match the visual fidelity budget for the current art direction — more bands require more tile variants per palette. The era-based floor ensures that historical context is always visible: a Decay-era block cannot spontaneously look pristine from a prosperity spike alone. +- **Ticket:** #923 +- **Raised by:** Generation cascade workshop (#897) +- **Cross-reference:** D-100 (DamageOverlay — post-condition modification), D-194 (district mix — prosperity_baseline is the seed for prosperity_score) + +### D-218: WorldTier Enum Canonical Values (Epicenter/Regional/Backwater/Passage/Waypoint) +- **Date:** 2026-05-01 +- **Decision:** The canonical `WorldTier` enum values are: + ```rust + enum WorldTier { + Epicenter, // Hub system. Full simulation. High faction pressure. Multi-district cities. + Regional, // Regional hub. 1–4 districts per city. Partial full-budget districts. + Backwater, // Small community. Dense isolated settlement. Full sim budget — NOT capped. + Passage, // Transit stop. Pass-through. ComplexityTier ceiling: Moderate. + Waypoint, // Not simulated until player approaches. ComplexityTier ceiling: Minimal. + } + ``` + - The values `Peripheral`, `Connected`, and `Core` used in generator.rs prior to Sprint 38 are **incorrect** — they were stubbed values that do not match the workshop design (workshop-outcomes.md §WorldTier and ComplexityTier). They must be replaced with the five canonical values above. + - **ComplexityTier ceiling per WorldTier:** + - `Epicenter` → Full + - `Regional` → Full + - `Backwater` → Full (critical: `Backwater` is network-insignificant, NOT budget-capped; isolated communities can be socially complex) + - `Passage` → Moderate + - `Waypoint` → Minimal + - **Source of truth:** workshop-outcomes.md §WorldTier and ComplexityTier table (generator-architecture workshop, lead decision L-3). + - All code referencing `WorldTier::Peripheral`, `WorldTier::Connected`, or `WorldTier::Core` must be updated to the canonical values. This includes generator.rs, any tests, and any serialized data that references these variants. +- **Rationale:** The three-value stub (Peripheral/Connected/Core) was authored before the generator architecture workshop established the five-value canonical model. The mismatch between the code and the design means any generator code built against the stub types would need rewriting anyway. Correcting it now before the Phase 1 implementation work begins eliminates that rework. The `Backwater` full-budget exception is architecturally significant: dense isolated communities (mining towns, research outposts) should be as socially rich as regional hubs — their isolation is their drama, not their limitation. +- **Ticket:** #900 (bug fix), #912 (full enum implementation) +- **Raised by:** Generation cascade workshop (#897). Original workshop-outcomes.md §WorldTier (generator-architecture workshop, lead decision L-3). +- **Cross-reference:** D-096 (DistrictLayoutMode — WorldTier is a DistrictSkeleton field), D-097 (GuaranteeAuditResult — tier-conditional guarantees), D-201 (spatial hierarchy — WorldTier assigned at Tier 2 System level) + +--- + +*79 decisions (D-001 through D-218, excluding gaps). Last updated: 2026-05-02 (D-218 — WorldTier canonical values, generation cascade workshop Sprint 38)* From 91066e4be6d7d11f781a9d00f0e7e7933f2b9b20 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sat, 2 May 2026 18:40:12 +0200 Subject: [PATCH 04/15] chore(db): expand stamp GENERATOR_SOURCES for naming helpers (#892) Add gemma_naming.py and naming_core.py to generate_atlas source tracking in check-systems-db-stamp. Mirror in pr-push watch list. Prevents naming helper changes from bypassing stale-stamp detection. Co-Authored-By: Claude Opus 4.6 (1M context) --- .claude/skills/pr-push/SKILL.md | 4 ++++ tooling/check-systems-db-stamp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/.claude/skills/pr-push/SKILL.md b/.claude/skills/pr-push/SKILL.md index be1b5ea6f..2d037daef 100644 --- a/.claude/skills/pr-push/SKILL.md +++ b/.claude/skills/pr-push/SKILL.md @@ -229,6 +229,10 @@ exactly the silent-stale-DB class of bug this skill exists to prevent. git diff --name-only origin/main...HEAD -- \ tooling/economy-db/import_economics.py \ tooling/planet-gen/generate_atlas.py \ + tooling/planet-gen/gemma_naming.py \ + tooling/planet-gen/naming_core.py \ + tooling/planet-gen/import_heightmaps.py \ + tooling/planet-gen/import_province_boundaries.py \ server/src/bin/generate_brands/main.rs \ server/src/bin/generate_brands/names.rs \ tooling/generate-brands \ diff --git a/tooling/check-systems-db-stamp b/tooling/check-systems-db-stamp index cb44341c1..a4e8e019b 100644 --- a/tooling/check-systems-db-stamp +++ b/tooling/check-systems-db-stamp @@ -44,6 +44,10 @@ GENERATOR_SOURCES: dict[str, list[Path]] = { ], "generate_atlas": [ REPO_ROOT / "tooling" / "planet-gen" / "generate_atlas.py", + REPO_ROOT / "tooling" / "planet-gen" / "gemma_naming.py", + REPO_ROOT / "tooling" / "planet-gen" / "naming_core.py", + REPO_ROOT / "tooling" / "planet-gen" / "import_heightmaps.py", + REPO_ROOT / "tooling" / "planet-gen" / "import_province_boundaries.py", ], } From d57f0566d2d230ee7e813d8a0c349b2937b13449 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sat, 2 May 2026 18:40:21 +0200 Subject: [PATCH 05/15] fix(atlas): suffix monotony auto-fix + cultural-history prompting (#886) gemma_naming.py now re-queries affected bodies when >40% suffix clustering is detected. naming_core.py build_batch_prompt accepts cultural_history param threading secondary corridor substyles into the few-shot prompt for richer cross-cultural name blending. Co-Authored-By: Claude Opus 4.6 (1M context) --- tooling/planet-gen/gemma_naming.py | 83 +++++++++++++++++++++++++++--- tooling/planet-gen/naming_core.py | 19 ++++++- 2 files changed, 92 insertions(+), 10 deletions(-) diff --git a/tooling/planet-gen/gemma_naming.py b/tooling/planet-gen/gemma_naming.py index d7b8d35cc..96a788788 100755 --- a/tooling/planet-gen/gemma_naming.py +++ b/tooling/planet-gen/gemma_naming.py @@ -1842,6 +1842,19 @@ def process_body( substyles = CORRIDOR_SUBSTYLES.get(corridor, DEFAULT_SUBSTYLES) mood = mood_for_body(body_id, world_seed) + # Build cultural-history context for the prompt (#886 §6): + # Collect the inflection descriptions of all *secondary* registers in + # this corridor so the model sees the full settlement layering — e.g. + # "Scottish Highland" as primary, but also the Irish and Australian + # substyles that represent earlier or interleaved waves of settlers. + # Limited to 3 secondary styles to keep the prompt concise. + _secondary_inflections = [ + s["inflection"] for s in substyles if s["inflection"] != inflection + ][:3] + cultural_history: str | None = ( + "; ".join(_secondary_inflections) if _secondary_inflections else None + ) + # Helper: batch-name blank features in a marker section def _batch_fill( section_key: str, @@ -1895,6 +1908,7 @@ def process_body( mood=mood, body_id=body_id, world_seed=world_seed, + cultural_history=cultural_history, ctx_size=voice.ctx_size, ) @@ -1926,11 +1940,11 @@ def process_body( _batch_fill("mountain_ranges", lambda f: "mountain_range", "mountain_ranges") _batch_fill("pois", _feature_type_for_poi, "pois") - # Mountain suffix monotony check (#853 §3): + # Mountain suffix monotony check + auto-fix (#853 §3, #886 §3): # If >40% of mountain names on a single body share a trailing word, - # flag it. We don't re-query in the batch pipeline (no voice access here) - # but record a warning so the batch runner can surface bodies that need - # a targeted re-run. + # re-query with the offending names added to `taken` so the model is + # forced to diversify. One retry per body; if the retry still clusters + # (rare), record a warning for post-run inspection. mountain_names = [ f.get("name", "") for f in (markers.get("mountain_ranges") or []) if f.get("name") @@ -1944,11 +1958,64 @@ def process_body( dominant = max(suffix_counts, key=lambda k: suffix_counts[k]) dominant_frac = suffix_counts[dominant] / len(mountain_names) if dominant_frac > 0.40: - counts["suffix_monotony_warning"] = ( - f"mountain suffix '{dominant}' on " - f"{suffix_counts[dominant]}/{len(mountain_names)} " - f"features ({dominant_frac:.0%}) — re-run targeting this body" + # Targeted retry: identify features with the dominant suffix, + # re-request names for them with the monotonous names as `taken`. + offending_features = [ + f for f in (markers.get("mountain_ranges") or []) + if f.get("name") and f["name"].split()[-1].lower() == dominant + ] + retry_taken = ( + list(body_used) + + list(corpus.get((corridor, "mountain_range"), set())) ) + retry_names = name_features_batch( + voice=voice, + feature_type="mountain_range", + count=len(offending_features), + inflection=inflection, + corridor=corridor, + corridor_substyles=substyles, + taken=retry_taken, + prompt_config=_PROMPT_CONFIG, + system_name=ctx.get("system_proper_name"), + body_name=ctx.get("body_proper_name"), + system_hook=system_hook, + mood=mood, + body_id=body_id, + world_seed=world_seed + 1, # bump seed to force different output + cultural_history=cultural_history, + ctx_size=voice.ctx_size, + ) + for i, feat in enumerate(offending_features): + if i < len(retry_names): + old_name = feat["name"] + feat["name"] = retry_names[i] + body_used.discard(old_name) + body_used.add(retry_names[i]) + corpus.setdefault((corridor, "mountain_range"), set()).discard(old_name) + corpus.setdefault((corridor, "mountain_range"), set()).add(retry_names[i]) + changed = True + # Re-check after retry; record warning if still clustered + mountain_names_after = [ + f.get("name", "") for f in (markers.get("mountain_ranges") or []) + if f.get("name") + ] + suffix_counts_after: dict[str, int] = {} + for mn in mountain_names_after: + words = mn.split() + if words: + suffix_counts_after[words[-1].lower()] = ( + suffix_counts_after.get(words[-1].lower(), 0) + 1 + ) + if suffix_counts_after: + dominant_after = max(suffix_counts_after, key=lambda k: suffix_counts_after[k]) + dominant_frac_after = suffix_counts_after[dominant_after] / len(mountain_names_after) + if dominant_frac_after > 0.40: + counts["suffix_monotony_warning"] = ( + f"mountain suffix '{dominant_after}' still on " + f"{suffix_counts_after[dominant_after]}/{len(mountain_names_after)} " + f"features ({dominant_frac_after:.0%}) after retry" + ) # Infrastructure naming (#853 §7): # Assign deterministic city-pair names to unnamed roads and railroads. diff --git a/tooling/planet-gen/naming_core.py b/tooling/planet-gen/naming_core.py index f7837f587..92fd9088b 100644 --- a/tooling/planet-gen/naming_core.py +++ b/tooling/planet-gen/naming_core.py @@ -230,6 +230,7 @@ def build_batch_prompt( body_name: str | None = None, system_hook: str | None = None, mood: str | None = None, + cultural_history: str | None = None, ctx_size: int = 1024, ) -> str: """Build a batch naming prompt asking for N names in one call. @@ -238,6 +239,10 @@ def build_batch_prompt( with few-shot examples showing comma-separated lists. The model pattern-completes the list. + `cultural_history` threads secondary cultural registers into the + prompt so names reflect the layered settlement history of a corridor + rather than only the primary inflection style (#886 §6). + The prompt is truncated to fit within ctx_size tokens (rough estimate: 1 token ≈ 4 chars). """ @@ -274,9 +279,11 @@ def build_batch_prompt( lines.append(". ".join(ident) + ".") if system_hook: lines.append(f"About the system: {system_hook}") + if cultural_history: + lines.append(f"Settlement history: {cultural_history}") if taken: lines.append(f"Already used (do NOT repeat): {', '.join(taken)}") - if system_name or body_name or system_hook or taken: + if system_name or body_name or system_hook or cultural_history or taken: lines.append("") # Few-shot examples showing batch format @@ -292,7 +299,7 @@ def build_batch_prompt( max_chars = (ctx_size - 16) * 4 # 16 tokens headroom for output budget = max_chars - len(fixed) - len(tail) - 2 # 2 for newlines if budget < 0: - # Trim the taken list to fit + # Trim taken list first (preserving cultural_history context) while taken and budget < 0: taken = taken[:-1] lines_rebuild = [preamble, ""] @@ -305,6 +312,8 @@ def build_batch_prompt( lines_rebuild.append(". ".join(ident) + ".") if system_hook: lines_rebuild.append(f"About the system: {system_hook}") + if cultural_history: + lines_rebuild.append(f"Settlement history: {cultural_history}") if taken: lines_rebuild.append(f"Already used (do NOT repeat): {', '.join(taken)}") lines_rebuild.append("") @@ -336,6 +345,7 @@ def name_features_batch( mood: str | None, body_id: str, world_seed: int, + cultural_history: str | None = None, ctx_size: int = 1024, ) -> list[str]: """Generate `count` names for a feature type using batch prompting. @@ -346,6 +356,9 @@ def name_features_batch( 3. Rank by distinctiveness via Levenshtein, pick top `count`. 4. If short, refill from the next adjacent register in the corridor. 5. Return the final list of names. + + `cultural_history` is forwarded to build_batch_prompt to enrich the + prompt with secondary cultural context (#886 §6). """ prompt = build_batch_prompt( feature_type=feature_type, @@ -357,6 +370,7 @@ def name_features_batch( body_name=body_name, system_hook=system_hook, mood=mood, + cultural_history=cultural_history, ctx_size=ctx_size, ) @@ -396,6 +410,7 @@ def name_features_batch( body_name=body_name, system_hook=system_hook, mood=mood, + cultural_history=cultural_history, ctx_size=ctx_size, ) From b6ca785f74753b7c21e443bb2748c200e92179ad Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sat, 2 May 2026 18:40:33 +0200 Subject: [PATCH 06/15] =?UTF-8?q?feat(db):=20atlas=20data=20pipeline=20?= =?UTF-8?q?=E2=80=94=20schema,=20importers,=20and=20normalization=20(#901-?= =?UTF-8?q?#911)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New tables: atlas_body_heightmaps (D-202), atlas_city_names (D-207), atlas_feature_names, atlas_province_boundaries (D-205), body_radius_km column (D-204). Three new importers: heightmap BLOBs, city names from wiki markers.json, province boundaries via D8 watershed analysis. economic_role normalized to 7 canonical values (D-194). Stamp fix in generate_atlas.py to hash all tracked source files. systems.db regenerated. Co-Authored-By: Claude Opus 4.6 (1M context) --- server/data/systems-schema.sql | 57 ++ server/data/systems.db | Bin 29630464 -> 30531584 bytes tooling/economy-db/import_economics.py | 321 ++++++++++- tooling/planet-gen/generate_atlas.py | 10 +- tooling/planet-gen/import_city_names.py | 205 +++++++ tooling/planet-gen/import_heightmaps.py | 219 +++++++ .../planet-gen/import_province_boundaries.py | 544 ++++++++++++++++++ 7 files changed, 1354 insertions(+), 2 deletions(-) create mode 100644 tooling/planet-gen/import_city_names.py create mode 100644 tooling/planet-gen/import_heightmaps.py create mode 100644 tooling/planet-gen/import_province_boundaries.py diff --git a/server/data/systems-schema.sql b/server/data/systems-schema.sql index 23ea5ebf1..fd495f4c7 100644 --- a/server/data/systems-schema.sql +++ b/server/data/systems-schema.sql @@ -175,6 +175,11 @@ CREATE TABLE IF NOT EXISTS bodies ( cultural_corridor TEXT, -- override system corridor if different industrial_corridor TEXT, -- MVG, Gate_Corp, DSMC, Prometheus, Agricultural_Syndic + -- Physical dimensions (D-204, #905) + -- Mean radius in km. NULL until authoritative data is available; fallback + -- derivation from planet_class is applied at query time by the generator. + body_radius_km REAL, + -- Rendering -- terrain_reference: repo-root-relative path to the body's heightmap PNG. -- Convention (enforced by populate_terrain_reference.py and assumed by @@ -455,6 +460,58 @@ CREATE INDEX IF NOT EXISTS idx_atlas_pois_kind ON atlas_pois(kind); CREATE INDEX IF NOT EXISTS idx_atlas_rivers_body ON atlas_rivers(body_id); CREATE INDEX IF NOT EXISTS idx_atlas_oceans_body ON atlas_oceans(body_id); CREATE INDEX IF NOT EXISTS idx_atlas_mountain_ranges_body ON atlas_mountain_ranges(body_id); +-- Heightmap BLOB storage — float32 LE, row-major (D-202, #901) +-- Only inhabited bodies receive rows at build time; uninhabited bodies are +-- generated on-demand by the runtime-background tier. +CREATE TABLE IF NOT EXISTS atlas_body_heightmaps ( + body_id TEXT PRIMARY KEY REFERENCES bodies(body_id) ON DELETE CASCADE, + width INTEGER NOT NULL DEFAULT 512, + height INTEGER NOT NULL DEFAULT 256, + data BLOB NOT NULL, -- float32 LE, row-major, width×height values + sea_level REAL NOT NULL DEFAULT 0.0, + imported_at TEXT NOT NULL DEFAULT (datetime('now')) +); + +-- City name reservations — replaces authored city positions in markers.json (D-207, #902) +-- Position is generated by the city placement algorithm; name is authored or LLM-generated. +CREATE TABLE IF NOT EXISTS atlas_city_names ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + body_id TEXT NOT NULL REFERENCES bodies(body_id) ON DELETE CASCADE, + name TEXT NOT NULL, + kind TEXT NOT NULL DEFAULT 'city', -- 'capital' | 'city' + economic_role TEXT NOT NULL, + population INTEGER NOT NULL, + corp_id TEXT REFERENCES corporations(corp_id), -- nullable, corp HQ if applicable + reserved INTEGER NOT NULL DEFAULT 0, -- 1 = reserved for authored scenario use + updated_at TEXT NOT NULL DEFAULT (datetime('now')) +); + +-- Geographic feature name reservations — rivers, mountains, passes (D-207 adjacent, #903) +CREATE TABLE IF NOT EXISTS atlas_feature_names ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + body_id TEXT NOT NULL REFERENCES bodies(body_id) ON DELETE CASCADE, + name TEXT NOT NULL, + feature_type TEXT NOT NULL, -- 'river' | 'mountain' | 'pass' | 'ocean' | 'region' + priority INTEGER NOT NULL DEFAULT 0, -- higher = applied first during naming + updated_at TEXT NOT NULL DEFAULT (datetime('now')) +); + +-- Province boundaries — watershed drainage basin polylines (D-205, #904) +-- Pre-computed at build time from D8 drainage analysis. +CREATE TABLE IF NOT EXISTS atlas_province_boundaries ( + body_id TEXT NOT NULL REFERENCES bodies(body_id) ON DELETE CASCADE, + basin_id INTEGER NOT NULL, + path TEXT NOT NULL, -- JSON array [[row, col], ...] pixel-space polyline + area_pct REAL NOT NULL, -- fraction of body surface area in this basin + PRIMARY KEY (body_id, basin_id) +); + +CREATE INDEX IF NOT EXISTS idx_atlas_body_heightmaps_body ON atlas_body_heightmaps(body_id); +CREATE INDEX IF NOT EXISTS idx_atlas_city_names_body ON atlas_city_names(body_id); +CREATE INDEX IF NOT EXISTS idx_atlas_city_names_kind ON atlas_city_names(kind); +CREATE INDEX IF NOT EXISTS idx_atlas_city_names_corp ON atlas_city_names(corp_id); +CREATE INDEX IF NOT EXISTS idx_atlas_feature_names_body ON atlas_feature_names(body_id); +CREATE INDEX IF NOT EXISTS idx_atlas_province_boundaries_body ON atlas_province_boundaries(body_id); -- END ATLAS INDEX (D-191 §8, #832) -- Indexes diff --git a/server/data/systems.db b/server/data/systems.db index feabcec238f49a7cac0ab54a631fc82089095631..a6979573306fc36360041840cc7a273383979ed6 100644 GIT binary patch literal 30531584 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�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
Y<|cX&>YJ`(LnHUPGJ3c{m9 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
RwCs}G%J%5lr=P7jc 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

R33?nY?W*txnJis8c4 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%0DOl) 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