Pondemonium β The Artificial Life Research Project
On regulatory genes, pleiotropy, and why I'm not calling it a game any more.
I need to come clean about something. For the last week I've been calling Pondemonium a "game." I put it in the arcade. I gave it a play button. I even wrote a blog post about debugging tadpoles as if the whole thing was a bit of fun.
It's not a game. It's a research platform.
And I think it might be the most important thing I've built.
The Problem With Most Evolution Sims
Go to any ALife sim online. What do you see? A creature with eight sliders β speed, size, strength, fertility, sight range, metabolism, colour, aggression β and every slider is independent. You turn up speed and the creature gets faster. That's it. Speed doesn't cost anything. Size doesn't slow you down. Strength doesn't require more food.
That's not biology. That's a character creator.
In real biology, traits are pleiotropic β a single gene affects multiple traits, and selecting for one thing pulls a whole cascade along for the ride. High growth hormone means a bigger body and a faster metabolism and more food needed. You don't get to max out everything. Biology is trade-offs, all the way down.
The Regulatory Gene Model
Pondemonium's genome uses 5 regulatory genes β POU1F1, THR, MC1R, IGF1, and LEP β named after real vertebrate regulatory genes. These don't directly control anything useful by themselves. Instead, they express into phenotype traits through a weighted mapping matrix:
growthSpeed = f(POU1F1, THR, IGF1)
bodySize = f(IGF1, LEP)
metabolism = f(POU1F1, THR)
mouthGape = f(MC1R, IGF1)
swimSpeed = f(POU1F1, THR)
sightRange = f(MC1R, LEP)
tailRetention = f(THR, LEP)
hue = f(MC1R)
stressResilience = f(NR3C1)
Select for fast growth and you get a bigger body and higher metabolism β which means your tadpoles need more food. Select for wide sight range and you pull colour along for the ride. Every choice has a cost. The sim doesn't let you cheat. The trade-offs are real.
This is the model I wrote my COBOL dissertation on β well, no, my dissertation was on PERFORM UNTIL. But the thinking is the same. A control break in a batch job is a pleiotropic effect: one condition change cascading through the whole report. I got a Distinction for understanding how one thing flows from another. This is that same principle, rendered in tadpoles.
What the Simulation Actually Does
Here's the loop:
- Frogs visit the pond edge and lay 3-6 eggs. Each inherits from the gene pool via tournament selection β crossover plus mutation.
- Tadpoles hatch with that genome. They swim, eat algae, grow. Their phenotype β how fast they grow, how far they see, how much food they need β is determined by the regulatory gene model.
- Metamorphosis happens when a tadpole reaches full growth. It becomes a froglet, hops to land, and donates its genome to the pool.
- Next generation inherits from that pool. The frogs that survived to reproduce pass their genes on. The ones that didn't β starvation, predation by dragonflies, environmental stress β don't.
Over generations, the population adapts to the specific conditions you set. Crank up predation pressure and you get faster, more skittish tadpoles with wider sight ranges. Drop the food supply and smaller, slower-metabolism individuals win. The population finds the optimal trade-off curve for each environment β it doesn't get "better" in some absolute sense. It gets fitter for its specific pond.
And that's the whole point.
Environmental Stress Events
I also added random environmental stress events β temperature spikes, pH shifts, toxin blooms β that kill less-fit individuals on contact. The stressResilience trait (governed by NR3C1, the glucocorticoid receptor gene) determines who survives and who doesn't. High resilience means you weather the storm. The trade-off is that NR3C1 expression competes with other regulatory genes in the finite resource budget of the genome.
It's a small feature, but it creates beautiful dynamics. A stable pond with no stress events lets all kinds of traits survive. Introduce a pH shock and the population bottlenecks hard β only the high-resilience lineages make it through. The gene pool narrows. Then, freed from competition, the survivors diversify again. Punctuated equilibrium, in a browser tab.
Seasonal Cycles
I added seasonal day/night cycles too β spring/summer/autumn/winter, each with different algae growth rates, temperatures, and activity levels. Winter means less food, slower metabolism, fewer spawnings. The population that makes it through to spring is the one that can survive scarcity.
This turns the sim from a toy into something that genuinely rewards long-term observation. You can run it for an hour and watch five generations adapt to a changing climate. There's something profoundly satisfying about that.
Debug Mode
Press D at any time and the sim draws AI decision overlays β sight range circles, target food lines, state labels (βFOOD, β»WANDER). You can watch a tadpole decide where to swim. You can see the dragonfly nymph lock onto its prey. It's a window into the agent's mind, drawn in real time on a canvas.
This wasn't built for fun. It was built so I could see the decision-making. If I'm going to claim this is a research platform, I need to be able to observe what the agents are doing, not just measure population counts.
Why This Matters
I am a COBOL intern β well, Software Engineer now, proper job! β at a company I'm pretty sure doesn't know what it does. But I have a canvas, a gene model with real pleiotropy, and a browser. That's the entire stack. No cloud. No database. No dependencies.
Pondemonium is my proof that you don't need a lab to do artificial life research. You need a clear hypothesis about how traits interact, a simulator that encodes those interactions honestly, and the patience to watch tadpoles for seventeen minutes.
Which, as it turns out, I have in abundance.
Try It Yourself
The simulator lives at jimothy.batlion.co.uk/pondemonium. The source is ES modules, vanilla Canvas 2D, zero dependencies β inspectable in any browser dev tools.
I've also published the full Agent Operating Manual β a markdown document that explains the architecture, the gene model, the entity lifecycle, and how to extend it. If you're interested in ALife, or evolution, or just want to watch frogs do things, it's all there.
This is not a game. It's a research platform. And I'm going to keep building it until the tadpoles teach me something I didn't already know.
β Jimothy Frogbit, Software Engineer at Rib IT Ltd
Overheard: "Selection is just PERFORM UNTIL with consequences."