
Memorandum
The Ant Farm
From three hundred dots on a Raspberry Pi to twenty-eight thousand grubs in my pocket
There was a dot named Whael-0818, who kept the lid. Whael lived in a villa. Whael worked forty cycles at the Dopamine Laundromat, was granted a lease on it, had five children and peaked at 961 credits. Then Whael lost the job, started commuting through the gate to the rich district, lost the lease to the Federation and was evicted. At 0.1 credits, Whael robbed another dot for 93 credits and was killed by a mob two ticks later.
Nobody wrote that. Whael is one pixel. The arc came out of a colony that had been running for seventy-five cycles with nobody touching it, and a piece of the colony whose whole job is to notice when one of the dots is turning into a story.
That is the ant farm. It is an alien colony of dots with simple needs, too many silly ways to meet them and nobody steering. It started on a Raspberry Pi in my house, and it still runs there. The main one now runs in a browser on my iPad and my phone.
This is how it got from one to the other. Same as the other memos: I am not a developer. I say what I want, Claude proposes, I dispose. The “we” in here is me and Claude. Most of what follows started as a sentence or two from me, and most of what went wrong was found by watching it.
Dwarf Fortress, but way way way less complicated
On September 20 I asked for an alien ant farm. Autonomous one-pixel dots with broad goals and limited restrictions, “like Dwarf Fortress but way way way less complicated.”
My framing was short. Every dot has three needs: eat, sleep and have fun. There are many silly sci-fi ways to meet them. Dots bump into each other and swap plans as a string of digits. The places where they meet their needs are owned by dots who lease them from a Galactic Federation. Dots hate violence but they will gang up on an aggressor. And if any need hits zero, the dot dies.
When Claude asked how I wanted it built, I picked these:
- A daemon, with a window. The colony runs as a background service on the Pi whether anybody is looking or not. The crackpot tile is only a window onto it.
- No live AI. Writer agents produced all the content up front: 140 kinds of place, 600 name stems, 240 epithets and about 1,400 written lines. At runtime it is just arithmetic.
- Reproduction, with inherited traits.
- 300 dots on a 160 by 96 grid.
- Observe only. Pause, speed and inspect. No Federation powers and no smiting. That one matters later.
The digit string became the heart of it. Every plan a dot knows is sixteen digits: where, what for, what it costs, how good it is. When two dots bump, they trade. And a dot passes on what it believes, not what is true. A desperate dot’s beliefs are inflated. A dot under 30 percent on any need gets rash, and under 15 it gets desperate. A rash dot travels further, discounts danger, stops checking whether it can afford things and changes its mind easily. So bad information spreads in good faith, and panic is contagious through gossip. Nobody designed a rumour mill. It is just what sixteen digits and a bad day add up to.
On the first test runs, three colonies grew from 300 to about 450 and 530 in a hundred cycles. About 65 percent of deaths were starvation and 6 percent violence. Somewhere between half and three-quarters of all collisions changed somebody’s mind.
Nobody has been attacked by a potato
The dots needed somewhere to go. Places to eat, sleep, work and have fun, and since this is an alien colony, none of them could be normal. So I gave Claude one example of the kind of place I meant. As near as I can remember it, it went like this:
an alien potato farm where the workers don’t farm the potatoes. They guard them. Nobody has been attacked by a potato yet, and management would like to keep it that way.
That one example became the whole catalogue. Writer agents took the tone of it and wrote 140 kinds of place, and the very first one in the file is the Alien Potato Guard Post: “The potatoes have never tried to leave, which is exactly why the Federation is worried.” A dot on shift there is, at any given moment, saluting a potato, polishing the spud helm, logging an eye that blinked or reporting a suspicious sprout. You can tap the building and watch them do it.
The rest of the catalogue kept the same straight face. Some of the jobs:
- Cloud Shearing Station. Clouds are brought down each spring and relieved of their wool.
- Thursday Assembly Line. Thursdays do not occur naturally here. Each one is assembled to spec.
- Minor Deity Kennels. Small gods need feeding and walking. They bite, but reverently.
- Municipal Grief Rendering Plant. Fresh grief in, structural tallow out.
Somewhere to eat:
- The Lukewarm Meteor. Sliced meteor, served at the exact temperature of disappointment.
- The Screaming Onion. The onions are not in pain. They simply have opinions.
- Tuber Confessional. Tell the tuber your secret and eat it. Patrons find it hard to stop telling.
Somewhere to rest, and somewhere to have fun:
- The Long Blink. A room where one blink lasts as long as you need.
- Karaoke Sinkhole. Sing into the hole. The hole sings back, and it knows every lyric.
- Sandworm Rodeo. Eight seconds on a worm the length of a street. Most last two.
And the Federation’s own offices, like The Complaint Obelisk, which hears every complaint and does absolutely nothing, beautifully.
None of it is set dressing. Every place has real numbers behind the joke: what a visit costs, what it pays, how many jobs it has, and how much it feeds, rests or entertains a dot. Vice is always set to out-bid fun and undercut it on price, and the game checks that every time it loads. The Potato Guard Post pays a wage and takes a little rest and a little mirth out of whoever works the shift. Guarding potatoes is tiring. When a dot does well enough to lease a place of its own, it picks its trade from whichever need hurt it most, so the colony fills up with food stalls opened by the formerly hungry.
Pause doesn’t stay paused
My first bug report was “pause doesn’t stay paused.”
The daemon was innocent. Under test it held pause for thirty seconds straight. The problem was the buttons. The speed chips were sixteen pixels wide and jammed against the pause button, and every chip unpaused the colony. A thumb aimed at pause landed on a chip and resumed it. A paused colony also redraws slowly, so the button looked dead, so I tapped again, so it flipped back.
My answer when I saw it: “you could simplify and just do pause, 1x, and 5x.” Three big buttons. It went into the project’s list of lessons as sixteen-pixel buttons are not buttons, and every touch screen since has been checked for it.
That same night the ant farm crashed, and when I rebooted the Pi the city was reset to zero. That second part was not the crash’s fault. The first build saved nothing at all, so any restart founded a brand new colony with a new map. Now it saves the colony every ten minutes and on every clean shutdown, and it refuses to load a save that does not match the world rather than loading it wrong. Testing that save turned up three more bugs that had been live in the sim the whole time. One: a rounding step turned tiny negative numbers into negative zero, and that flipped the sign on dots’ credit. Two: plans sharing a key, so a dot could be handed the wrong one. Three: repossessed workers left listed inside buildings they had left, up to three times over.
The crash itself was never explained. The Pi’s logs did not survive the reboot. They do now.
Two worlds, and rent
On the 21st, after 1,445 cycles, I came back with three questions. Why are so many dots homeless, and what does a home even give them? Could there be a warp gate to a second, richer map? And why does the cemetery count go up and down?
The cemetery was a plain bug: it was counting a list we had capped, so it sawtoothed. The other two became a release.
Homes became a ladder. Warrens are free and sleep two. Habs cost rent. Villas cost more. Miss two rents and the Federation has the room. And the measurement that drove it is my favourite number in the whole project. Before the change, the homeless were 14 percent of the colony and only 11 percent of the deaths. They died less than the housed, because sleeping rough recovered rest seven times faster than the drain took it away. A home gave nothing. After the change, 93 percent of deaths were homeless dots, and the homeless count went from 317 to about 19.
We also learned why the bottom rung has to be free. With any rent at all, 42 percent of the colony could not afford the cheapest bed and died in the street while 358 beds stood empty. That is a poverty trap, not a ladder, and it was measured, not guessed.
The second world is The Gilt: everything costs about twice as much and pays about twice as much back, and it is twelve credits through the gate each way. The gate had to advertise, because plans travel only by collision. Until somebody had been to The Gilt, nobody had a plan for it to pass on, and no dot could ever learn it existed. A dot keeps its job and its bed when it crosses, which is what makes a commuter.
My running colony migrated forward. Every dot stayed on its own coordinates. The Gilt was simply added alongside, empty, and the dots found it.
A fiction engine
On the 22nd I asked for leaderboards: top five by fulfilment, by credits and both, then all-time records and the top five still alive. That shipped. But what I really wanted came right after, and I typed it like this:
for the dots that live longest and have highest number of… interactions… and then narrowing that list down to the outliers… weird one offs….. we could have a potentially useful fiction story engine here.
So the colony got a biographer. It lives inside the daemon and scores every living dot once a cycle on four axes: the furthest outlier on any of nineteen measures, the biggest reversal of fortune, endurance (long-lived and busy, my conjunction, so age alone cannot buy in) and rarity. The axes are combined with a maximum, never a sum. A sum rewards the dot that is a bit unusual in four ways, and buries the one that is unrepeatable in one. The unrepeatable one is the story.
The catch is that you cannot know a dot is interesting until it already is. So every dot carries its last twenty-four events. The moment one is promoted, that run-up is kept and everything it does afterwards is recorded in full. Whael-0818 came out of that, unprompted, in the first seventy-five cycles.
The Antfarm Gazette
Then I asked for the colony to come to me. The Pi and my desktop are almost always on together, so: a scheduled pull of the data, and a PDF delivered every morning. Then I handed Claude a design system I had made for a glossy far-future space colony newsletter, which is exactly what the ant farm already was, and asked for the PDF to look like that.
The Antfarm Gazette has a masthead, drop caps, pull quotes, page folios, Standings, the lives the biographer is writing, serials that run one installment an issue, and a classifieds grid for the long tail of the dead. It lands in a Google Drive folder of its own.
One small thing about how it gets made. Nothing Claude drives can reach my Pi. It all runs behind proxies with no way onto my home network, and that was tested, not assumed. So Windows pulls the data off the Pi every hour, and Claude reads it out of my Downloads folder. That pull is still running. It ran at 7:54 this evening.
A way down
On the 23rd I asked for “more social depth, humor, spontaneity, or interesting interactions that will produce varied outcomes and richer stories for the generator… without becoming just a mound of stuff.” I approved the whole plan and named the third world The Sump.
The rule that held was to couple the mechanics already there and add no parallel systems. Dots remember eight other dots now and how they feel about them, and that one change drives a lot. They trust friends’ gossip more. Fads spread. Mobs form out of friends. Grudges scale robberies. There are gifts, wills, bereavement and heirs. Families got surnames. Dots play pranks. They earn titles, up to five each. Every grave records the dot’s last belief. The Federation declares eras now and then: festivals, shortages, inspections and amnesties, each one named. The Gilt got a lending window, and The Sump got a Fence that will lend to anybody.
It worked. Recurring characters in a followed life went from almost none to about eight. Lives with a recurring character went from 8 percent to 96.
Then, a day later, from the Pi: “literally no one is down to the sump after many cycles.” I guessed it was something to do with the saved game, and I was right. New colonies fill The Sump through early pioneers who settle there. My colony was nearly three thousand cycles old when The Sump appeared beneath it, and nobody had a reason to go down. So the fall became free, and The Gilt got the Drain, a one-way chute straight to The Sump. In sixty cycles The Sump went from 0 to 317, and the homeless in The Gilt went from 413 to 77. The lesson went on the list: a place added to a grown colony stays empty. Test a new place against an old colony, not just a new one.
The pocket colony
On September 23 I asked whether there was any way to get this onto my iPad. Claude offered three ways. I chose a separate colony that lives in the browser and runs only while the page is open.
Pocket Ant Farm was the Pi’s farm code running unchanged in the browser, with the page standing in for the panel. Then I asked for the thing the Pi version was never going to get:
I’d like this version to have some manipulation buttons I can use to fuck with the economy and the dots… raise rents, end subsidies… the primary one I want to run in stasis more or less like we designed, this one I want to be able to crack and break.
So the Pi stays observe-only, as designed. The pocket colony is the sandbox. It has a desk with every rule on a dial, decrees, powers over single dots, and every change announced to the colony as an edict. I put it on the iPad and my phone. Later I took the population cap off it.
I also shared it with a few outside testers. One of their colonies grew a dynasty: one family with generational wealth in the thousands. Getting that colony file off their phone took four rounds of save fixes, and it arrived cut at exactly 200 KB per part by something in transit. Even the 18 percent we could read showed a lot. Their patriarch, Wug-0037, a founder, had been alive 117 cycles and was sending small gifts to broke children. The gifts raised the children’s opinion of him. The heir rule picks the best-thought-of relative. The children died young. Their estates flowed back to him. My summary at the time:
this guy is just… self.. replicating… alone in his house making free lunches.
Because, yes, dots reproduced alone. So on the 25th it became two dots, not family, who pair on a collision and stay together until death or a falling-out. Only a pair has children, and a partner is first heir. Estates moved sideways instead of up, and the runaway family did not come back.
Old age
Two days later I came back with “we have a housing issue still and a family dynasty problem lol” and a save: 9,593 dots, every one of them named Qenk, 82 percent homeless, the oldest 3,545 cycles old.
Nobody aged. So dots got lifespans, about 240 cycles give or take, with a grace period for the elders already past it. New family names appear when one name gets too big. The Federation builds floors on top of homes where homelessness runs high. Sleeping rough costs more. On my colony, the population settled from 9,593 toward 3,500 and homelessness fell from 82 percent to 37. A second pass added free Federation rooms, a housing office that rehouses the poorest first, and estates split among children. Homelessness dropped to 9 percent. Those rules went to the Pi as well, with its cap raised to 1,200.
Qenk was still 81 percent of the dots and 88 percent of the money. Money follows the bloodline. Hold that thought too.
Full octane
By October 9 I had to admit something: “the one running as an artifact has been the most used honestly, the one on PI is definitely ‘lite’ version at this point.” I also could not get my main pocket colony to do anything. It was over twenty thousand dots and so frozen I could not even get a save file off it.
I told Claude “lets double down on creating the pocket version with full octane,” which meant the pocket version was free to split from the Pi’s code. First came the strongbox. It hands over the stored save without waking the colony, which is how my frozen one got out. Then a speed pass took the worst tick from 126 seconds to 17. Then I said yes to a whole new engine, in JavaScript instead of Python running inside the browser, and gave it room: “You may venture forth into new territory - with my blessing.” It was checked against the Python, run for run, and came out identical.
What I said when it landed: “running amazing - that really cranked up the octane.” My colony woke fast and climbed to about thirty-two thousand.
Art, and how to play
With that headroom: “lets use that headroom to do some art, ui enhancements — a ‘how to play’ type thing would be great also (some people dont get it that I show it to – its really not a normal type of game).”
I picked zoom that reveals detail. Far off, a dot is still one pixel. Zoom in and it is a little creature with antennae, eyes, arms and feet. It walks, idles and blinks, carries a crate at work, and scowls in a fight. A crown means an owner. Violet bubbles mean hooked. A bundle under one arm means nowhere to sleep. The art came from a Fable agent, which drew the places, homes, ground and event marks in two passes, looking at its own work against the real map. Its first creature was drawn from above and read as a fish, then as a twig. The one that shipped faces you.
Also new: you can follow one dot around the map, and it lets go with a note if that dot dies. Events are drawn where they happen. A History sheet plots the colony on four charts. There is an eight-step tour on a first visit, and the How it works page.
Rules among gentlemen
Same night, two questions from inside my own colony. About the Qenk:
This Qenk Dynasty… how do I break them up. I am glad for their success but its no fun if they all rule every damn thing lol
And: “how easy would it be to introduce a criminal economy.” Then, before anything got built, the rules:
if we are going to create criminal empires though… we need rules among… gentlemen.
No hurting children, dots under… whatever cycle that is for a dot are off limits for anything. If violence is needed, which should be discouraged if possible, then it should be respectable, few innocents around as possible to reduce accidental damage or mob defense of a citizen turning into a slaughterhouse. People can sell themselves. People cannot sell people. “Everything, except people, should be available for some price, somewhere…” War is War. As long as the above rules are maintained.
Plus a setting on the desk to switch the whole thing off.
It shipped as version 17. Dots with nothing form crews. A crew sells protection on squares, skims the Federation’s tills, lets beds, lends, sells out the back door whatever the Federation has shut, runs a tunnel under a sealed gate, and goes to war with another crew over a square. The code is enforced, not encouraged. Children, up to 24 cycles as I chose, are off limits for anything. A dot can sign itself on and nobody can trade a dot. Violence comes last and is kept private. I also chose to build it all at once, war included, and to ship it live and switched on, to my colony and the testers’. Claude recommended staging the war and using a separate test link. That was my call, and it went out my way.
For the Qenk: family names no longer run out, and there is a decree that breaks the largest family up along its bloodlines.
It’s a grub farm now
On October 14 I looked at the pocket colony close up and realised what the creatures look like.
They are grubs. “It’s a grub farm now,” I said. “It gives a whole new depth to the actual grubs themselves I think.” If you have read the Grub post, you know there are small machines around this house muttering cut-up conspiracy theories at each other over Bluetooth. Somewhere in a browser there are twenty-eight thousand of their cousins, paying rent. The creature stays as drawn.
Where it stands
Two colonies, two very different lives.
The Pi is the lite one now, and it has never stopped. It is still observe-only, still on the September 26 rules, and still pulled every hour. The 7:54 pull this evening read cycle 38,634, with 1,199 dots against a cap of 1,200: 220 in The Flats, 453 in The Gilt and 526 in The Sump. Since it was founded, 290,700 dots have been born there and 289,801 have died, 112,725 of them of old age. They have bumped into each other 79.5 million times, and about five million of those bumps changed a dot’s mind. The Federation has declared 1,237 eras. And there is no dynasty. The biggest family is the Zugghar, 270 living. The Hwoffa have 211 and the Khegg 194. Left alone, the one nobody touches shares.
The pocket colony is the main one, and it is the one I break. My own colony, saved October 10, is 27,987 dots at cycle 4,056. It is still almost entirely Qenk, the underworld had only just been switched on, and the great-house decree is sitting on the desk, unused.
The Gazette’s last issue in my folder is October 1. The presses are still there.
Things I have not decided: whether to break the Qenk, whether any of the pocket’s underworld goes back to the Pi (it was written up so that it could), and whether there should be a speed above 5x. None of those are urgent. The dots are busy.
What’s next: more government
Look at my pocket colony’s numbers again and one jumps out.
The homelessness just cannot get under control. Housing offices, floors built on top of floors, free Federation rooms, and still three out of four dots sleep in the street. So the next layer is going in under the same idea as all the others: if the colony has a problem, give it somewhere new to have it.
The fourth world is called The Seat. In the middle stands one big building. Under a democracy it is the government offices. Under a monarchy it is a palace, and the king lives there instead of the president. Around it goes a ring of really, really nice, very expensive houses, then some average to high-end businesses, and then hovels stacked three high and crammed into every other inch of the place. Two gates in, and a chute down to The Sump.
And the dots get a government. Left alone, the colony is supposed to drift toward whatever it naturally ends up with. Roughly, the plan is this:
- The lean. When one house holds most of the money, or the colony is miserable (homeless, desperate, dying), it leans toward a crown. A broad, comfortable middle pulls it back toward the ballot box.
- How a crown is won. Either the great house simply buys the Seat (the election is “postponed indefinitely”), or a crowd carries a popular dot or a crew boss up to the palace and acclaims it.
- How a crown is lost. A revolution, where the king goes down the chute to The Sump with the family silver. A concession, where the middle class gets big enough that the crown keeps the hats and loses the palace. Or the line simply runs out and a regency of cushions muddles along until somebody calls an election.
- Democracy. Elections every few cycles. Candidates from different houses run on the real levers: rent, the dole, taxes, wages, building more hovels. Dots vote their needs. The homeless vote housing, the comfortable vote low taxes, and families vote together. Whatever wins goes through the Office of Process, where it lands late, sometimes in the wrong world, and now and then upside down for a cycle while somebody locates Form 23-Ж.
- Monarchy. The king taxes all four worlds into the palace, pays his favourites, knights a crew boss now and then (buy the wolves), and issues decrees on a whim. Royals prefer to marry inside the house name, so every in-house generation adds a little to the royal chin, and the chin slowly costs them their grit.
- Meddle. A three-way switch on the desk: let it drift, force a democracy, or force a monarchy.
I asked for bloody coups. The underworld’s code still holds up here, though: nobody gets hurt taking or keeping the Seat. So the coups will be bloodless, and the blood will mostly be paperwork.
The part I am most curious about is the ruler’s head. Everything else in the colony is arithmetic, but I wanted the mad king or the unhinged president to be able to actually think about what they control and how to stay in power. So when the Seat has a decision to make, there will be a button: Let the King think, or Let the President think. Press it and Claude gets the state of the realm and the levers on the desk, decides what to do to keep the job, and gives a speech. The colony checks that the moves are legal and carries them out. There will also be a box for talking to the ruler directly. Leave the button alone and the ruler runs on rules like everybody else.
All of that is being built while I write this, in another window, so the details will change by the time it ships. It may well fix the homelessness. It will definitely add more government. After all, what’s government without more government?
FNORD.
Sources and status
This memo describes the ant farm as of October 18, 2026, Eastern time. The history comes from the project’s build records, from September 20 to October 10. The quotes from me are my words as I sent them, with obvious typos fixed. The Pi numbers are from the hourly pull at 7:54 PM on October 18. The pocket numbers are from my colony’s save of October 10.
The pictures
The census picture is cropped from the same capture as the full-map picture. The Potato Guard Post picture is a browser capture made the same way as the other pocket pictures, described below. The two cycle-three pictures were made for this memo by running the very first build (September 20) fresh on the Pi colony’s seed for a few seconds, and drawing its panel off-screen with the panel’s own code. The Pi pictures, the dot card, the Standings and the cemetery were made the same way with the build that runs on the Pi, loaded with this evening’s save from the Pi itself. They show my real colony as it was at 7:54 PM, run for a few ticks in a copy. They are not photographs of the screen. Panel pictures are shown at twice the screen’s size.
The Gazette pages are pages from real issues, made from the Pi’s colony on the morning of each date.
The pocket pictures, apart from the two marked as test colonies, are browser captures of version 17 of Pocket Ant Farm, made for this memo with my October 10 save loaded into a copy. My real colony was not touched. The two underworld pictures come from the version 17 build’s own checks, on a colony made from my 9,593-dot save and run until crews went to war.
The paper, letterhead, coloured section marks, paint drops, captions and picture viewer are the same ones used by the other memos.


