The 20-Year Entropy Standard
Parameter Tuning Methodology
The simulation no longer asks: “Can the empire survive?” It now asks: “How does the empire die?”
The default state of the simulation is COLLAPSE. Stability is a temporary deviation, not the norm. We model a 20-year timeline (1040 ticks) because that is sufficient to observe the systematic decay of any imperial system operating under capitalist extraction.
The Problem: Eden Mode
Previous specifications permitted infinite stability because:
Existence was free:
base_subsistence = 0.0meant entities persisted without costEarth was infinite: No hysteresis in biocapacity degradation
Zombies were possible: Entities survived with near-zero wealth indefinitely
This produced “flatline” simulations where nothing happened.
The Solution: Dying World Physics
Under the new standard:
Existence costs calories:
base_subsistence > 0.0always (The Calorie Check)Death is real: VitalitySystem kills entities when
wealth < consumption_needs
The 20-Year Benchmark
Old Standard |
New Standard |
|---|---|
52 ticks (1 year) |
1040 ticks (20 years) |
Why 20 years?
Long enough to observe TRPF (Tendency of the Rate of Profit to Fall)
Long enough for ecological degradation to compound
Long enough for generational effects
Short enough for meaningful simulation runs (~10-20 minutes)
Success Criteria
OLD: “Success = Survival”
NEW: “Success = Realistic Decay”
The ideal simulation produces:
p_c_wealthdeclining ~0.05% per ticktotal_biocapacitydeclining ~0.08% per tickimperial_rent_poolexhibiting TRPF (declining rate of return)Death occurring in the 800-900 tick range (Year 15-17)
The Calorie Check
INVARIANT: base_subsistence > 0.0 in ALL scenarios
This is the foundational constraint that prevents Eden Mode.
# FORBIDDEN - Creates Zombie States
defines.economy.base_subsistence = 0.0 # NEVER
# REQUIRED - Ensures Entropy
defines.economy.base_subsistence >= 0.01 # ALWAYS
Every scenario factory and test fixture MUST verify:
def create_scenario():
defines = GameDefines()
assert defines.economy.base_subsistence > 0.0, \
"Eden Mode detected: base_subsistence must be > 0.0"
return state, config, defines
Objective Function
The optimization objective rewards realistic decay:
def objective_v2(trial):
"""Optimize for REALISTIC DECAY, not survival."""
result = run_simulation(trial.params, max_ticks=1040)
# Death Timing (40%): Should occur around tick 850
death_tick = result.death_tick or 1040
timing_score = 1.0 - abs(death_tick - 850) / 400
# Decay Shape (30%): Smooth decline, not flatline or cliff
decay_smoothness = calculate_curve_smoothness(result.wealth_timeseries)
# TRPF Manifestation (20%): Rate of profit declines
trpf_score = calculate_declining_rate(result.rent_pool_timeseries)
# Biocapacity Exhaustion (10%): Near-zero around death
exhaustion_score = 1.0 - (result.final_biocapacity / result.initial_biocapacity)
return (0.4 * timing_score +
0.3 * decay_smoothness +
0.2 * trpf_score +
0.1 * exhaustion_score)
Anti-Patterns
Zombie State (Flatline)
Symptom: Wealth graph is horizontal
Cause:
base_subsistence = 0.0or consumption_needs too lowDetection:
std(wealth_timeseries) < 0.01Fix: Increase consumption_needs, verify Calorie Check
Instant Death (Cliff)
Symptom: Simulation ends before tick 100
Cause: Extraction too aggressive, initial wealth too low
Detection:
death_tick < 100Fix: Reduce extraction_efficiency, increase initial wealth
Eternal Empire (Eden Mode)
Symptom: Survives 1040 ticks without significant decay
Cause: Extraction perfectly balanced with production
Detection:
wealth[tick_1000] / wealth[tick_0] > 0.9Fix: Enable biocapacity hysteresis, increase entropy_factor
Hollow Stability
Symptom: Metrics oscillate around stable point
Cause: System finds equilibrium (theoretically impossible)
Detection:
mean(wealth[500:1000]) ≈ mean(wealth[0:500])Fix: Increase TRPF coefficient, add extraction hysteresis
Parameter Ranges
Entropy Parameters
Parameter |
Range |
Purpose |
|---|---|---|
|
[0.01, 0.05] |
Calorie drain per tick |
|
[1.1, 1.5] |
Extraction inefficiency |
TRPF Parameters
Parameter |
Range |
Purpose |
|---|---|---|
|
[0.0001, 0.001] |
Rate of profit decay |
|
[0.001, 0.005] |
Background rent evaporation |
Workflow
Verify Calorie Check:
poetry run python -c " from babylon.config.defines import GameDefines d = GameDefines() assert d.economy.base_subsistence > 0.0 print('Calorie Check: PASSED')"
Run 20-Year Simulation:
mise run sim:trace --ticks 1040
Verify Decay Curve:
Review the generated CSV for realistic decay patterns.
See Also
MLM-TW Theoretical Foundation - The Tragedy of Inevitability
Configuration System - GameDefines reference
Formulas Reference - Mathematical formulas including TRPF