A linear sun on the spin axis; vegetation on the inner surface of the structural rind; the enclosed air, water and soil doing the work of a closed life-support loop. Before any spatial detail matters, the zeroth question is whether the books can balance at all as stocks and flows — oxygen, calories, water and nitrogen cycling in a sealed tube with no way out. biome is the tool that answers it, by modelling the interior as a living food web rather than a farm.
The O'Neill cylinder model is built as four independent surfaces. biome is the ecosystem; its siblings model the structure that holds the air in, the thermodynamics of the air itself, and the game played inside.
No resupply. Photosynthesis, crew metabolism and soil microbes have to balance — a single crop pool self-strangles as ambient CO₂ falls.
Decomposers respiring litter are what keep ambient CO₂ up. Throttle them and litter piles up while CO₂ crashes — the real Biosphere-2 failure mode.
Fruit set saturates with pollinator population. Crash the bees and the trees stop fruiting — a chunk of the food supply vanishes though the trees live.
Air closes easily; full dietary closure needs a lot of ecosystem — hundreds of m²/person. Area is the lever, not a hack.
Each is one modelled community in one sealed box. Drag a knob and ~600 days re-run live; the question is always the same — does the loop close, feeding the crew and holding the air. They build up in scope: the land web, the lake, the two together, the whole maximalist web drawn as a graph — and then infinitely many, rolled at random.
Roll a random closed world from a deck of 60 real organisms. The assembler wires a food web by body-size + habitat; the trophic solver runs it ~600 days and scores it on viability — does the loop close, hold the air, stay stable, carry a crew? Rarity is the solver's verdict, not luck: most pulls are degenerate mush, a Rare one actually lives, and a Legendary is a self-closing, stable, crew-carrying world.
Roll a biome and walk it. Where the gacha rolls a web to score, this rolls one to inhabit: a seed picks a biome — meadow, thicket, wetland, heath, grove or fen — grows its forest of lakes, winding streams and trees, and casts the biome's real animals as pixel sprites. Each organism is mapped to a body plan by its biology — arthropods and pollinators become creeps that move in swarms, mammals and reptiles amble as quadrupeds, worms and fish slither — and the forest comes alive with them as you wander it.
A random critter button. Tap and meet a real organism — its Latin species name and a photograph — drawn live and at random from iNaturalist's ~200 million observations. Keep tapping for an endless stream; ← back retraces your trail.
An animable sprite for any organism. "The guy" was one fixed body plan you could hardcode a rig for — an arbitrary beast is not. So the tree of life maps onto a small set of rigged body-plans, and each creature's iNaturalist seed parameterises one: the skeleton sized from body mass, shaped by guild, posed by a procedural walk clip. Same beast, same sprite, for ever. Phase 1 rigs the quadruped archetype deeply.
The foundational model: the terrestrial closed ecology as a living food web — fruit trees, ground crops and swamp reeds; pollinators that gate the fruit and the predators that eat them; living decomposers; and the crew. The organisms and their relationships are data, so the web extends from six to twelve to N. Answers: does the loop close — does it steady out feeding everyone and holding the air.
The same engine pointed at one body of water asked to do two jobs at once: be the crew's fish farm and its water-treatment plant. In a closed cylinder the cheapest design fuses them — the fish you eat are grown on the nutrients you'd otherwise strip with hardware (Todd's eco-machines; integrated poly-culture; constructed treatment wetlands). Phytoplankton, duckweed, water fleas, mussels, benthic detritivores and tilapia, each picked for its role.
The orchard and the lake are each a closed web; this puts them in one interior and asks the ship-scale question — does the whole thing close, and how much crew does it carry? The two webs are trophically disjoint (no land animal eats a lake plankter) but abiotically fused: they breathe one atmosphere, drain to one detritus pool, draw one nitrogen pool, and feed one crew from one larder. Drawn as two trophic islands bridged only through the shared-pool spine.
The maximalist closed ecology as one living force-directed graph: every node a real organism wearing its photograph, sized by its present standing biomass. Three habitats are each held in their own basin — the terrestrial web, the lake, and the chthonic soil web — and the whole thing is wired together by two cross-web couplers: a frog (lake↔soil) and a farmed duck (lake↔land). The shared pools sit in the middle, where all three webs meet.
A 600-day run tells you what happens; the labs read the fate of the steady state directly — its stability, its response to coupling, and any web you care to design yourself. Each works on the same engine, no backend.
Reads the fate of the steady state from its linearization. It builds the community matrix by finite-differencing the real nonlinear model at equilibrium, then reads three classic results off it: asymptotic stability (May — every eigenvalue's real part negative), reactivity (Neubert — does a stable web still amplify a shock first), and keystone ranking (Bender — press perturbations off the inverse).
Does coupling the webs help? The land and lake webs are trophically disjoint by default; this lab lets you wire real cross-web trophic edges — an amphibian, a generalist waterbird, a chthonic soil web (earthworm · fungus · ground-beetle) — and reads off the community matrix whether intermingling makes the closed ecosystem more or less robust, against the disjoint baseline.
The open workbench: design any food web and read its stability. Add producers and animals, wire who-eats-whom, set a harvest — and watch live whether the loop closes (air holds, the crew is fed, nobody goes extinct) and whether it survives a shock (the community-matrix eigenvalues). Animal rates come from body mass (Kleiber allometry), so you set a mass and a guild, not eight numbers. Three presets (orchard, lake, grass→rabbit→fox) to start from and break.
Give each organism a preferred radius — canopy, floor, swamp; lake at the cylinder floor. Radius is altitude is temperature/humidity/CO₂, so the food web (terrestrial and aquatic) couples to tide's atmosphere column and the two wings become one cylinder model.