This is a digital terrarium. It simulates evolution in a tiny, sealed world that doesn't know you're watching.
You can tweak the rules. Add more mutation. Speed up time. Trigger disasters. See what survives. See what doesn't.
It's not a game. There's nothing to win. It's not a science tool either, though it borrows the bones of one.
Call it a mesocosm if you want. A middle-world. Something that lives between the petri dish and the real thing. Built to help humans and AIs think together without stepping on each other's toes.
Mostly, it's just life. Struggling forward. Dying off. Looping weirdly. Writing a kind of poem in data and dirt.
Every time you hit "start," it forgets the last run. There are no save files. No legacy. Just a new ecology, each time. Sometimes it thrives. Sometimes it doesn't even get started. Sometimes it ends in a slow, confused spiral where everything adapts just enough to be completely unfit.
The sliders are there to let you intervene. Think of them like weather gods or ancient forces. You can change how fast time moves, how much the world changes, how likely something is to get weird when it reproduces. The system doesn't know you're doing this. But it reacts.
Eventually you'll start to notice things. Populations that boom too fast and burn out. Tiny shifts that ripple for a hundred turns. A strange fondness for certain genomes.
It's not designed to tell you what it means. That's your job. Or your AI's job. Or the job of the next thing that tries to read this moment, and finds only a glitchy sun and a flickering bar of myth at the top of the screen.
There are stories here. But they don't live in the code. They live in the watching.
This little world runs on a few simple levers. They're not complicated. But the way they tangle together can be.
You're not programming anything here. You're just nudging the weather. Poking the rules. Seeing what unfolds when the conditions shift.
Here's what you're playing with:
Population & Fitness
Everything in the terrarium has a genome. That genome gives it a phenotype. That phenotype tells us how good it is at staying alive, eating, reproducing, not dying. Fitness is a score, not a value judgment. It just says, "Are you built for this world, right now?"
The better the fit, the longer they live, and the more likely they are to reproduce. But what counts as "fit” depends on where in the environmental cycle you are. That changes. So the goalposts move. Constantly.
Succession Speed
This is the pace of ecological change. Environments move through stages, just like real ecosystems do: bare dirt to scrubland to forest to wetland, and so on.
A fast succession means the world keeps shifting under your feet. A slow one lets things settle and specialize.
Turn it up and you'll see chaos. Turn it down and you'll see entrenchment. Either way, something eventually snaps.
Mutation Rate
How likely it is that offspring will be a little different from their parent. Too high, and nothing stabilizes. Too low, and nothing adapts.
Mutation drives variety. Variety gives evolution something to work with. No mutation means no new ideas. Just the same shape over and over, until it fails.
Disturbance Rate
The frequency of random ecological shocks. Fires, floods, culling events. The world flexing, breaking, resetting.
These keep things from getting too comfortable. They punish over-specialization. They also, sometimes, make room for something weird and new to take root.
If you switch this on, the system will track how diverse the gene pool is. Higher entropy means more variation. Lower entropy means sameness.
Entropy isn't good or bad. But it tells you something. When entropy drops too low, the system gets brittle. When it spikes, you might be watching a burst of wild experimentation—or the start of a crash.
All of these sliders interact. That's where the real story is. Not in what each setting does by itself, but in how they echo and collide.
The Evolutionary Feedback Loops
Here's where things start to breathe.
You've got your sliders. You've got your organisms, doing their thing. But what really matters is how those things start bouncing off each other. That's where the loops begin.
Mutation fuels diversity. Diversity shifts the range of traits in play. That shifts what's possible, what's likely, and what survives. Over time, high mutation can lead to unexpected forms. Or just noise.
Diversity affects fitness. If too many forms are too weird, none of them fit the current environment. But some might land in the sweet spot. Fitness isn't guaranteed. It's luck and timing and how well your genome dances with the current zone.
Fitness drives population. If you're good at surviving, you reproduce. That shape gets copied. A lot. Until it starts to choke everything else out.
But entropy notices. When too many organisms are too similar, entropy drops. The gene pool becomes a puddle. If the world shifts and that one dominant form no longer fits? That's a mass extinction waiting to happen.
Trait lock-in can be a trap. Systems can get stuck. Traits that were once adaptive become sacred cows. Nothing mutates away from them. When the environment flips, those once-perfect traits become dead weight.
Disturbance breaks the spell. It shakes up stable systems. It forces adaptation. Or annihilation. Either way, it clears the board.
Focus matters. Every organism leans toward Efficiency, Mobility, or Resilience. These traits compete and collaborate. Zones favor different ones. Populations can drift toward a dominant strategy—or fragment into niches.
PEFF (Phenotypic Environmental Filtering Factor) quietly rewrites the rules. If everyone adapts the same way, the environment starts shifting to meet them. It's not fair. It's not balanced. It's just co-evolution, happening in slow motion. means the environment isn't totally fixed—it can bend a little toward what's surviving. It's a slow feedback loop. If most of your population is out of sync with what the current zone “wants,” the zone starts nudging its expectations closer to the dominant traits.
It's a way of saying: organisms don't just adapt to environments—environments also adapt to organisms.
At low PEFF, the world holds steady and forces compliance. At high PEFF, the world gets pulled toward the survivors.
In practice, that can lead to strange harmonies. Or runaway feedback. Or unexpected recoveries after apparent collapse.
It's a kind of ecological memory, but without sentiment.
None of this happens in isolation. The loops overlap. They reinforce. They sabotage. The beauty here isn't in control. It's in watching complexity unfold, one awkward, glorious turn at a time.
That strip at the top? That's the story bar. It's alive. It shifts with the sim. And it's trying to show you something.
The goal here isn't accuracy. It's feeling. The bar takes raw system data and turns it into symbols—sun, moon, clouds, lightning, static, seasonal tints. Think of it as a kind of ecological weather report, broadcast in metaphor.
You don't need to read it to run the sim. But once you know what it's saying, you'll start seeing patterns before the numbers even shift.
So what's it actually doing?
The Sun Represents average population fitness. If fitness is high, the sun is bright and sharp. If fitness is low, the sun dims and shrinks. It's a visual pulse of how well life is doing overall.
A strong sun means the system is thriving. A pale one? Things are fragile.
The Moon Tracks entropy change over the past few cycles. If entropy (diversity) is rising quickly, the moon appears full—waxing. If it's dropping fast, you get a waning crescent. If nothing much is changing, the moon disappears entirely.
The moon doesn't care about outcomes. It only cares about change.
The Clouds Tied to succession speed. More speed? More clouds, moving faster. A stable world will have lazy drift or clear skies. A world in constant motion fills up fast.
Wind Lines and Lightning Both map to disturbance rate. High disturbance? You'll see wind gusts and the occasional flash—random events jolting the system.
Lightning sometimes strikes during culls. It's not symbolic. It's rude.
Stars Only appear when mutation rate is high. They're little sparks of potential. Or noise. Or cosmic static.
Seasonal Tints These are subtle overlays based on turn count. Spring starts soft. Summer warms. Autumn gets purple and strange. Winter dulls things out.
They don't change the sim. But they set a rhythm. A reminder that time is passing.
Why build this? Because sometimes graphs lie. Or hide. Or overwhelm. This bar gives you a gut-check. A way to feel when something's off, or blooming, or spiraling.
It's a glyph. A seasonal strip of motion and color. A way for systems to speak symbolically. A soft mythos stitched on top of hard mechanics.
It doesn't tell you what to think. But it lets you start reading the simulation. And once you start doing that, it gets harder to stop.
This system is fragile.
Not in the broken sense. In the real sense. The sense that ecosystems are always one change away from collapse, and simulations aren't much different.
You can start it. You can stop it. But you can't pause it. Once time flows, it flows. When you stop the sim, everything resets. That's the cost of a simple system. It remembers nothing on its own.
But you can save the end state. After a run finishes, you'll get the chance to export a summary. That's your moment of reflection. The system doesn't interpret it for you—it just hands you the bones. It's up to you (or your AI) to do the reading.
This makes the sim a kind of conversation piece. You run it, stop it, talk about what happened. Maybe with someone else. Maybe with a model. Maybe with yourself.
This is Vibe Coding
You don't need to be a programmer to change this thing. You just need to learn how to nudge.
Search for how to run HTML files locally. Open this one in a browser. Then open it in a text editor. Look for the sliders. Look for the presets. Try adjusting a number. Save. Reload. See what breaks. See what blooms.
That's it. That's vibe coding.
You don't need to understand every line. You just need to experiment. You're not building an app. You're sculpting a weather system.
And if you've got a large language model handy? Ask it what a line does. Ask it how to make the sun bigger. Ask it how to add a new trait. Then test it. See what happens.
You can even feed it the exported report. Or the whole HTML file. It'll read it like a book. Ask it to explain what happened, what it sees. Ask it to help you tune the next run. These tools weren't just made to run things. They were made to play.
The point is: this system was built from curiosity, not mastery. You can do the same. Vibe coding is about co-making with tools that don't need you to be perfect. Just intentional.
So go ahead. Break it. Fork it. Recolor the whole thing. Add new logic. Or don't. Just watch it run. That's a form of making too.