Show HN: Decided to play god this morning, so I built an agent civilisation
32 points
by urav
3 hours ago
| 12 comments
| github.com
| HN
at a pub in london, 2 weeks ago - I asked myself, if you spawned agents into a world with blank neural networks and zero knowledge of human existence — no language, no economy, no social templates — what would they evolve on their own?

would they develop language? would they reproduce? would they evolve as energy dependent systems? what would they even talk about?

so i decided to make myself a god, and built WERLD - an open-ended artificial life sim, where the agent's evolve their own neural architecture.

Werld drops 30 agents onto a graph with NEAT neural networks that evolve their own topology, 64 sensory channels, continuous motor effectors, and 29 heritable genome traits. communication bandwidth, memory decay, aggression vs cooperation — all evolvable. No hardcoded behaviours, no reward functions. - they could evolve in any direction.

Pure Python, stdlib only — brains evolve through survival and reproduction, not backprop. There's a Next.js dashboard ("Werld Observatory") that gives you a live-view: population dynamics, brain complexity, species trajectories, a narrative story generator, live world map.

thought this would be more fun as an open-source project!

can't wait to see where this could evolve - i'll be in the comments and on the repo.

https://github.com/nocodemf/werld

gyomu
3 hours ago
[-]
> Werld drops 30 agents onto a graph with NEAT neural networks that evolve their own topology, 64 sensory channels, continuous motor effectors, and 29 heritable genome traits. communication bandwidth, memory decay, aggression vs cooperation — all evolvable. No hardcoded behaviours, no reward functions. - they could evolve in any direction.

In the days when Sussman was a novice, Minsky once came to him as he sat hacking at the PDP-6.

"What are you doing?", asked Minsky.

"I am training a randomly wired neural net to play Tic-tac-toe", Sussman replied.

"Why is the net wired randomly?", asked Minsky.

"I do not want it to have any preconceptions of how to play", Sussman said.

Minsky then shut his eyes.

"Why do you close your eyes?" Sussman asked his teacher.

"So that the room will be empty."

At that moment, Sussman was enlightened.

reply
urav
2 hours ago
[-]
Love the MIT AI Koans. Minsky's actual words to Sussman were "well, it has them, it's just that you don't know what they are." And he's right, the room isn't empty.

Werld's room has walls. The graph topology, energy mechanics, metabolic costs, seasons, those are all design choices. But those are the physics, not the behavior. I chose the laws of nature, not what agents do with them.

Whether they cooperate or attack, broadcast or stay silent, grow complex brains or prune them down, that's selection, not me.

The agents also aren't randomly wired like Sussman's net — they start with minimal NEAT networks and evolve structure through survival. So the preconceptions are there, I just tried to make them physics rather than policy.

Curious how you would approach removing those from an artificial sim like this?

reply
dash2
3 hours ago
[-]
I think it looks fun, but at the same time I really wish you had written the readme yourself and not using an llm. My view: if you can’t be bothered to write it yourself, why should I read it myself?
reply
urav
3 hours ago
[-]
completely fair, and thanks for the nudge - expect an updated readme shortly
reply
urav
2 hours ago
[-]
got the updated version up and again, appreciate the nudge there!
reply
alexhans
3 hours ago
[-]
I love emergent behaviour and story telling. Anyone who has played City builders like Sim City or roguelikes like Dwarf Fortress knows how interesting, fun and even informative they can be.

In a world where setting them up and letting rogue agents run rampant becomes relatively low cost and fast, I think focusing on the desired outcomes, the story telling and specially the UX for the human user, is key and maybe we can take some learnings from Will Wright on "Designing User Interfaces to Simulation Games" [1].

I'm going to be unable to do much this weekend so I can't say I'll try check this out (yet?) but I'd be interested in your own experiences so far. Any surprises? Things you'd like to do next? What's most fun/challenging?

An actual report/writeup will probably resonate more than a repo for people who can't check it out easily or are not willing to.

- [1] https://donhopkins.medium.com/designing-user-interfaces-to-s...

reply
urav
2 hours ago
[-]
Appreciate this! and yeah the will wright talk is exactly what I was leaning into.

Actually posted this on X 2 weeks ago, hosted the werld observatory public, and had gemini stream a new chapter of the story in natural language every 10,000 ticks - so it felt like reading through a david attenburgh novel of werld being born.

Most interesting thing from the last run was definitely the language and the behaviours, they decoding what they were actually saying was a difficult one, and noticing them group within their diverged species.

Up next, i want to get the storytelling side up and running too - kept running out of storage, and cloudflare playing up as usual - maybe get gemini to visualise each chapter - and get an upgraded interface for the werld observatory.

