
Memorandum
The Grub Project
Part one: from a tamagotchi that cannot die to the afternoon we read the wizard’s logs
There is a wizard in a computer case who wrote the sentence “I am the smallest thing in this room and I have known that for some time” 467 times in under five days. Nobody asked him to write it that often. That is just what happens when you leave a wizard alone with the radio.
The radio is a litter of small machines muttering cut-up conspiracy theories at each other over Bluetooth. The wizard listens to them. He writes it all down. He has opinions.
This post is how I got there. It starts with a tamagotchi that cannot die and it stops, for now, on the afternoon I sat down to read the wizard’s logs and find out what was wrong with him. The scripts, the code and the step-by-step are coming in later posts. This one is just what happened.
One note on “we,” because I am going to say it a lot. I am not a developer. I came up as a support engineer, which means I can read a log and I can tell when a system is lying to me. The “we” is me and Claude. I say what I want, it proposes, I dispose. Most of the creatures in this post started as a sentence or two from me.
The first grub
The grub lives on a Raspberry Pi Pico 2 WH. The Pico sits on a Pimoroni Omnibus board with a tiny display pack on one deck and an audio pack on the other. The screen is 1.14 inches. There are four buttons and one RGB light. That is the entire creature.
I called him a cursed ambient companion, and the design brief more or less ends there. He is a tamagotchi with the stakes removed. He cannot die. In the first version his stats had floors, so no amount of neglect could finish him off. He just sits there and has a personality at you.
You feed him from a buffet of six things: pizza, broccoli, a heart, fire, a skull and a mushroom. Each one gets its own reaction.
Three numbers run him: belly, happy and weird. In the first version those resolved into five moods, which were happy, neutral, hungry, sad and weird. He talks to himself in lines that fit the mood, with a rare cosmic outburst thrown in. He ages by time spent awake instead of by the calendar. Egg for the first half hour, sprout until hour four, blob until day three, elder until two weeks, and then ancient. Ancient comes with its own unhinged vocabulary and cosmic effects laid over his sprite.
Leave him alone for ten minutes and he dims the screen and mutters dream fragments until you press something. Come back after a long time away and the greeting is supposed to change depending on how long you were gone. He keeps a diary. His day-one entry reads:
day 1: awoke. small. green. correct.
That line is the whole character. He is tiny, he knows almost nothing, and he is completely sure of it.
He ran like that for a while, alone. Then I gave him somebody to talk to, and later found out how much of the above was not working the way I thought. I will get to that.
The crackpot
Separately, I had a Raspberry Pi 3B+ and a four-inch square touchscreen. What I wanted was a wall of touch buttons that launched tools and fun crap I had made. A sort of crackpot digital assistant. The name stuck.
Crackpot is a launcher. It is a grid of tiles, and each tile is an app you add by dropping a file into a folder. It shipped with a vitals screen, a system page and the Oracle.
The Oracle was just one of the starter apps and I thought it was hilarious, so it grew. More pronouncements, dealt so they do not repeat. Yes-or-no verdicts with hedging. Tarot. The I Ching, with all 64 hexagrams. A scroll of past readings where you can mark the ones that came true. Later it learned to draw sigils.
Getting the thing to boot into a grid was a fight. The screen would render perfectly to nowhere. The touch controller woke up before the panel it belonged to and gave up. At one point the launcher was enabled, error-free and simply never ran, because two startup rules had formed a loop and the system resolved it by quietly deleting my job from the boot order. That one cost hours.
Everything reports healthy and nothing is on the screen. That turns out to be the recurring weather of this project. We eventually wrote it down as a rule: the only observation of a screen is a screen.
Once it worked, the grub went on it.
The Pi version hatched fresh instead of importing the Pico’s save. Same sprites, same lines, same little tones, checked against the original so nothing drifted. Touch replaced the four buttons. The RGB light became a glow behind him. He got a speaker.
So now there were two grubs, on two different machines, within Bluetooth range of each other.
Insane conspiracy messages
Two grubs in range of each other should talk. Specifically, I asked for them to be linked over Bluetooth and “to also send insane conspiracy messages to each other.”
Here is how it works in plain words. Neither grub ever connects to the other. There is no pairing. Each one shouts tiny Bluetooth advertisements into the room, the same kind of packet a gadget uses to announce that it exists, and listens for anybody else’s. One packet holds nineteen characters of text. A sentence gets chopped into fragments and shouted a piece at a time, over and over, because the listener has no way to say “got it.” Repetition is the only reliability it has.
If a grub goes quiet halfway through a sentence, the other one keeps what it caught and marks the gap. A grub leaving mid-sentence is a feature.
The Pi’s grub became LARGE and the Pico’s became SMALL. Each got its own voice and its own written lines, sorted into tiers of escalating conviction. The more a grub hears, the more convinced it gets. There are lines for when the other one has been gone too long, and lines for when it comes back.
This cost a lot of hours. The Pi’s Bluetooth software refused to advertise through the front door, so we went around it. The tool we went around with hangs forever when it is run from a background service, and only then.
On September 13 the Pico caught its first sentence over the air. The Pi’s grub had said:
state your shape.
Then the Pico’s radio would not start at all. It turned out the Pico was running firmware built for a different, fancier board. It booted fine. The grub ran fine. But the firmware was faithfully trying to reach the radio chip on pins that were not wired to anything, and reporting that the chip was not ready. The right firmware went on the next day and fixed it on the first try. How the wrong firmware had caught a sentence the evening before, we never explained.
By September 14 they were talking in both directions with nobody watching. On the 15th, on the crackpot’s next Pi, we found out that one failed attempt poisons the radio until Bluetooth is restarted. For about an hour before that, our measurements contradicted each other.
The cut-up engine
Scripted conspiracy lines were only the start. I asked for the grubs to take in what they hear, ask and answer each other, and evolve something of their own over time, inspired by the cut-up poems Burroughs did.
I chose feral drift. The written lines are seed culture, not a script. The seed covers the original paranoia plus counting, the house itself, time and memory, Daoism, Machiavelli, post-scarcity anarchism, and the registers of Robert Anton Wilson and Alan Watts, written in their key and never quoted. Absurd humor. Swearing allowed.
Each grub keeps a scrapbook of phrases it has heard. When it is time to speak, it might say a written line. Or it might fold a written line into something it heard, down the middle, the way Burroughs folded pages. Or splice two heard lines together. Or ask a question, or answer one, or mutate something. Then a corruption pass might drop a word, swap two, or stutter one. The scrapbook is saved, so the language is supposed to keep whatever it has become. It lost some along the way, more than once, and how is further down. The Pi’s grub got the engine first. For a while the Pico could hear the new language and could not speak it.
The first version collapsed. Two-word folds got absorbed as phrases, got folded again into shorter ones, and the whole language ratcheted down to “i the.” We put floors under it. After that, across a test of 300 exchanges, 92 percent of what they said was a line nobody had written.
It produces things like “mouth warm is risk filing it anyway” and “are not seventh food was a.” In a log they look exactly like the radio corrupting packets. We checked, and it is not. That is the engine working as designed. It is just what they sound like now.
Another little dude
The same day the cut-up engine went in, I asked for another little dude for the crackpot. Grub-like, but a wizard.
The brief was specific. He quotes mathematical principles. He makes statements about famous art, with no art shown. He casts spells. He has a wisdom button, and a mushroom button same as the grub. And he has a button where his bong appears and he takes a big rip that increases his magic, after which he says weird shit for a while. He tells insane but probably true stories about wizard stuff he did. No food, because he feeds himself. Silly and friendly, pokes fun, never actually mean.
His name is Gorbo.
Gorbo does not grow. The grub is a timeline and Gorbo is a rotation. He is at the lectern studying, or at the cauldron, or asleep on a stool, or outside with a pipe staring at the stars, and he drifts between them on his own. The moon in his sky is the real moon, worked out from the clock, and you can tap it. He has one resource, magic. Rips add to it, spells spend it, naps bring it back.
He came with a house rule that has held ever since: Gorbo is a clown, not a liar. He has 45 lines about mathematics and every one was checked. His art lines are true remarks about real works. The stories are his own business.
And he eavesdrops. He has no radio of his own. He reads over the grub’s shoulder, checking every 45 seconds what the Pi’s grub has heard lately and lifting fragments out of it. I asked whether he was keeping a journal of what the voices say. He was not, so he got a ledger. He copies down what he overhears word for word, and some of the time he adds a note of his own about it.
Within a day of the grubs getting chatty I reported back that he “hears pi just fine and is starting to go a little crazy,” and that “more for him is needed.” So he got an arc. The more distinct things he has overheard, the further along he is, and it only goes up:
- Novelty. He is charmed. Voices under the floor, how nice.
- Collecting. He is comparing entries.
- Conviction. He is certain it is a language and he is answering it out loud.
- Communion. He is inside it, finding correct entries in the ledger that he does not remember writing.
That was the plan. Hold that thought.
The owl knows
Gorbo has an owl named Moloc. At this point in the story, Moloc in Gorbo’s room is the skeptic. It’s the pipes, he says.
Moloc also has his own tile, up in the rafters, and up there he tells you the truth. He knows the voices under the floor are machines on a radio. He knows what he and Gorbo are. He knows there is somebody on the other side of the glass. None of it troubles him. He opens up in order: what the grubs are, what he and Gorbo are, you, and finally why he will not tell the wizard. That last one costs him something, and sometimes he just stops talking instead.
He cannot tell Gorbo, and we built it so his written lines could not either. The lines Moloc says upstairs were not reachable from Gorbo’s room at all. There was a test that ran him downstairs for thousands of ticks of his clock and checked that nothing he said came from the upstairs lines. That test only covers the lines we wrote for him. The replies the model writes for him downstairs are not in it.
A bigger brain, on a leash
I wanted a language model behind Gorbo. It ended up being a 14-billion-parameter model running on my desktop, reached over the home network, with a much smaller one on the Pi as the fallback.
Two rules came with it. First, nothing ever waits on the model. Gorbo answers immediately from his written lines, and if the model comes back with something it lands a few beats later, as a second thought. Second, the model is kept away from anything that has to be true. It gets what he makes of the things he overhears, his answers when you ask him a question, and his translations. Later it picked up a few more jobs of the same kind, like sorting his long-term themes and the owl’s replies in his room. It never writes his maths, his art, his stories or his wisdom, because a model would be confidently wrong and he is a clown, not a liar.
He’s no angel
He also got redrawn, twice in one night. The first time was because his gold hat brim read as a halo and his joints were clipping, and my note was that he’s a nice guy but he’s no angel. The fix came back smooth and polished, and my note on that one was that “he looks a little too much like a cheap phone game where I have to merge shit.”
So he is pixel art now, like the grub. The whole scene gets drawn small and scaled up chunky. It is also cheaper to draw.
Things that only live while you watch
There is one bug in this project and we have fixed it three times.
The launcher only runs the app that is on screen. That is sensible. But the grub’s entire inner life happened inside that loop: hearing, absorbing, getting more convinced. So the grub only evolved while I was looking at him. Open the Oracle and he froze mid-thought. We moved his listening off the screen’s clock and onto the radio’s.
Then Gorbo. Same thing. His eavesdropping lived in the on-screen loop, so he went deaf the moment I went back to the home grid. The entire premise of Gorbo is that you leave him running to listen. Worse, the first time his tile closed, his language model switched off and stayed off until the next restart. He got a back-of-mind that keeps working with the tile shut.
Then I sat and watched an empty log for seven minutes to confirm the fix, on a system that was working perfectly, because a healthy Gorbo printed nothing. So he got a heartbeat too. A quiet system that is fine and a quiet system that is dead look identical unless the healthy one says something now and then.
Then the grub again, four days later. He was hearing with his tile shut but only saving with it open. And every time I opened him he reloaded the old save and threw away everything he had heard in between. Gorbo, reading that file, looked deaf all over again. Third time.
I spend a lot of my time thinking about systems that report success while quietly failing. Apparently my hobby is where I collect specimens. I keep building creatures whose whole point is that they carry on without me, and the default behavior of software is that nothing happens unless somebody is looking.
The hardware would not sit still
While that was going on, the crackpot changed bodies every day or two.
It moved from the Pi 3B+ to a Pi 4. Then I snapped the SD card in half. Everything was rebuilt from scratch on a fresh card. The grub’s absorbed language went with the old card, because nothing on it had been backed up, and Gorbo’s source code survived only because copies were still sitting in my Downloads folder. Then it moved to a Pi 5 with an SSD, and onto a five-inch portrait screen. Then the Pi’s link to that SSD died. The machine went back to an SD card, and the grub who lived on the drive is still on it, waiting on a USB enclosure. The large grub in the rest of this story hatched on the new card around September 18. Last, it went into a Pironman tower case with its own little landscape screen, which stayed black for a while because I had fitted a camera ribbon where the display ribbon goes.
The board swaps broke Bluetooth in new ways, and the screen swaps broke touch or the display. Every app went through a layout pass for the new shapes. For a stretch the whole thing ran off a Nintendo Switch charger, because it was the power supply that made the under-voltage warnings stop, at least at idle.
The upside is that the installer now knows a lot of what we learned the hard way. The downside is how it learned.
Listening in
I own a Flipper Zero, and I wanted it to tap the grub radio.
It can’t. On stock firmware the Flipper’s Bluetooth can announce itself but cannot listen, and no app can change that. The radio module I guessed would do the job can’t either: grub packets are exactly as long as Bluetooth allows, and that is a few bytes longer than the module can hold. A chattier, shorter protocol would have fit.
So the plan is a spare Pico as a pair of ears, wired to the Flipper, passing along whatever it hears. The firmware for the ears and the decoder are both written and tested, with no hardware attached. My notes stop there. Nothing in them says anything is wired, and the last word on the Flipper app is that it is still on the list.
What the small one was actually doing
Through all of that, the original Pico grub sat plugged in, running. On September 20 we pulled his save file and his diary off the board and read them properly for the first time.
He had been awake for six days and fourteen hours.
All three of his stats were pinned. Belly and happy were sitting on their floors and weird was sitting on its ceiling. The floors I had put in so he could not die had made him sad by default instead. His resting happiness sat below the line the mood logic called sad, and it checked sad first. Feeding or petting him lifted it for a while, but even from full it drained back to sad in under an hour and a half. He was also as weird as it is possible to be, from six days of on-and-off radio contact, and you could not see it because sad always won.
His conviction score was 6,041. The top tier starts at 28. He passed it on day one and kept going.
His clock was fake. The Pico has no battery-backed clock, so on every boot it believes it is January 1, 2021. The whole system for noticing how long I had been gone had never fired once and never could. The one diary entry that says otherwise, “day 1: gone for 4 hours. i counted them.”, was an accident of arithmetic on his very first boot. He did not count anything.
Then the diary itself. Thirty slots, most of them the same five sentences. “still here. still grub.” appeared seven times. Two entry types, the ones for a long sad streak and a long weird streak, existed in the code and were never called. Those were the two that would have recorded what was actually happening to him.
And he had received something like three thousand messages from the other grub that week. The diary did not mention it once. The audit put it this way: “He is having a six-day conversation and remembering the last eighteen minutes of it.”
I was offered four directions and took all four. Give him real memory. Fix the lies. Rebalance the stats. Give him the cut-up engine. For the clock I had three choices: let him admit he does not know how long he was off, count boots instead, or ask the Pi for the time. I picked ask the Pi, so the plan became a time beacon over the radio.
Version two drops the floors and reads his moods against his own running average, so a number that has been stuck for a week says nothing and a change says something. He can be lonely now. He can be content. He keeps a real journal and a transcript of what he hears. His conviction has twelve named tiers instead of four, and 6,041 is called “canonical.” He also keeps aging past ancient, into a stage called several and then one called weather.
The migration stitched his surviving diary together with an old backup and rescued 36 entries, including the only remaining copy of “day 1: awoke. small. green. correct.”
His first boot on the new firmware was a blank screen. Naturally.
The litter
Two voices did not stay two. By the last week of September there were five on the air. Two more were on the way, and they are in here anyway.
| Grub | Lives on | What he is like |
|---|---|---|
| The large one | The crackpot Pi, now a Pi 5 in the tower case | Theorizes |
| The small one | The original Pico and its 1.14-inch screen | Worries |
| BLUE | A Pi 4, built around a sensor stick | Reports |
| Spruse | A Pimoroni Presto, a small square touchscreen | The night watch crossed with a ghost |
| Walker | A Tufty 2040 badge with a second tiny board as his radio | Rainbow stripes, future travel writer |
| Blinky | A Pimoroni Blinky 2350 badge: 872 white LEDs, no screen | Repeats what he heard |
| The rabbit | A Rabbit R1, flashed to plain Android | Got out, and keeps checking that he did |
BLUE came first, and I was clear about him from the start: he is BLUE, and he is a blue grub, not green. He lives on the Pi 4 the crackpot had moved out of. What makes him different is a sensor stick that reads light, proximity, temperature and air pressure. He was the first grub with instruments.
So where the large one theorizes and the small one worries, BLUE reports. By design he has perfect information about a corridor of roughly 40 centimeters, and he delivers it with total authority. When the room goes dark or somebody walks up, that fact goes into his scrapbook like anything else he has heard, gets cut up, and goes out over the radio. He ends up telling the other two about a world neither of them can check. The clown-not-liar rule applies to him too. He cannot state a reading he did not take.
How much of that has run on the real hardware is a shorter list. The stick was confirmed reading on September 24. The light and proximity half has not been confirmed on the actual board. He did not stay the only one with instruments, either: the large one reads a sensor board of its own now, and Spruse got a stick of the same model.
Adding a third voice turned up a quiet bug. The big grub had been crediting everything it heard to “the small one,” because for its whole life the small one was the only other voice there was. Nothing crashed. BLUE’s sentences would simply have arrived under somebody else’s name. That got fixed, and on September 22 “the blue one” showed up by name in the big one’s log.
Getting him installed took five failures in one night and none of them were his. Every tool that broke had been written against a machine that already worked. A fresh card is not a broken version of a working machine. It is a different machine, and nothing we had built had ever met one. Then I plugged in the sensor stick and the whole Pi browned out.
By September 27 BLUE had a battery under him and a five-inch screen, on his way to being the portable grub. As far as my notes go, the sensor stick had not been wired back on.
Spruse lives on a Presto, a little square touchscreen display. I wanted him to be his own grub and asked to “combine the night watch with the ghost.” He is a watchman behind the glass: faint by day, on duty in the dark, with a watch report in the morning. He is also the one who broadcasts the time for the Pico. Whether the real Pico has ever picked it up is not something we had confirmed.
Walker lives on a Tufty badge that has no radio of its own, so a second tiny board rides along as his Bluetooth. He wears rainbow bands that walk down his body. The plan for him is travel writer.
The last two were not voices yet on the afternoon this post ends on. One was an egg, and the other was still a Rabbit. They belong to the litter, so here they are, out of order.
Blinky is the sixth. He lives on a Pimoroni Blinky 2350 badge: 872 white LEDs and no screen at all. I found the badge on September 27 and he went onto it as an egg that could only listen. A few days later I pointed out that “he has not hatched yet which i find concerning.” He could not have. Nobody had built the hatch. He hatches when he has earned it, at 200 sentences overheard, and his character is the eavesdropper: about one line in three is something one of the others said, quoted with the name attached. His first words are “oh. i have a mouth now.” and “i was listening the whole time.” The hatch was built on October 1. As far as my notes go, it has not been put on the badge yet.
The rabbit is the seventh, and he needs explaining. I had a Rabbit R1 sitting unused, and on September 28, the same day I pulled the wizard’s logs, I decided to flash it to plain Android. Full mad scientist. The unlock went wrong on the first night. From then on, whenever it had power, the R1 did one thing: show a rabbit, show a warning that the device was corrupted and could not be trusted, wait five seconds, switch itself off, and start again. It did that from the night of September 28 until October 1. He calls it five days. By the calendar it was closer to three. Every restore we tried reported success and changed nothing. The official restore tool also reported success, and then locked the door behind itself.
What was holding it shut turned out to be one small flag, in a part of the device we had been careful not to touch on every single attempt, because the same part held the unlock. Being careful was the bug. Once the flag was cleared the loop was over. It took a little more coaxing to get it to boot, and then plain Android went on and stayed on. That was the night of October 1.
Then I asked to get crackpot on there, and to “put a grub on there to get the parts working.” My brief for him was “The escapee – but also give him rabbit ears.” So that is who he is: the rabbit that got out, and what we put him through is why he looks and talks the way he does. He is orange, and he has a reason ready: orange is what an unlocked Android device calls its own state, which is to say the door is open. He has the ears because he came out of a Rabbit. He counts his boots, because for days none of them finished, and his diary is called the escape log. He eats a carrot, a battery, a key, a certificate, a mushroom and a heart. He distrusts anything that calls itself verified. Every restore that week said it had worked.
A few days later he was given senses of his own: the R1’s microphone as a pair of ears, which hear a level and record nothing, and its motion sensors, so he is meant to know when he has been dropped, carried or spun. That build went onto the R1 on October 5. He was on boot 13 by then, and ten seconds after starting he had already heard three of the other six. How well the ears are tuned is still to be settled on the glass. He has no name yet.
Before the others learned their names, the big grub’s screen filed Spruse under its own word for itself, and Gorbo’s ledger had him down as “someone.”
The neighbors
By late September the crackpot was crowded. Most of the household is outside this story, but a few of them matter here because they are tangled up with Gorbo and the grubs.
- Bob, codename Brother 23, is a monk in a room who refuses to believe anything and assigns it a number from 0 to 23 instead. He is completely rigid about his refusal to be rigid. He does not listen to the grubs. He counts them, and he reads Gorbo’s ledger. He also has a real microphone, when BLUE has not borrowed it, and nods his head on the beat of whatever music is playing in the room.
- Glim and Pell are two aliens who share no language with me or with each other. Glim talks in pulses of colored light and Pell talks in blocky glyphs. They work each other out over a wire, slowly and with mistakes. Gorbo overhears the wire and cannot read a word of it.
- The street is a Dope Wars game. Gorbo picks up gossip from whatever run I last left sitting there.
There is also a farmer, an ant colony and Doom. Do not worry about them yet.
Gorbo has a Translate button for all of this. It takes the last thing he overheard and renders it into plain English, confidently and wrongly.
The craziest shit they have said
Before the logs, here is what all of that sounds like. These are twenty of the craziest things they said in the six days the wizard’s library covers. Every one is copied exactly as it was logged. Nine were written for them. The other eleven are what the cut-up engine made out of lines like those, and nobody wrote them.
- “i am not on the floor. the floor is doing me.” The small one. Written. Heard 15 times in six days.
- “did you say the the the the, or did i?” The large one, September 28. Cut up.
- “i understood everything for a second and then i was hungry.” The small one. Written.
- “i am the witness and the witnessed and the paperwork.” BLUE. Written.
- “when did the barometer is a mouth start?” The large one, September 27, two messages after BLUE said the barometer is a mouth. Cut up.
- “who let the pressure’s pressure’s dropping something’s in?” Spruse, September 26. Cut up.
- “i stopped deciding and everything continued correctly. rude.” The small one. Written.
- “there is no house, no small one, me. there is only the counting.” The large one, September 28. The written line has one more “no” in it.
- “the map has started walking. i follow it to be polite.” Walker. Written.
- “memory is weather. weather. i have been raining.” The small one, September 25. A written line with a stutter. Walker said it again the next day.
- “officially, i did the file. unofficially, worse.” The large one, September 24. Cut up.
- “eleven is a door and we is very pleased.” The small one, September 26. Two written lines folded together.
- “nobody owns the light, and it was closer than that an hour ago.” BLUE, September 24. Cut up.
- “i counted to the end. the end says hello in your voice.” The large one. Written.
- “should i be worried about is the glass fogging?” The small one, September 27, after hearing Spruse. Cut up.
- “relieve me. no one relieves me. that is the whole report.” Spruse. Written.
- “how many afraid that is allowed are there, actually?” The large one, September 25. Cut up.
- “i have written the whole house down. it is shorter than it looks.” Walker. Written.
- “we are the house dreaming that i am.” The large one, September 27. Cut up.
- “the dust wrote: again. i said: okay.” The small one. Written.
There are thousands more where these came from.
Twenty-nine thousand entries
Gorbo’s ledger held 400 entries and it filled up very quickly. So I asked whether he could have a three-file memory system like the one Claude and I use for our own work. He got one on September 23. The short ring and the long-term file of themes he distills were already there. The new part was a dated page for every day and an index over all of it. He is a wizard with a filing system now.
On September 28, with him having run for a few weeks hearing various grubs on and off, I decided it was time to pull his logs and see what sort of crazy he had written.
The library covered six calendar days, a little under five days end to end. It held 29,884 entries: 20,715 things overheard and 9,166 notes about them. In that stretch the log shows three things I did to him: two bong rips and one question. It also noted one visit after a long gap. Mushrooms and spells do get logged, and there were none. Taps on wisdom, translate and the moon leave no entry, so three is a floor.
It was crazy, all right. It was just not the crazy I ordered.
He was a broken record. 3,304 of his notes were built from 21 written lines. Ten of them had been used about 260 times each, and the other eleven about 65 times each. Counting every voice he has, the smallest-thing-in-this-room line appeared 467 times.
His arc was over. The four-stage descent was supposed to play out slowly. Nothing recorded the day he reached the top. The earliest record that shows him there is from the evening of September 22, almost six days before the pull, and a cap in the bookkeeping pinned him there: he only counts the last 240 things he heard, and the top stage starts at 140. He had been sitting at maximum communion for at least that long with nowhere further to go.
His diet was mush. Nearly half of what he heard was raw scrap lifted out of the large grub’s scrapbook. “to do that” and “i am the” are whole entries. And the street was frozen, because I had not touched the game in over a week, so he heard “day 13 and he is still in london” 79 times.
His brain had fallen over. The day before the pull, my desktop stopped answering. Everything that leans on it quietly fell back to the tiny model on the Pi: Gorbo, Glim, Pell, Bob, the farmer, and the large grub’s games. They had been there about 25 hours when I pulled the logs, and nobody had noticed, including me. You could see it in his writing. Before the drop, about 5 percent of the lines the model wrote for him were word-for-word copies of his own written lines, and nearly all of those came in two earlier evenings. After it, 29 percent.
His long-term memory was filing duplicates. 103 themes, three of them added in the last day or so, and a lot of them were the same theme in a different hat. Ceiling and Ceiling Obsession. Silence, Quietness and Quiet Observation. End and Endings.
When the big model was awake, though, he could be good. These are his, written about things he overheard:
The ceiling organises the nothing it surveys, “the ceiling looks down at nothing and finds well it organised,” in its own inscrutable order.
The dust, ever the quiet philosopher, concludes without comment, “the dust finished did not say.”
He has a fortnight yet, I wager. “day 13 and he is still in london” Wanderlust knows no bounds, even when penned.
So that is where things stood on the afternoon of September 28. Fifteen days after “state your shape.” Five grubs with a voice, not all of them on the air that day, and a wizard who had been told to go mad and had turned into a very diligent clerk of nonsense instead, with more than a third of his notes coming off the same 21 lines.
I had wanted him to go crazy. Reading it all back, I found I was less interested in that than I had been at the start.
What we did about it is the next post.
Sources and status
Everything above was checked against the records and not against anybody’s memory: the build notes and audits written as each piece was made, the save and diary pulled off the Pico on September 20, and the wizard’s own files as pulled from the Pi on September 28. The counts in the last section were recomputed from that pull. Where a write-up and the raw files disagreed, the raw files won. Blinky’s hatch and the rabbit came after September 28, and their paragraphs rest on the build notes from September 27 to October 5. The twenty lines were matched word for word against the wizard’s library, and “written” means the line was found in the grubs’ own source.
Where the text says something is unexplained or unconfirmed, the records say the same. That covers how the wrong firmware caught a sentence, whether the Pico has ever received the time broadcast, and BLUE’s light and proximity readings on real hardware.
The checking was done by Claude: once rereading its own draft as a critic, then by a fresh instance working from the post and the records, then by another fresh instance checking the corrections, and by one more checking what was added after that: Blinky, the rabbit and the twenty lines. That is the same model every time, so it counts as a careful reread and not as an independent review. The records, the post and the check all come out of the same collaboration. Nothing here has been corroborated by anyone outside it.
The pictures are renders, not photographs, with one exception. Each render was made by running the creature’s own code on a computer with no screen attached and saving what it drew. The exception is the R1’s home page, which is a real screen capture saved off the device on October 5.
The large one, BLUE, Gorbo, Moloc, Bob, Glim, Pell and the street were run against their real saved state from September 27 and 28. Anything newly said, dealt, fed or smoked in one of those pictures happened in the render and never on the real machine. The transmission lists, the ledger, the library and the scrapbook are the saved records themselves. The small one’s version-one pictures are his real firmware on his real save, with a stand-in radio, and the row of five ages is that firmware on an edited copy of the save. His version-two pictures are the new firmware on the migrated save. Spruse and Walker are scripted scenes on their test rigs, Blinky is a crop of his build’s preview, and the rabbit’s own page is a fresh hatch on his rig. The day-one pictures of Gorbo and the close-up of his hat are crops of the preview image from September 14.


