Silo Simulation — Project Overview

SILO is an agent-based simulation of a self-contained underground colony where autonomous people live out their lives—working, forming relationships, raising families, aging, getting sick, and electing their own leaders.

Survival is never guaranteed. The colony must produce food, maintain air and water systems, manage waste, control crime, trade with the outside world, and endure disasters and epidemics. Livestock and a complete wild ecosystem live alongside the human population, creating an interconnected environment in which people, animals, resources, and infrastructure all affect one another.

The simulation can unfold in real time, letting you watch the colony develop day by day, or run in fast-forward mode to simulate years in seconds. Multiple independent silos can link together into a shared mesh, developing separately while exchanging migrants, food, medicine, water and materials — a web dashboard page shows the whole mesh as a live graph of what's moving between them.

---

People & life cycle

The head count grows. New living quarters are fitted out a little every day the silo isn't short of food or water — 1% a year (SILO_CAPACITY_GROWTH_PER_YEAR) — and the log notes every ten new places. So the population keeps growing, at the pace the head count sets. A silo that was already running starts with a head count equal to the most people it has held in the last three years; a brand-new silo is built for two and a half times its founders. The editors show the places taken and can set the head count (edit-colony --set-capacity N, or "Head count (places)" in the GUI's colony dialog), also while the silo is running; the lookup's silo status and the health check's per-silo table show it too.

A place is a place. Someone moving in from another silo takes one of the places birth permits are issued against. Each silo publishes how many places it has free, and people looking for a job or a happier life, and recruits, only move where their whole family fits; otherwise they stay home ("🛂 … hoped to move to Silo K, but it has no room for a family of 4"). Refugees, fugitives and exiles don't ask, so a disaster next door can still leave a silo over its head count; its permits then stay at a trickle until the head count catches up.

Crowded with refugees. A silo that refugees have taken over its head count is crowded — fully so at 25% over, and no worse beyond that. Only refugees still living there as guests count (by as many as the silo is over, and no more than there are guests), so a silo with no refugees is never crowded, however full it is. Illness spreads faster (up to half as fast again at full crowding). Once the crowding is noticeable (2.5% over or more) unrest stops settling and grows every day instead, by up to 0.8 points a day at full crowding: on its own, a silo 13% over reaches strike level in about ten weeks and riot level in about four months. It ends as the guests go home or settle. The log says when it starts ("🛏️ With the refugees the silo is over its head count — 224 people in room for 198") and when it is over; the lookup's Refugees line shows it. In a 300-day test with six silos that all started exactly full, 11 of the 12 families who moved for a job or as recruits had gone where there was no room; after this change, none did.

This replaced a rule that limited permits by the share of children (from 35% to 50% under 14). That rule held the mesh at 46% children with a median age of 17 and no ceiling on growth: nearly every adult had a job and one post in ten still stood empty.

Sleep & night shifts

Personalities

Coworker bonds & social roles

Jobs & the economy

New workers fill essential jobs first, then every job gets a fair share. People only switch jobs to rescue a more essential job that's badly short, or to leave one that's well staffed.

Shops can be reassigned, closed, reopened and renamed from the editors (a renamed shop keeps its effect). Older saves gain the three new shops automatically.

People don't shop every day: each day a person has a chance of going out (about 60% for the wealthy, 40% for the middle class, 25% for those just above their savings reserve), and a trip spends a few days' budget. Crises (food or water shortage, outbreaks, hurricanes, grief) keep people home, and a daily swing means no two days look alike. Every visit is a purchase. The activity log gets one shopping line a day (visits, money spent, busiest shop) plus a couple of named purchases for flavor, such as someone buying a warm coat or meeting friends for tea.

The bank

Robots

Stair-Crawlers, the Hazmat Scrubber, Surface Walkers and Mentor Walkers.

Clunky, spark-spitting tread machines that haul goods up and down the central stair. The administration uses them; the people hate them -- a machine eating parts and power while people go short.

Holidays & festivals

Four yearly festivals give each silo's year a rhythm (each silo keeps its own calendar):

While one runs, shops are about 60% busier (the Spirit Shop and Burger Bar most of all), everyone gets a small daily happiness boost, and there's a little more petty crime and drunken trouble. A festival due during a real crisis (an outbreak, meltdown, seal emergency, food or water crisis, or hurricane) is cancelled instead, with a small disappointment. Festivals and cancellations appear in the activity log, the newsletter and the dashboard's Recent Events; the lookup tool's silo status shows the one under way (or the last one), and the mesh map marks a silo celebrating with 🎉.

