babylon.config.defines
Game defines for centralized coefficient configuration.
This module provides the GameDefines model which extracts hardcoded values from systems into a single, configurable location. This enables: 1. Easier calibration of game balance 2. Scenario-specific coefficient overrides 3. Clear documentation of magic numbers
Sprint: Paradox Refactor Phase 1
Classes
|
AID verb coefficients. |
|
ArcGIS organization and host configuration for external data sources. |
|
Behavioral economics coefficients. |
|
Bifurcation Topology Analysis coefficients (Feature 033). |
|
Carceral equilibrium coefficients (Terminal Crisis Dynamics). |
|
Class dynamics coefficients (FRED DFA-derived, Feature 016). |
|
Unified class system coefficients (Feature 038). |
|
Hypergraph community layer coefficients (Feature 022). |
|
Consciousness drift coefficients. |
|
Contradiction field topology coefficients (Feature 002). |
|
Crisis and Devaluation Mechanics coefficients (Feature 018). |
|
Dispossession event intensity weights (Feature 021, FR-004/FR-005). |
|
Economic system coefficients. |
|
Edge mode transition threshold values (Feature 002, FR-010). |
|
Configuration for endgame detection thresholds (Slice 1.6). |
|
External data source configuration. |
|
Centralized game coefficients extracted from hardcoded values. |
|
Terrain classification and biocapacity coefficients (Feature 036). |
|
Infrastructure capacity and internet operation coefficients (Feature 036). |
|
Initial condition coefficients. |
|
Institution Base Model coefficients (Feature 040). |
|
D-P-D' Lifecycle Circuit coefficients (Feature 030). |
|
Metabolic rift coefficients (Slice 1.4 - Ecological Limits). |
|
Configuration for MOBILIZE verb organizational actions. |
|
MOVE verb coefficients. |
|
NEGOTIATE verb coefficients. |
|
OODA Loop System tunable coefficients (Feature 032). |
|
Organization system tunable coefficients (Feature 031). |
|
Numerical precision configuration for deterministic simulation. |
|
Parameters for ground rent extraction in Volume III equalization (Feature 043). |
|
Reserve army of labor coefficients (Feature 021, FR-001/FR-002). |
|
ArcGIS FeatureServer service names and layers. |
|
Solidarity and consciousness transmission coefficients. |
|
State Apparatus AI coefficients (Feature 039). |
|
Struggle dynamics coefficients (Agency Layer - "George Floyd" Dynamic). |
|
Survival calculus coefficients. |
|
Tension dynamics coefficients. |
|
Territory dynamics coefficients. |
|
Simulation timescale configuration for weekly ticks. |
|
Phase transition coefficients for solidarity network analysis. |
|
Mortality coefficients for Mass Line population dynamics. |
|
Working day characterization thresholds (Feature 021, FR-007/FR-008). |
- class babylon.config.defines.CrisisDefines(**data)[source]
Bases:
BaseModelCrisis and Devaluation Mechanics coefficients (Feature 018).
Configures the multi-period crisis detector, phased amplification, bifurcation risk assessment, and wage compression mechanics.
See also
babylon.economics.tick.types: CrisisPhase, CrisisStatespecs/018-crisis-devaluation-mechanics/spec.md: FR-023- Parameters:
hysteresis_coefficient (Annotated[float, Gt(gt=0), Lt(lt=1)])
wage_compression_rate (Annotated[float, Ge(ge=0), Le(le=0.5)])
wage_compression_floor_ratio (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
class_burden_epsilon (Annotated[float, Gt(gt=0), Le(le=0.1)])
bifurcation_event_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
stagnation_credit_growth (Annotated[float, Ge(ge=0), Le(le=0.5)])
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- crisis_period_ticks: int
- r_threshold: float
- n_consecutive: int
- m_recovery: int
- r_cap: int
- hysteresis_coefficient: float
- wage_compression_rate: float
- wage_compression_floor_ratio: float
- bifurcation_solidarity_weight: float
- bifurcation_burden_weight: float
- class_burden_epsilon: float
- bifurcation_event_threshold: float
- dispossession_cascade_milestones: list[float]
- stagnation_credit_growth: float
- class babylon.config.defines.EconomyDefines(**data)[source]
Bases:
BaseModelEconomic system coefficients.
- Parameters:
extraction_efficiency (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
superwage_ppp_impact (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
pool_high_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
pool_low_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
pool_critical_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
subsidy_conversion_rate (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
subsidy_trigger_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
trpf_coefficient (Annotated[float, Ge(ge=0.0), Le(le=0.01)])
bribery_wage_delta (Annotated[float, Ge(ge=-1.0), Le(le=1.0)])
austerity_wage_delta (Annotated[float, Ge(ge=-1.0), Le(le=1.0)])
iron_fist_repression_delta (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
crisis_wage_delta (Annotated[float, Ge(ge=-1.0), Le(le=1.0)])
crisis_repression_delta (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
bribery_tension_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
iron_fist_tension_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
trpf_efficiency_floor (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- extraction_efficiency: float
- comprador_cut: float
- base_labor_power: float
- super_wage_rate: float
- superwage_multiplier: float
- superwage_ppp_impact: float
- initial_rent_pool: float
- pool_high_threshold: float
- pool_low_threshold: float
- pool_critical_threshold: float
- min_wage_rate: float
- max_wage_rate: float
- subsidy_conversion_rate: float
- subsidy_trigger_threshold: float
- shadow_wage_hourly: float
- negligible_rent: float
- negligible_subsidy: float
- base_subsistence: float
- death_threshold: float
- trpf_coefficient: float
- rent_pool_decay: float
- bribery_wage_delta: float
- austerity_wage_delta: float
- iron_fist_repression_delta: float
- crisis_wage_delta: float
- crisis_repression_delta: float
- bribery_tension_threshold: float
- iron_fist_tension_threshold: float
- trpf_efficiency_floor: float
- class babylon.config.defines.SurvivalDefines(**data)[source]
Bases:
BaseModelSurvival calculus coefficients.
- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- steepness_k: float
- default_subsistence: float
- default_organization: float
- default_repression: float
- revolution_threshold: float
- repression_base: float
- class babylon.config.defines.VitalityDefines(**data)[source]
Bases:
BaseModelMortality coefficients for Mass Line population dynamics.
The Grinding Attrition Formula models probabilistic mortality based on intra-class inequality: - Even with sufficient average wealth, high inequality kills marginal workers - Deaths reduce population → per-capita wealth increases → equilibrium
- Formula:
effective_wealth_per_capita = wealth / population marginal_wealth = effective_wealth_per_capita × (1 - inequality × inequality_impact) mortality_rate = max(0, (consumption_needs - marginal_wealth) / consumption_needs) deaths = floor(population × mortality_rate × base_mortality_factor)
Malthusian Correction: Population decline increases per-capita wealth, reducing future mortality rates and creating equilibrium dynamics.
- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- base_mortality_factor: float
- inequality_impact: float
- attrition_base_factor: float
- class babylon.config.defines.SolidarityDefines(**data)[source]
Bases:
BaseModelSolidarity and consciousness transmission coefficients.
- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- scaling_factor: float
- activation_threshold: float
- mass_awakening_threshold: float
- negligible_transmission: float
- superwage_impact: float
- class babylon.config.defines.BehavioralDefines(**data)[source]
Bases:
BaseModelBehavioral economics coefficients.
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- loss_aversion_lambda: float
- class babylon.config.defines.TensionDefines(**data)[source]
Bases:
BaseModelTension dynamics coefficients.
- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- accumulation_rate: float
- aspect_flip_threshold: float
- antagonistic_intensity_threshold: float
- resolution_intensity_threshold: float
- class babylon.config.defines.ConsciousnessDefines(**data)[source]
Bases:
BaseModelConsciousness drift coefficients.
- Parameters:
agitation_decay_rate (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
exploitation_sensitivity (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
rent_decline_sensitivity (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
reproduction_visibility_coefficient (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
repression_backfire (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
agitation_consumption_rate (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
liberal_drift_rate (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
educate_base_effect (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
agitation_education_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
education_pressure_decay (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- sensitivity: float
- decay_lambda: float
- routing_scale: float
- agitation_decay_rate: float
- exploitation_sensitivity: float
- rent_decline_sensitivity: float
- reproduction_visibility_coefficient: float
- repression_backfire: float
- rent_opacity_factor: float
- agitation_consumption_rate: float
- liberal_drift_rate: float
- educate_base_effect: float
- agitation_education_threshold: float
- education_pressure_decay: float
- class babylon.config.defines.TerritoryDefines(**data)[source]
Bases:
BaseModelTerritory dynamics coefficients.
- Parameters:
high_profile_heat_gain (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
eviction_heat_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
displacement_rate (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
heat_spillover_rate (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
clarity_profile_coefficient (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
concentration_camp_decay_rate (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
displacement_priority_mode (str)
elimination_rent_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
elimination_tension_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
containment_rent_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
containment_tension_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- heat_decay_rate: float
- high_profile_heat_gain: float
- eviction_heat_threshold: float
- rent_spike_multiplier: float
- displacement_rate: float
- heat_spillover_rate: float
- clarity_profile_coefficient: float
- concentration_camp_decay_rate: float
- displacement_priority_mode: str
- elimination_rent_threshold: float
- elimination_tension_threshold: float
- containment_rent_threshold: float
- containment_tension_threshold: float
- class babylon.config.defines.TopologyDefines(**data)[source]
Bases:
BaseModelPhase transition coefficients for solidarity network analysis.
The topology system tracks phase transitions in class solidarity: - Gaseous: Atomized, no collective action capacity - Transitional: Solidarity building, weak ties forming - Liquid: Mass movement (percolation but low cadre density) - Solid: Vanguard party (percolation with high cadre density)
- Parameters:
gaseous_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
condensation_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
vanguard_density_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
brittle_multiplier (Annotated[float, Ge(ge=1.0), Le(le=10.0)])
solidarity_sympathizer_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
solidarity_cadre_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
resilience_removal_rate (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
resilience_survival_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- gaseous_threshold: float
- condensation_threshold: float
- vanguard_density_threshold: float
- brittle_multiplier: float
- solidarity_sympathizer_threshold: float
- solidarity_cadre_threshold: float
- resilience_removal_rate: float
- resilience_survival_threshold: float
- class babylon.config.defines.MetabolismDefines(**data)[source]
Bases:
BaseModelMetabolic rift coefficients (Slice 1.4 - Ecological Limits).
The Metabolism System tracks the widening rift between extraction and regeneration: - Biocapacity regeneration and depletion - ECOLOGICAL_OVERSHOOT event when consumption exceeds biocapacity
- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- entropy_factor: float
- overshoot_threshold: float
- max_overshoot_ratio: float
- class babylon.config.defines.StruggleDefines(**data)[source]
Bases:
BaseModelStruggle dynamics coefficients (Agency Layer - “George Floyd” Dynamic).
The Struggle System gives political agency to oppressed classes by modeling: - The Spark: State violence (EXCESSIVE_FORCE) triggers insurrection - The Combustion: Spark + High Agitation + Low P(S|A) = UPRISING - The Result: Uprisings destroy wealth but build solidarity infrastructure
George Jackson Bifurcation (Power Vacuum): When the Comprador becomes insolvent, a power vacuum occurs. The outcome depends on the Periphery Proletariat’s revolutionary capacity: - capacity >= jackson_threshold: Revolutionary Offensive - capacity < jackson_threshold: Fascist Revanchism
- Parameters:
spark_probability_scale (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
resistance_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
wealth_destruction_rate (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
solidarity_gain_per_uprising (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
consciousness_solidarity_boost (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
jackson_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
revolutionary_agitation_boost (Annotated[float, Ge(ge=0.0), Le(le=2.0)])
fascist_identity_boost (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
fascist_acquiescence_boost (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- spark_probability_scale: float
- resistance_threshold: float
- wealth_destruction_rate: float
- solidarity_gain_per_uprising: float
- consciousness_solidarity_boost: float
- jackson_threshold: float
- revolutionary_agitation_boost: float
- fascist_identity_boost: float
- fascist_acquiescence_boost: float
- class babylon.config.defines.AidDefines(**data)[source]
Bases:
BaseModelAID verb coefficients.
- aid_efficiency: float
- aid_cl_cost: float
- aid_solidarity_increment: float
- solidaristic_threshold: float
- education_threshold_for_solidarity: float
- agitation_relief_per_unit: float
- economism_warning_threshold: float
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class babylon.config.defines.CarceralDefines(**data)[source]
Bases:
BaseModelCarceral equilibrium coefficients (Terminal Crisis Dynamics).
The carceral system models the transition from wage suppression to outright incarceration as the imperial rent pool exhausts:
SUPERWAGE_CRISIS: Rent pool can’t sustain LA wages
CLASS_DECOMPOSITION: LA splits into enforcers + prisoners
CONTROL_RATIO_CRISIS: Prisoners exceed control capacity
TERMINAL_DECISION: Revolution vs genocide based on organization
Real-world staffing ratios (sources: BJS, Marshall Project 2024): - 1:1 = Maximum control (Massachusetts, best-staffed) - 4:1 = US national jail average (2022) - 15:1 = Federal DOJ theoretical baseline - 200:1 = Crisis/collapse (Georgia, 2024)
With 70/30 decomposition, prisoner/enforcer = 2.33:1, so: - control_capacity <= 2: Crisis triggers immediately - control_capacity >= 3: No crisis (stable carceral state)
- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- control_capacity: int
- enforcer_fraction: float
- proletariat_fraction: float
- revolution_threshold: float
- decomposition_delay: int
- control_ratio_delay: int
- terminal_decision_delay: int
- class babylon.config.defines.EndgameDefines(**data)[source]
Bases:
BaseModelConfiguration for endgame detection thresholds (Slice 1.6).
The EndgameDetector monitors WorldState for three possible game endings:
REVOLUTIONARY_VICTORY: percolation >= threshold AND consciousness > threshold The masses have achieved critical organization AND ideological clarity.
ECOLOGICAL_COLLAPSE: overshoot_ratio > threshold for N consecutive ticks Sustained ecological overshoot leads to irreversible collapse.
FASCIST_CONSOLIDATION: national_identity > class_consciousness for M+ nodes Fascist ideology has captured the majority of the population.
- Parameters:
- revolutionary_percolation_threshold
Minimum percolation ratio (0.7 = 70% of nodes in giant solidarity component) for revolutionary victory.
- revolutionary_consciousness_threshold
Minimum average class consciousness (0.8 = 80% ideological clarity) for revolutionary victory.
- ecological_overshoot_threshold
Consumption/biocapacity ratio above which ecological damage accumulates (2.0 = consuming 2x biocapacity).
- ecological_sustained_ticks
Number of consecutive ticks overshoot must persist before triggering ECOLOGICAL_COLLAPSE (5 ticks).
- fascist_majority_threshold
Minimum number of nodes where national_identity exceeds class_consciousness for FASCIST_CONSOLIDATION (3 nodes).
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- revolutionary_percolation_threshold: float
- revolutionary_consciousness_threshold: float
- ecological_overshoot_threshold: float
- ecological_sustained_ticks: int
- fascist_majority_threshold: int
- class babylon.config.defines.InitialDefines(**data)[source]
Bases:
BaseModelInitial condition coefficients.
- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- worker_wealth: float
- owner_wealth: float
- default_population: int
- class babylon.config.defines.PrecisionDefines(**data)[source]
Bases:
BaseModelNumerical precision configuration for deterministic simulation.
Epoch 0 Physics Hardening: - All floating-point values snap to a 10^-n grid (default n=6) - This prevents drift accumulation over long simulations (100+ years) - ROUND_HALF_UP ensures deterministic cross-platform behavior
The Gatekeeper Pattern: Quantization is applied at TYPE level (Pydantic AfterValidator), NOT inside formulas.
Note: Increased from 5 to 6 decimal places for 100-year (5200 tick) Carceral Equilibrium simulations to reduce cumulative rounding errors.
- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- decimal_places: int
- rounding_mode: str
- epsilon: float
- comparison_epsilon: float
- class babylon.config.defines.ArcGISDefines(**data)[source]
Bases:
BaseModelArcGIS organization and host configuration for external data sources.
Different federal agencies host HIFLD and infrastructure data on various ArcGIS organizations. This configuration centralizes the organization IDs and hosts to allow easy updates when services migrate.
Current organization mapping (as of 2024): - FEMA RAPT: Prison Boundaries, Law Enforcement (services.arcgis.com) - Esri US Federal: MIRTA Military Installations (services2.arcgis.com) - HIFLD Legacy: Some services still work (services1.arcgis.com)
- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- fema_rapt_org: str
- fema_rapt_host: str
- esri_federal_org: str
- esri_federal_host: str
- hifld_legacy_org: str
- hifld_legacy_host: str
- class babylon.config.defines.ServicesDefines(**data)[source]
Bases:
BaseModelArcGIS FeatureServer service names and layers.
Service names can be overridden for testing or alternative data sources. Layer numbers are important as some services (like Prison_Boundaries) have data on non-default layers.
- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- prison_boundaries: str
- prison_boundaries_layer: int
- law_enforcement: str
- law_enforcement_layer: int
- mirta_polygons: str
- mirta_layer: int
- electric_transmission: str
- electric_transmission_layer: int
- class babylon.config.defines.ExternalDataDefines(**data)[source]
Bases:
BaseModelExternal data source configuration.
Centralizes ArcGIS organization IDs, hosts, and service names for HIFLD and related infrastructure data sources. This enables: 1. Easy updates when services migrate between organizations 2. Testing with alternative data sources 3. Clear documentation of data source provenance
- Parameters:
arcgis (ArcGISDefines)
services (ServicesDefines)
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- arcgis: ArcGISDefines
- services: ServicesDefines
- class babylon.config.defines.TimescaleDefines(**data)[source]
Bases:
BaseModelSimulation timescale configuration for weekly ticks.
Epoch 0 Physics Hardening: - 1 tick = 7 days (weekly resolution) - 52 weeks = 1 year (for annual rate conversions)
This is critical for: - Economic flow rates (annual -> per-tick conversion) - Historical pacing (events per game year) - UI display (showing dates/weeks)
All annual rates (wage_rate, extraction_efficiency) are divided by weeks_per_year to get per-tick rates.
- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- tick_duration_days: int
- weeks_per_year: int
- class babylon.config.defines.ContradictionFieldDefines(**data)[source]
Bases:
BaseModelContradiction field topology coefficients (Feature 002).
Configures normalization bounds, history window depth, and transition thresholds for the dialectical field topology systems.
See also
specs/002-dialectical-field-topology/spec.md: FR-001 through FR-019- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- field_min: float
- field_max: float
- history_window: int
- curvature_alpha: float
- co_optive_suppression_rate: float
- latent_release_multiplier: float
- default_transition_priority: int
- class babylon.config.defines.ReserveArmyDefines(**data)[source]
Bases:
BaseModelReserve army of labor coefficients (Feature 021, FR-001/FR-002).
Configures the bounded sigmoid that maps reserve_ratio to wage pressure. Higher reserve ratios produce stronger downward pressure on wages.
See also
specs/021-capital-volume-i/spec.md: FR-001, FR-002, FR-003- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- sigmoid_k: float
- sigmoid_r0: float
- wage_pressure_ceiling: float
- min_employed_fraction: float
- class babylon.config.defines.DispossessionDefines(**data)[source]
Bases:
BaseModelDispossession event intensity weights (Feature 021, FR-004/FR-005).
Configures the relative weight of each dispossession type when computing aggregate territory-level dispossession intensity.
See also
specs/021-capital-volume-i/spec.md: FR-004, FR-005, FR-006- Parameters:
weight_foreclosure (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
weight_displacement (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
weight_eminent_domain (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
weight_wage_theft (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
weight_incarceration_seizure (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
weight_pension_default (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
deadweight_loss_fraction (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- weight_foreclosure: float
- weight_eviction: float
- weight_displacement: float
- weight_tax_sale: float
- weight_eminent_domain: float
- weight_wage_theft: float
- weight_incarceration_seizure: float
- weight_pension_default: float
- deadweight_loss_fraction: float
- transfer_scale: float
- class babylon.config.defines.WorkingDayDefines(**data)[source]
Bases:
BaseModelWorking day characterization thresholds (Feature 021, FR-007/FR-008).
Configures the threshold values for classifying territory-sector pairs by their dominant mode of surplus value extraction.
See also
specs/021-capital-volume-i/spec.md: FR-007, FR-008, FR-011- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- absolute_hours_threshold: float
- relative_hours_threshold: float
- intensity_threshold_high: float
- intensity_threshold_low: float
- absolute_visibility: float
- relative_visibility: float
- class babylon.config.defines.CommunityDefines(**data)[source]
Bases:
BaseModelHypergraph community layer coefficients (Feature 022).
Controls alpha-smoothing decay rates for community state, solidarity potential computation bonuses and penalties, and infrastructure maintenance parameters.
- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- heat_decay_alpha: float
- cohesion_decay_alpha: float
- infrastructure_decay_alpha: float
- community_overlap_bonus: float
- rent_differential_penalty: float
- core_organizer_maintenance_factor: float
- class babylon.config.defines.ClassDynamicsDefines(**data)[source]
Bases:
BaseModelClass dynamics coefficients (FRED DFA-derived, Feature 016).
Parameters fitted to FRED Distributional Financial Accounts (2015-2025) for class wealth flow dynamics.
- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- alpha_21: float
- gamma_3: float
- equilibrium_w1: float
- equilibrium_w2: float
- equilibrium_w3: float
- equilibrium_w4: float
- alpha_41: float
- alpha_31: float
- alpha_32: float
- alpha_42: float
- alpha_43: float
- delta_1: float
- delta_2: float
- delta_3: float
- beta_1: float
- beta_2: float
- beta_3: float
- beta_4: float
- omega_1: float
- omega_2: float
- omega_3: float
- omega_4: float
- class babylon.config.defines.LifecycleDefines(**data)[source]
Bases:
BaseModelD-P-D’ Lifecycle Circuit coefficients (Feature 030).
36 tunable parameters for intergenerational class reproduction. All defaults have documented provenance (CDC, Census, Chetty, etc.).
The legitimation weight ranking is a design invariant reflecting authorial political judgment; individual values are tunable but the ordinal ranking is not.
See also
specs/030-dpd-lifecycle-circuit/data-model.md: Full provenance table.- Parameters:
rate_p_to_d_prime (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
rate_d_prime_to_death (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
initial_pop_d_frac (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
initial_pop_p_frac (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
initial_pop_d_prime_frac (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
pension_coverage_rate (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
home_ownership_rate (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
ss_replacement_rate (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
healthcare_security (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
retirement_confidence (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
legit_w_home_ownership (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
legit_w_healthcare_security (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
legit_w_retirement_confidence (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
legit_w_pension_coverage (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
legit_w_ss_replacement (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
legitimation_blend_weight (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
legitimation_crisis_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
legitimation_unstable_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
care_cost_fraction (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
mobility_base_rate (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
mobility_base_rate_p75 (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
mobility_racial_gap (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
carceral_transition_modifier (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
early_mortality_modifier (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
single_parent_fraction (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
ideology_caregiver_weight (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
ideology_institutional_weight (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
ideology_regression_coefficient (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
sandwich_squeeze_threshold (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- birth_rate: float
- rate_d_to_p: float
- rate_p_to_d_prime: float
- rate_d_prime_to_death: float
- initial_pop_d_frac: float
- initial_pop_p_frac: float
- initial_pop_d_prime_frac: float
- pension_coverage_rate: float
- home_ownership_rate: float
- ss_replacement_rate: float
- healthcare_security: float
- retirement_confidence: float
- legit_w_home_ownership: float
- legit_w_healthcare_security: float
- legit_w_retirement_confidence: float
- legit_w_pension_coverage: float
- legit_w_ss_replacement: float
- legitimation_blend_weight: float
- legitimation_crisis_threshold: float
- legitimation_unstable_threshold: float
- pareto_alpha: float
- care_cost_fraction: float
- mobility_base_rate: float
- mobility_base_rate_p75: float
- mobility_racial_gap: float
- carceral_transition_modifier: float
- early_mortality_modifier: float
- baseline_gini: float
- employment_rate: float
- single_parent_fraction: float
- college_rate: float
- ideology_caregiver_weight: float
- ideology_institutional_weight: float
- ideology_regression_coefficient: float
- sandwich_squeeze_threshold: float
- class babylon.config.defines.OrganizationDefines(**data)[source]
Bases:
BaseModelOrganization system tunable coefficients (Feature 031).
14 parameters controlling consciousness effects, intelligence methodology ceilings, cohesion mechanics, credibility defaults, and capacity factors.
See also
specs/031-organization-base-model/data-model.md: Full provenance table.- Parameters:
elder_capacity_factor (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
tendency_modifier_revolutionary (Annotated[float, Ge(ge=-1.0), Le(le=1.0)])
tendency_modifier_liberal (Annotated[float, Ge(ge=-1.0), Le(le=1.0)])
tendency_modifier_fascist (Annotated[float, Ge(ge=-1.0), Le(le=1.0)])
observation_ceiling_local_pd (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
observation_ceiling_fusion (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
observation_ceiling_fbi (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
cohesion_loss_per_key_figure (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
min_cohesion_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
credibility_default_faction (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
credibility_sovereign (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
credibility_chartered (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
credibility_default_state (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
violence_capacity_default (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
surveillance_capacity_default (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- elder_capacity_factor: float
- tendency_modifier_revolutionary: float
- tendency_modifier_liberal: float
- tendency_modifier_fascist: float
- observation_ceiling_local_pd: float
- observation_ceiling_fusion: float
- observation_ceiling_fbi: float
- cohesion_loss_per_key_figure: float
- min_cohesion_threshold: float
- credibility_default_faction: float
- credibility_sovereign: float
- credibility_chartered: float
- credibility_default_state: float
- violence_capacity_default: float
- surveillance_capacity_default: float
- class babylon.config.defines.EdgeTransitionDefines(**data)[source]
Bases:
BaseModelEdge mode transition threshold values (Feature 002, FR-010).
Configures the threshold values used in predicate conditions that determine when edges transition between modes (EXTRACTIVE, TRANSACTIONAL, CO-OPTIVE, etc.).
- Parameters:
extraction_contested_threshold (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
extraction_broken_threshold (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
concessions_exploitation_threshold (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
concessions_rent_threshold (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
mutual_aid_threshold (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
market_failure_threshold (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
power_asymmetry_threshold (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
co_optive_power_threshold (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
solidarity_degrades_threshold (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
betrayal_threshold (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
conflict_resolved_threshold (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
shared_enemy_threshold (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
reform_rent_threshold (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
co_optation_normalizes_threshold (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
co_optive_breakdown_threshold (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
concessions_withdrawn_threshold (Annotated[float, Ge(ge=0.0), Le(le=10.0)])
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- extraction_contested_threshold: float
- extraction_broken_threshold: float
- concessions_exploitation_threshold: float
- concessions_rent_threshold: float
- mutual_aid_threshold: float
- market_failure_threshold: float
- power_asymmetry_threshold: float
- co_optive_power_threshold: float
- solidarity_degrades_threshold: float
- betrayal_threshold: float
- conflict_resolved_threshold: float
- reform_rent_threshold: float
- co_optation_normalizes_threshold: float
- co_optive_breakdown_threshold: float
- concessions_withdrawn_threshold: float
- class babylon.config.defines.OODADefines(**data)[source]
Bases:
BaseModelOODA Loop System tunable coefficients (Feature 032).
Controls cycle time computation, initiative scoring, action costs, consciousness effect multipliers, and propagation parameters.
See also
specs/032-ooda-loop-system/data-model.md: Full specification.- Parameters:
initiative_weight_institutional (Annotated[float, Ge(ge=0)])
embeddedness_discount (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
contradiction_cost_multiplier (Annotated[float, Gt(gt=1.0)])
max_ci_delta_per_tick (Annotated[float, Gt(gt=0), Le(le=1)])
autonomy_effectiveness_scale (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
agitation_contestation_delta (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
contestation_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
counter_intel_increment (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
repress_heat_delta (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
surveil_heat_delta (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
build_infrastructure_delta (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
attack_infrastructure_delta (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- base_observe_time: float
- latency_weight: float
- base_orient_time: float
- coherence_weight: float
- base_act_time: float
- coord_weight: float
- depth_weight: float
- decision_mode_base_autocratic: float
- decision_mode_base_delegate: float
- decision_mode_base_democratic: float
- decision_mode_base_consensus: float
- initiative_weight_speed: float
- initiative_weight_institutional: float
- initiative_weight_counterintel: float
- initiative_weight_embeddedness: float
- initiative_weight_momentum: float
- institutional_bonus_federal: float
- institutional_bonus_state: float
- institutional_bonus_local: float
- institutional_bonus_nonstate: float
- momentum_decay: float
- momentum_success_bonus: float
- embeddedness_discount: float
- contradiction_cost_multiplier: float
- outsider_cost_multiplier: float
- min_cost_modifier: float
- max_ci_delta_per_tick: float
- action_base_educate: float
- action_base_agitate: float
- action_base_provide_service: float
- action_base_recruit: float
- action_base_organize: float
- action_base_propagandize: float
- action_base_repress: float
- action_base_surveil: float
- action_base_assimilate: float
- autonomy_effectiveness_scale: float
- agitation_contestation_delta: float
- agitation_educate_bonus: float
- contestation_threshold: float
- elder_legitimacy_multiplier: float
- counter_intel_increment: float
- base_cost_recruit: int
- base_cost_organize: int
- base_cost_educate: int
- base_cost_agitate: int
- base_cost_propagandize: int
- base_cost_fundraise: int
- base_cost_provide_service: int
- base_cost_employ: int
- base_cost_repress: int
- base_cost_protest: int
- base_cost_strike: int
- base_cost_expropriate: int
- base_cost_surveil: int
- base_cost_infiltrate: int
- base_cost_counter_intel: int
- base_cost_map_network: int
- base_cost_propose_alliance: int
- base_cost_denounce: int
- base_cost_build_infrastructure: int
- base_cost_attack_infrastructure: int
- base_cost_assimilate: int
- repress_heat_delta: float
- surveil_heat_delta: float
- build_infrastructure_delta: float
- attack_infrastructure_delta: float
- orient_time_floor: float
- validate_derivations(game_defines)[source]
Cross-validate OODA coefficients against source primitives.
Checks that derived coefficients (Categories A and B) still match their source primitive formulas. Returns a list of drift warnings for any mismatches exceeding tolerance (0.001).
- Parameters:
game_defines (
GameDefines) – Parent GameDefines providing source primitives.- Return type:
- Returns:
List of warning messages for any detected drift. Empty if clean.
- class babylon.config.defines.BifurcationDefines(**data)[source]
Bases:
BaseModelBifurcation Topology Analysis coefficients (Feature 033).
Configures consciousness-weighted solidarity analysis that predicts whether crisis routes to fascism or revolution. The core innovation: a nonlinear sigmoid of collective_identity weights solidarity edges so assimilationist solidarity classifies as fragile/fascist.
See also
babylon.bifurcation.consciousness: Sigmoid weighting.babylon.bifurcation.analysis: Full bifurcation orchestrator.specs/033-bifurcation-topology/spec.md: Feature specification.- Parameters:
consciousness_sigmoid_midpoint (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
consciousness_sigmoid_steepness (Annotated[float, Gt(gt=0.0), Le(le=50.0)])
consciousness_filter_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
indeterminate_dead_zone (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
axis_tendency_epsilon (Annotated[float, Gt(gt=0), Le(le=0.1)])
legitimation_amplifier_scale (Annotated[float, Ge(ge=1.0), Le(le=10.0)])
shared_exploitation_bonus (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
purge_removal_rate (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- consciousness_sigmoid_midpoint: float
- consciousness_sigmoid_steepness: float
- consciousness_filter_threshold: float
- indeterminate_dead_zone: float
- axis_tendency_epsilon: float
- legitimation_amplifier_scale: float
- wage_ceiling_high_ratio: float
- wage_ceiling_low_ratio: float
- wage_ceiling_min: float
- wage_ceiling_max: float
- purge_removal_rate: float
- class babylon.config.defines.InfraTerrainDefines(**data)[source]
Bases:
BaseModelTerrain classification and biocapacity coefficients (Feature 036).
Configures majority-coverage thresholds, initial biocapacity stock values, and per-tick depletion rates. Also includes internet access defaults.
See also
babylon.infrastructure.terrain: DefaultTerrainClassifier.specs/036-infrastructure-topology/spec.md: FR-001 through FR-008.- Parameters:
majority_coverage_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
depletion_freshwater (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
depletion_fishery (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
depletion_shipping_access (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
depletion_mineral (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
depletion_hydroelectric (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
internet_access_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
default_surveillance_coupling (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- majority_coverage_threshold: float
- initial_freshwater: float
- initial_fishery: float
- initial_shipping_access: float
- initial_mineral: float
- initial_timber: float
- initial_hydroelectric: float
- depletion_freshwater: float
- depletion_fishery: float
- depletion_shipping_access: float
- depletion_mineral: float
- depletion_timber: float
- depletion_hydroelectric: float
- internet_access_threshold: float
- default_surveillance_coupling: float
- get_initial_stock(stock_type)[source]
Get initial biocapacity stock value by type.
- Parameters:
stock_type (
str) – BiocapacityType value (lowercase).- Return type:
- Returns:
Initial stock value.
- Raises:
ValueError – If stock_type is not recognized.
- get_depletion_rate(stock_type)[source]
Get per-tick depletion rate by stock type.
- Parameters:
stock_type (
str) – BiocapacityType value (lowercase).- Return type:
- Returns:
Depletion rate per tick.
- Raises:
ValueError – If stock_type is not recognized.
- class babylon.config.defines.InfrastructureDefines(**data)[source]
Bases:
BaseModelInfrastructure capacity and internet operation coefficients (Feature 036).
Configures per-type capacity values, natural capacity defaults, OPSEC tradeoff ratios, and internet throttle fractions.
See also
babylon.infrastructure.capacity: DefaultEdgeCapacityCalculator.specs/036-infrastructure-topology/spec.md: FR-009 through FR-029.- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- highway_freight: float
- highway_commuter: float
- highway_value: float
- highway_consciousness: float
- arterial_freight: float
- arterial_commuter: float
- arterial_value: float
- arterial_consciousness: float
- local_road_freight: float
- local_road_commuter: float
- local_road_value: float
- local_road_consciousness: float
- rail_freight: float
- rail_commuter: float
- rail_value: float
- rail_consciousness: float
- pipeline_energy: float
- transmission_energy: float
- shipping_lane_freight: float
- air_link_freight: float
- air_link_commuter: float
- air_link_value: float
- air_link_consciousness: float
- natural_capacity_coefficient: float
- minimum_capacity_threshold: float
- opsec_tradeoff_ratio: float
- throttle_throughput_fraction: float
- snap_buffer_fraction: float
- local_ratio_threshold: float
- semi_local_ratio_threshold: float
- class babylon.config.defines.RentCircuitDefines(**data)[source]
Bases:
BaseModelParameters for ground rent extraction in Volume III equalization (Feature 043).
- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- absolute_rent_fraction: float
- differential_rent_elasticity: float
- class babylon.config.defines.ClassSystemDefines(**data)[source]
Bases:
BaseModelUnified class system coefficients (Feature 038).
Centralizes all tunable coefficients for the unified class system: filtration parameters, home ownership proxy, and the 5x5 class-pair solidarity matrix.
- Parameters:
trust_land_discount (Annotated[float, Ge(ge=0.0), Le(le=1.0)]) – Fed SCF / BIA discount on effective wealth for FIRST_NATIONS trust land property. 0.5 = 50% reduction.
documentation_exclusion_factor (Annotated[float, Ge(ge=0.0), Le(le=1.0)]) – Discount on effective wealth for UNDOCUMENTED households. 0.6 = 40% reduction.
equity_factor (Annotated[float, Ge(ge=0.0), Le(le=1.0)]) – Fraction of homeowners with meaningful equity. Calibrated: 65% ownership * 0.6 = 39% ~ 40% LA share.
base_class_solidarity (dict[str, dict[str, float]]) – Symmetric 5x5 class-pair base solidarity matrix (15 unique values in upper triangle including diagonal).
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- trust_land_discount: float
- documentation_exclusion_factor: float
- equity_factor: float
- base_class_solidarity: dict[str, dict[str, float]]
- class babylon.config.defines.StateApparatusAIDefines(**data)[source]
Bases:
BaseModelState Apparatus AI coefficients (Feature 039).
Configures the state-as-adversary system: faction dynamics, fascist convergence detection, attention thread management, budget allocation, escalation ladder, and territory effect parameters.
All thresholds are [S] SYNTHETIC unless otherwise noted.
See also
specs/039-state-apparatus-ai/spec.md: Full specification.- Parameters:
max_faction_shift_per_tick (Annotated[float, Ge(ge=0.0), Le(le=0.2)])
minimum_effect_floor (Annotated[float, Ge(ge=0.0), Le(le=0.1)])
heat_to_ss_coefficient (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
fascist_security_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
fascist_settler_ci_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
fascist_finance_ceiling (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
convergence_confirmation_ticks (Annotated[int, Ge(ge=1), Le(le=10)])
reversion_ss_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
reversion_ci_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
develop_infrastructure_boost (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
neglect_infrastructure_decay (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
displace_population_fraction (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
neglect_quality_floor (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
consciousness_resistance_factor (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
high_profile_heat_rate (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
low_profile_heat_rate (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
heat_escalation_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
scorched_earth_legitimacy_core (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
scorched_earth_legitimacy_periphery (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
strategic_withdrawal_decay_multiplier (Annotated[float, Ge(ge=1.0), Le(le=10.0)])
strategic_withdrawal_asset_recovery (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
displace_ci_reduction (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
displace_community_infra_reduction (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
recruit_no_presence_penalty (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
eviction_scatter_ci_loss (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
propagandize_base_delta (Annotated[float, Ge(ge=0), Le(le=0.5)])
incorporate_base_attractiveness (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
bribe_consciousness_shift (Annotated[float, Ge(ge=0), Le(le=0.5)])
bribe_liberal_increase (Annotated[float, Ge(ge=0), Le(le=0.5)])
divide_requires_prior_surveil (bool)
incorporate_requires_prior_surveil (bool)
fund_capacity_increment (Annotated[float, Ge(ge=0), Le(le=0.5)])
staff_thread_cost (Annotated[float, Ge(ge=0.0), Le(le=50.0)])
audit_routine_detection_chance (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
audit_thorough_detection_chance (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
audit_deep_detection_chance (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
infiltrate_informant_intel_rate (Annotated[float, Ge(ge=0), Le(le=0.5)])
infiltrate_provocateur_intel_rate (Annotated[float, Ge(ge=0), Le(le=0.5)])
infiltrate_mole_intel_rate (Annotated[float, Ge(ge=0), Le(le=0.5)])
infiltrate_detection_base_chance (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
raid_ci_radicalization_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
raid_ci_radicalization_boost (Annotated[float, Ge(ge=0), Le(le=0.5)])
raid_ci_suppression_rate (Annotated[float, Ge(ge=0), Le(le=0.5)])
raid_org_coherence_damage (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
raid_key_figure_capture_base (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
raid_force_multiplier_swat (Annotated[float, Ge(ge=1.0), Le(le=5.0)])
raid_force_multiplier_military (Annotated[float, Ge(ge=1.0), Le(le=10.0)])
prosecute_org_morale_damage (Annotated[float, Ge(ge=0), Le(le=0.5)])
prosecute_key_figure_removal_chance (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
prosecute_terrorism_charge_multiplier (Annotated[float, Ge(ge=1.0), Le(le=5.0)])
prosecute_legitimacy_boost_success (Annotated[float, Ge(ge=0.0), Le(le=0.1)])
liquidate_singleton_collapse_chance (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
liquidate_core_legitimacy_cost (Annotated[float, Ge(ge=0), Le(le=0.5)])
liquidate_periphery_legitimacy_cost (Annotated[float, Ge(ge=0), Le(le=0.5)])
liquidate_deniability_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
liquidate_coherence_damage (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
emergency_powers_thread_multiplier (Annotated[float, Ge(ge=1.0), Le(le=5.0)])
emergency_powers_liquidate_in_core (bool)
surveillance_expansion_intel_bonus (Annotated[float, Ge(ge=0), Le(le=0.5)])
god_mode_enabled (bool)
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- max_faction_shift_per_tick: float
- minimum_effect_floor: float
- heat_to_ss_coefficient: float
- fascist_security_threshold: float
- fascist_settler_ci_threshold: float
- fascist_finance_ceiling: float
- convergence_confirmation_ticks: int
- reversion_ss_threshold: float
- reversion_ci_threshold: float
- thread_pool_base: int
- thread_pool_max: int
- thread_escalation_thresholds: dict[str, float]
- detroit_2010_annual_budget: float
- actions_per_tick: int
- escalation_ladder: list[str]
- develop_infrastructure_boost: float
- neglect_infrastructure_decay: float
- displace_population_fraction: float
- neglect_quality_floor: float
- consciousness_resistance_factor: float
- high_profile_heat_rate: float
- low_profile_heat_rate: float
- heat_escalation_threshold: float
- scorched_earth_legitimacy_core: float
- scorched_earth_legitimacy_periphery: float
- strategic_withdrawal_decay_multiplier: float
- strategic_withdrawal_asset_recovery: float
- displace_ci_reduction: float
- displace_community_infra_reduction: float
- heat_decay_rate: float
- recruit_no_presence_penalty: float
- eviction_scatter_ci_loss: float
- propagandize_base_delta: float
- incorporate_base_attractiveness: float
- bribe_consciousness_shift: float
- bribe_liberal_increase: float
- divide_requires_prior_surveil: bool
- incorporate_requires_prior_surveil: bool
- fund_capacity_increment: float
- staff_thread_cost: float
- staff_max_per_tick: int
- audit_routine_detection_chance: float
- audit_thorough_detection_chance: float
- audit_deep_detection_chance: float
- infiltrate_informant_intel_rate: float
- infiltrate_provocateur_intel_rate: float
- infiltrate_mole_intel_rate: float
- infiltrate_detection_base_chance: float
- raid_ci_radicalization_threshold: float
- raid_ci_radicalization_boost: float
- raid_ci_suppression_rate: float
- raid_org_coherence_damage: float
- raid_key_figure_capture_base: float
- raid_force_multiplier_swat: float
- raid_force_multiplier_military: float
- prosecute_org_morale_damage: float
- prosecute_key_figure_removal_chance: float
- prosecute_terrorism_charge_multiplier: float
- prosecute_legitimacy_boost_success: float
- liquidate_singleton_collapse_chance: float
- liquidate_core_legitimacy_cost: float
- liquidate_periphery_legitimacy_cost: float
- liquidate_deniability_threshold: float
- liquidate_coherence_damage: float
- emergency_powers_thread_multiplier: float
- emergency_powers_liquidate_in_core: bool
- surveillance_expansion_intel_bonus: float
- god_mode_enabled: bool
- class babylon.config.defines.InstitutionDefines(**data)[source]
Bases:
BaseModelInstitution Base Model coefficients (Feature 040).
Configures factional balance dynamics, Bonapartist threshold detection, and default structural selectivity modifiers per apparatus type.
All thresholds are [S] SYNTHETIC unless otherwise noted.
See also
specs/040-institution-base-model/spec.md: Full specification.- Parameters:
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- alpha_smoothing_rate: float
- bonapartist_threshold: float
- bonapartist_exclusion_threshold: float
- default_action_modifiers: dict[str, dict[str, float]]
- class babylon.config.defines.MobilizeDefines(**data)[source]
Bases:
BaseModelConfiguration for MOBILIZE verb organizational actions.
- Parameters:
min_consciousness (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
solidarity_amplification_per_edge (Annotated[float, Ge(ge=0)])
heat_generation_per_demonstrator (Annotated[float, Ge(ge=0)])
strike_value_disruption_factor (Annotated[float, Ge(ge=0.0), Le(le=1.0)])
max_demonstrators_before_backfire (Annotated[int, Ge(ge=0)])
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- mobilize_cl_cost: float
- min_consciousness: float
- turnout_per_sl: float
- solidarity_amplification_per_edge: float
- heat_generation_per_demonstrator: float
- base_agitation_gain: float
- strike_value_disruption_factor: float
- max_demonstrators_before_backfire: int
- backfire_heat_multiplier: float
- backfire_agitation_gain: float
- class babylon.config.defines.MoveDefines(**data)[source]
Bases:
BaseModelMOVE verb coefficients.
- Parameters:
- expand_presence_split: float
- minimum_reception: float
- relocation_withdrawal_ticks: int
- expansion_edge_strain: float
- evasion_base_probability: float
- reacquire_ticks: int
- distance_ap_surcharge: int
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class babylon.config.defines.NegotiateDefines(**data)[source]
Bases:
BaseModelNEGOTIATE verb coefficients.
- Parameters:
- interest_weight: float
- leverage_weight: float
- institutional_leverage_weight: float
- negotiate_solidarity_increment: float
- betrayal_base_rate: float
- leverage_threshold_for_institutions: float
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class babylon.config.defines.GameDefines(**data)[source]
Bases:
BaseModelCentralized game coefficients extracted from hardcoded values.
GameDefines collects numerical constants that were previously scattered across system implementations. By centralizing them here, we can: - Document their purpose and valid ranges - Override them per-scenario for calibration - Test the sensitivity of outcomes to coefficient changes
The model is frozen (immutable) to ensure defines remain constant throughout a simulation run.
Structure follows the YAML file organization: - crisis: Crisis detection and devaluation mechanics (Feature 018) - economy: Imperial rent extraction and value flow - survival: P(S|A) and P(S|R) survival calculus - solidarity: Consciousness transmission - behavioral: Behavioral economics (loss aversion) - tension: Tension dynamics - consciousness: Consciousness drift - territory: Territory dynamics - topology: Phase transition thresholds (gaseous/liquid/solid) - metabolism: Metabolic rift (ecological limits) - struggle: Struggle dynamics (Agency Layer) - carceral: Carceral equilibrium (Terminal Crisis Dynamics) - endgame: Endgame detection thresholds - initial: Initial conditions - contradiction_field: Dialectical field topology (Feature 002) - reserve_army: Reserve army of labor coefficients (Feature 021) - dispossession: Dispossession event intensity weights (Feature 021) - working_day: Working day characterization thresholds (Feature 021) - community: Hypergraph community layer coefficients (Feature 022) - class_dynamics: Class wealth flow dynamics (Feature 016, FRED DFA-derived) - edge_transition: Edge mode transition thresholds (Feature 002) - organization: Organization system coefficients (Feature 031) - ooda: OODA loop system coefficients (Feature 032) - class_system: Unified class system coefficients (Feature 038) - bifurcation: Bifurcation topology analysis coefficients (Feature 033) - infra_terrain: Terrain classification and biocapacity coefficients (Feature 036) - infrastructure: Infrastructure capacity and internet coefficients (Feature 036)
- Parameters:
crisis (CrisisDefines)
mobilize (MobilizeDefines)
economy (EconomyDefines)
survival (SurvivalDefines)
vitality (VitalityDefines)
solidarity (SolidarityDefines)
behavioral (BehavioralDefines)
tension (TensionDefines)
consciousness (ConsciousnessDefines)
territory (TerritoryDefines)
topology (TopologyDefines)
metabolism (MetabolismDefines)
struggle (StruggleDefines)
carceral (CarceralDefines)
endgame (EndgameDefines)
initial (InitialDefines)
precision (PrecisionDefines)
timescale (TimescaleDefines)
external_data (ExternalDataDefines)
contradiction_field (ContradictionFieldDefines)
reserve_army (ReserveArmyDefines)
dispossession (DispossessionDefines)
working_day (WorkingDayDefines)
community (CommunityDefines)
class_dynamics (ClassDynamicsDefines)
edge_transition (EdgeTransitionDefines)
lifecycle (LifecycleDefines)
organization (OrganizationDefines)
ooda (OODADefines)
bifurcation (BifurcationDefines)
infra_terrain (InfraTerrainDefines)
infrastructure (InfrastructureDefines)
rent_circuit (RentCircuitDefines)
class_system (ClassSystemDefines)
state_ai (StateApparatusAIDefines)
institution (InstitutionDefines)
move (MoveDefines)
negotiate (NegotiateDefines)
- model_config: ClassVar[ConfigDict] = {'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- crisis: CrisisDefines
- mobilize: MobilizeDefines
- economy: EconomyDefines
- survival: SurvivalDefines
- vitality: VitalityDefines
- solidarity: SolidarityDefines
- behavioral: BehavioralDefines
- tension: TensionDefines
- consciousness: ConsciousnessDefines
- territory: TerritoryDefines
- topology: TopologyDefines
- metabolism: MetabolismDefines
- struggle: StruggleDefines
- carceral: CarceralDefines
- endgame: EndgameDefines
- initial: InitialDefines
- precision: PrecisionDefines
- timescale: TimescaleDefines
- external_data: ExternalDataDefines
- contradiction_field: ContradictionFieldDefines
- reserve_army: ReserveArmyDefines
- dispossession: DispossessionDefines
- working_day: WorkingDayDefines
- community: CommunityDefines
- class_dynamics: ClassDynamicsDefines
- edge_transition: EdgeTransitionDefines
- lifecycle: LifecycleDefines
- organization: OrganizationDefines
- ooda: OODADefines
- bifurcation: BifurcationDefines
- infra_terrain: InfraTerrainDefines
- infrastructure: InfrastructureDefines
- rent_circuit: RentCircuitDefines
- class_system: ClassSystemDefines
- state_ai: StateApparatusAIDefines
- institution: InstitutionDefines
- move: MoveDefines
- negotiate: NegotiateDefines
- classmethod load_from_yaml(path)[source]
Load GameDefines from a YAML file.
- Parameters:
path (
str|Path) – Path to the YAML file (absolute or relative)- Return type:
- Returns:
GameDefines instance populated from YAML
- Raises:
FileNotFoundError – If the YAML file doesn’t exist
yaml.YAMLError – If the YAML is malformed
pydantic.ValidationError – If values fail validation
- classmethod default_yaml_path()[source]
Return the default path to defines.yaml.
- Return type:
- Returns:
Path to src/babylon/data/defines.yaml