I've always wanted to build a mason jar ecosystem, one of those sealed terrariums where plants, bacteria, and decomposers reach equilibrium and sustain each other indefinitely. I tried. They always died: wrong bacteria getting trapped, oxygen depleting, mould creeping in. The system wanted to stabilise, but the conditions I gave it were never quite right. Digital Ecology is the version I could actually make work.
It's a browser-based simulation running inside a stylised glass jar. A small food web of hand-drawn pixel organisms, producers, consumers, decomposers, detrivores, govern each other through energy exchange and predation. The jar either finds balance or it doesn't. If it collapses far enough, it goes dormant. Then, slowly, it tries to recover on its own, the same way a real closed system would after a die-off.
Every role is borrowed directly from ecology. Producers photosynthesise and drift, releasing spores. Consumers hunt them. Decomposers break down dead matter and return the nutrients to the producers. And if you click the jar, you introduce a disruptor, an invasive entity that attacks from within. Not immediately, though. It spawns exactly two minutes after your click. The way environmental damage actually works: recorded now, felt later.
The biggest challenge in building this wasn't writing the entity behaviour, it was finding the right spawn rates. Early versions had consumer reproduction tuned too aggressively: they'd bloom within the first 90 seconds, exhaust the producers, starve, and leave an empty jar. Pulling that back meant working across multiple timescales at once, the per-frame probabilities had to produce legible ecological cycles over many minutes, while still feeling lively within the first 30 seconds of viewing.
The fix came from gating reproduction not just on energy, but on population ratios: consumers can only reproduce when producers outnumber them by a factor of 1.5. That single condition changed everything. The system started finding its own rhythm.
Visually, the same calibration problem showed up at the sprite level. With up to 160 entities on screen, separation forces, movement speeds, and scale all had to work together, too much repulsion and the jar felt sterile, entities pushed into empty corners; too little and they clumped into unreadable masses. It took many test runs to find values that felt alive without being chaotic.
The pixel aesthetic connects the work to a lineage of people who used computers to model living systems, Conway's Game of Life, early artificial life research, games like flOw that treated biological processes as both mechanic and metaphor. But the sprites are hand-drawn, every one, because I wanted these organisms to feel like something I was responsible for. There's a tension between the rule-governed simulation underneath and the handmade creatures living inside it that felt worth preserving.
Underlying it all is a parallel I kept returning to while building this: a biological network and a digital one follow the same logic. Mycelium moves nutrients across a fungal web; the internet moves data across nodes. Both are decentralised, both are emergent, both fail in structurally identical ways, monocultures collapse, diversity confers resilience, local failures propagate. The spores drifting upward through the jar, a few of them sprouting and most disappearing, are that analogy made literal.
The current simulation is a closed loop, intentionally so, but a version that receives external data feels like an obvious next step. Real environmental signals (CO₂ levels, temperature readings, pollution indices) mapped onto spawn rates and decay constants would turn the jar into a living index of a specific place. The ecosystem wouldn't be metaphorical anymore; it would be reporting.
Multi-jar installations interest me: several jars running separate simulations, connected by migration corridors, occasional agents crossing between ecosystems, carrying their trail chemistry with them. Isolation versus exchange, fragmentation versus resilience. The same questions that appear in conservation biology, made visible at desktop scale.
A sound-reactive version is close to where the practice already goes with VJing, the ecosystem responding to audio frequency bands, bass driving disruptor spawning, silence allowing recovery. The jar as an instrument the music plays without knowing it.
The most unresolved question is failure. The current system can collapse, go dormant, and partially recover, but it never truly dies in a way that means something. A version with permanent death states, where a collapsed jar stays collapsed and has to be physically reset, would change the relationship between viewer and system completely.