Weather & the wild ecosystem

Disasters

Presidency

Global markets & trade

Stock market

Healthcare, epidemics & outbreaks

| Illness | Lasts | While sick | Notes | |---|---|---|---| | Cold | 4–8 days | works slower | common, especially in winter | | Stomach bug | 2–5 days | mostly off work | worse when water is contaminated | | Flu | 7–14 days | off work | autumn and winter waves | | Pneumonia | 10–21 days | off work | the dangerous one |

Illness spreads within families, between coworkers and among children, more in winter and in bad air. Babies, young children, the elderly and the frail are hit hardest.

| Condition | What it does | |---|---| | Asthma | asthma attacks, worse in bad air or with a cold | | Heart condition | develops with age; heart attacks can be fatal | | Weak immunity | catches everything more easily and gets sicker |

Doctors give monthly check-ups; when they fall behind, attacks become more likely.

| Condition | What brings it on | During a spell | |---|---|---| | Winter Grey | fall and winter (worst in The Long Dark), grey weather, unhappiness | works at 65%, a 1-in-4 chance each day of not facing work at all, sleeps badly | | Wall Fever | seal emergencies, high unrest, winter, unhappiness | works at 85%, picks fights with coworkers (sometimes starting a rivalry), much likelier to join a strike |

About 5–10% of adults have one. Most days they're fine; bad stretches bring on a spell of a few days to two weeks, with a small daily drop in happiness.

Winter Grey keeps to the dark half of the year. Someone who has it carries it all year, but a spell can only start, and a new case can only be diagnosed, in fall or winter — or under volcanic ash, which hides the sun whatever the calendar says. In spring and summer they are simply well. A spell still running when spring comes runs its course. The chance of getting it in a year is what it always was, with all of it now falling in those two seasons; a spell is three times as likely on a winter day as on a fall one. Wall Fever can strike in any season.

What helps: Doctors (check-ups make spells rarer, and visits during a spell shorten it), a partner, belonging to a club, shop visits (a trip out shortens a spell, and a recent treat makes one less likely) and, for Winter Grey, sunny days, especially for Ranchers, Fishers and Firefighters working up top. It runs in families, and a diagnosis or recovery goes into the sim's life story. See it with A syndrome in the lookup tool, on the dashboard's Chronic line, and in the editors (it can be added or removed like any condition).

| Disease | Caused by | Notes | |---|---|---| | New strain of flu | bad weather, seal leaks | nobody is immune | | Measles | bad weather, sick arrivals | spreads fast among children | | Dysentery | toxic waste backlog | spreads through dirty water and food |

A Scientist president makes outbreaks milder; a Negligent one makes them worse. A sick migrant can carry an outbreak to another silo.

Grief, funerals & crisis

| Trouble | Weight | |---|---| | Grieving for a partner or child | 1.2 at first, 0.6 by the end | | Very low happiness for six weeks or more | 1.1 | | In disgrace | 1.0 at first, fading over the years | | Lives with Winter Grey | 0.9, and 0.5 more during a spell | | Of working age, out of work and poor | 0.7 | | Alone: no partner, no club, no close friend | 0.7 | | Three months or more still to serve in jail | 0.6 | | A chronic illness while the doctors are behind on check-ups | 0.5 | | Born with a heavy heart (about one person in twelve) | 0.5 |

Breaking points

The rest do something that hurts:

Nobody sabotages a post with nothing to wreck: a store that is empty, servers already down, a waste works already failing. And if there is nothing to steal or nobody to go for, they make a scene instead.

Crime

Civil unrest, strikes, riots & sabotage

Waste management & life support

Crops & sugar

The farm's beds are shared between four crops. Wheat, potatoes and beans all go into the one food store; sugarcane makes sugar.

Water & drought

Atmosphere & life support

Heat & cooling

Livestock & wild-animal economics

Air-lock structural integrity

Earthquakes

Abandon and resettle

Extinction safeguard

Cross-silo migration & trade

Several silos can run as separate programs and link up:

What moves between linked silos:

Both the silo and any neighbour that's recruiting log when the board closes and reopens. The lookup's silo status shows the board and how much of the year's allowance is used; the health check reports people recruited away and days closed for each reason.

Founding traits

A new real-time silo starts with a few modest traits of its own, drawn from its --seed (the same seed always gives the same silo) or at random without one. Each is good, bad or absent, with at most two bad ones per silo:

The dashboard's Colony card lists a silo's traits. --no-traits starts a silo with the standard conditions. Silos saved before this existed show as "standard".

Narration & realism details