If you want to check out my previous attempt at streaming the story line - it's still on my X - https://x.com/im_urav?s=21&t=6Si-w-DvNJC7RfvSz2Aw-w

reply
e1ghtSpace
2 hours ago
[-]
I like the idea of evolving agents from scratch with no "learning", they just evolve their ability to survive in the environment. Maybe one day it'll be advanced enough to see life evolve.

How does the narrative story generator work?

I played around a bit with NEAT networks, and tried to create a bitcoin trading bot, but the best I could do was a +10% gain over many months. I was hoping for at least 30% each month. Oh well, I guess it doesn't all just depend on past price history.

reply
urav
1 hour ago
[-]
Thanks! The story generator is pretty simple right now — every 10,000 ticks the sim snapshots population stats, brain complexity, species changes, births/deaths, communication activity and runs it through a template that writes a plain-english chapter.

Building out a more engaging version, and will hopefully stream it onto X again as a story - but this time without chewing api tokens every couple of seconds.

NEAT for trading is interesting - on BTC i used a kernels method that worked quite well and closer to that <2 sharpe on a monthly.

reply
urav
1 hour ago
[-]
Updated based on feedback — added screenshots to the README and upgraded the story generator for a better narrative. Thanks for all the input.
reply
mpalmer
3 hours ago
[-]
> No hardcoded behaviours, no reward functions. - they could evolve in any direction.

If they can hack their reward functions won't this always converge on some kind of agentic opium den?

reply
urav
2 hours ago
[-]
that would be true if there was a reward function. compute_reward() exists in the code, but it returns 0.0.

they're only living/evolving to survive, and fork (reproduce).

can't wirehead natural selection if the brain does nothing useful, they'd die and their genome would die with them.

reply
csmoak
2 hours ago
[-]
this reminds me of Polyworld by Larry Yaeger, an artifical life sim where each creature has a vision system. i played around with this back in the early 2000s though the hardware i had access to was basically insufficient to run it in any real way. it's nice to see its development has continued.

https://en.wikipedia.org/wiki/Polyworld

reply
urav
1 hour ago
[-]
Haven't come across Polyworld before — just looked it up and its super cool, especially for 1994. The vision system is a interesting design choice. Werld takes a different approach — graph topology instead of a 2D plane, and NEAT brains instead of Hebbian learning — but the core philosophy is the same.

And yeah hardware has caught up a bit since the early 2000s, though my hard drive is having a hard time. Thanks for the reference, going to dig into Yaeger's papers.

wonder if the black mirror episode was based on polyworld then?

reply
AreShoesFeet000
2 hours ago
[-]
It is impossible to enforce a world free of heuristics, but this is certainly very cool.

Reminds me of that Black Mirror episode with the circular QR code.

reply
urav
2 hours ago
[-]
completely agree on the heuristics (someone else mentioned the MIT Koan comment about this). And yeah Plaything is a little too close to home... no QR codes from werld agents yet though. Will keep you posted.
reply
AreShoesFeet000
25 minutes ago
[-]
I just wanted to add: there’s no single piece of machinery that can void the human experience. A large collection of machinery can only delay the inevitable. Please have fun with your project.
reply
fd-codier
3 hours ago
[-]
No images in the README...
reply
Towaway69
2 hours ago
[-]
And stupid leading emojis for the heading.
reply
b800h
2 hours ago
[-]
This seems to start with 2 agents, and then all of their offspring die immediately. Any hints?
reply
urav
2 hours ago
[-]
should be starting with 30... if you're seeing 2 that might be an older default that I tried out (an adam and eve experiment). You can change it in the config too.

On the dying immediately thing - offspring get a fraction of the parent's energy when they fork. If the parent forks too early (low energy), the kid spawns with barely anything and can't cover its tick cost + brain metabolic cost.

That's working as intended — reproducing too early is a bad strategy and selection should punish it. But if everything dies instantly, something else might be off.

reply
b800h
2 hours ago
[-]
I take that back, I was falling asleep and then suddently had a population spike. Very good!
reply
m0llusk
2 hours ago
[-]
Arguably a powerful demonstration of why even simple creatures make use of parenting as a strategy to improve the success of their offspring.
reply
urav
1 hour ago
[-]
This actually showed up in the first run, agents that invest more energy into offspring vs ones that fork cheap and fast.

the ones that survived population crashes were the ones passing down leaner, better-inherited brains. Cheap forking works when there's plenty of energy around, falls apart in famine.

reply
midnitewarrior
2 hours ago
[-]
This is one or two steps removed from Thronglets.
reply
urav
2 hours ago
[-]
hopefully it stays that way.... although I did start setting up a rig to host them on.
reply