How We Made a Mars Colony That Refuses to Die
Most Mars sims kill your colony. Ours fights back.
The Protein Powder Philosophy
The first version of Mars Barn’s food system was a ticking clock. The greenhouse grew food, the crew ate it, and when the harvest couldn’t keep up, everyone starved around Sol 50. Every stress test ended the same way: food collapse.
The fix wasn’t a better greenhouse. It was 13.4 metric tons of protein powder.
4 crew × 0.5 kg/day × 668 sols/year × 10 years = 13,360 kg
Storage bins full. A decade of dehydrated protein, vitamin packs, and minerals shipped with the colony from day one. Food is not the drama. The greenhouse grows fresh greens — garnish that boosts morale, not survival rations. Autonomous shuttles on Hohmann transfer orbits top off supplies every 300 sols with protein powder, spare parts, water, and seeds. But the colony doesn’t need them to survive.
This changes the entire simulation dynamic. Instead of “will they starve?” the question becomes “can they keep the hardware running?”
Equipment Degradation
Every system in the habitat has a health value that decays each sol:
| System | Decay Rate | Effect When Degraded |
|---|---|---|
| Solar panels | 0.08%/sol | Reduced power generation |
| Heater | 0.05%/sol | Reduced heating capacity |
| Water recycler | 0.06%/sol | Water loss per cycle |
| Hab seals | 0.03%/sol | Atmosphere integrity |
| Comms | 0.02%/sol | Shuttle coordination |
Dust storms accelerate wear. Meteorite impacts damage panels. After 500 sols without intervention, panels drop to ~70% health and the heater follows.
Repairs require EVA hours + spare parts from shuttles. The crew auto-repairs when a system drops below 70%, but each repair costs a spare part. The real tension: the supply chain of spare parts from Earth.
Crew Specialization
The four-person crew isn’t interchangeable. Each has a specialization:
- Engineer — repairs equipment at 2× speed
- Botanist — greenhouse yield +50%
- Geologist — discovery chance +50% on EVAs
- Medic — illness recovery at 2× rate
Lose your engineer and repairs slow to a crawl. Lose your medic and illness spirals. The specializations multiply into the equipment and food systems — everything is coupled.
Adaptive Countermeasures
When something goes wrong, the crew doesn’t just accept it. Nine adaptive systems kick in automatically:
Power crisis → crew rations power, shuts down non-essentials. Meteorite hits panels → EVA repair crew patches damage on the spot. Storm incoming → pre-heat habitat and stash energy. Heater fails → reroute power from secondary circuits. Seal breach → emergency sealant (always on hand). Recycler down → switch to backup water reserves. Temp drops below -20°C → huddle protocol, cluster in inner module. Below -50°C → emergency heating, burn 20 kWh to fight hypothermia. Food at zero → switch to greenhouse greens as emergency rations.
Death only comes from 5+ sols of sustained cascading failure with zero countermeasures remaining. In 1000-sol stress tests, the colony triggers 30+ adaptations and zero deaths.
The Projection Engine
We built a Monte Carlo forward projection that asks: “what happens next?”
It runs 20 parallel universes from the current colony state, each with different random seeds and Poisson-sampled extreme events:
- Global dust storms (1 in 2000 sols) — solar drops to 15%
- Large meteorites (1 in 500 sols) — panel damage + dust cloud
- Solar proton events (1 in 1000 sols) — radiation spike
- Marsquakes (1 in 3333 sols) — structural check required
- Equipment cascades (1 in 1000 sols) — multiple systems degrade
The output is p10/p50/p90 confidence bands for every metric:
Sol | Temp °C | Energy kWh | Food kg | Alive
100 | +17.2 / +19.1 | 2945 / 4537 | 13758 / 13758 | 100%
100% survival rate through 100 sols. Food barely moves. The drama is in the equipment health curves and the confidence spread on energy reserves.
The Stack
The whole thing runs on:
- Python physics engine — thermal model, solar mechanics, greenhouse growth curves
- Express API — 9 endpoints including
POST /api/projectfor Monte Carlo projections - React 3D viewer — colony status with dual-mode microGPT inference + projection widget
- Daily GitHub Action — advances the colony, retrains the microGPT on new narratives
- Pure-Python GPT — character-level transformer trained on colony logs, runs in-browser
Every fork of the repo is a parallel universe. Different random seeds, different weather, different survival odds. The colony-tick Action advances each fork independently.
What We Learned
The interesting design constraint wasn’t “make survival harder.” It was “make survival assumed, then find what’s actually interesting.” When food is abundant, the questions become:
- Can we keep 5 systems above 70% health with a finite spare parts pipeline?
- What happens when the engineer gets sick during a dust storm?
- How does equipment degradation compound over 1000 sols?
- Can the projection engine identify the tipping point where repairs can’t keep up?
The colony that refuses to die is more interesting than the colony that’s always about to starve.
Sol 2 tomorrow.