▸ 4 September 2026 · Dr Joni Sytsma

The secret language of birds

What if every drone in the flock had a brain the size of a real bird's? Not a clever brain. A bird one. We put a very small language model on every aircraft in the simulator and asked it to flock. The plain code won, which is a better result than it sounds.

I have watched birds my whole life. Not in an ornithological way, with a notebook. In the way you watch something you happen to be near for long enough that you start noticing the rules.

The one I keep coming back to is from Canberra. Crimson rosellas move in pairs, and the leader calls and the follower answers. You almost never hear the answer without the call. That is the whole protocol. Two birds, one call, one answer, and out of it comes a pair that stays together across a landscape neither of them has a map of.

A flock is that same trick at scale. No leader in the sense of somebody in charge, no channel allocation, no plan. Each bird knows roughly where its neighbours are, hears a short call now and then, and decides for itself what to do next. From the outside it looks organised. From the inside it is nothing but local decisions.

And here is the part that got me, which is also the part that started this whole experiment. Birds do this with a brain that weighs about as much as a five cent coin. A galah is not solving a distributed consensus problem. A galah is barely solving lunch. Whatever a flock is doing, it is not doing it with intelligence, because there is not enough of it on board.

So the question I actually wanted to answer was not “can a language model fly a drone”. It was: what happens if every aircraft in my simulation has a brain the size of a real bird’s? Not a good brain. A bird brain. Small, fast, a bit dim, and light enough to actually fly.

Our aircraft already speak most of it

I was not sitting there wishing we could invent a new language for the drones. We already have one, it is boring, and it is already flying.

Every aircraft we operate broadcasts, continuously, over the telemetry link:

Which is to say: I am here and I am me. I am full, or I am hungry. I am doing this.

That is not an analogy I am reaching for. Those are the same four things a bird says all day. The one thing our aircraft never say is something is over there, and that is the only piece missing.

The messages are not the problem. The problem is that nobody is listening to them except us. All of it goes down to a ground control station, gets drawn on a map for a human, and the aircraft flying two hundred metres from each other never exchange a word. Each one is alone in a formation, which is a very expensive way to be lonely.

Fix that and useful things fall out. An aircraft on station gets hungry and says so. The first one on the ground to hear it answers: come home, I will take your place. Everyone else hears the exchange and stands down. That is a persistent capability with nobody at a keyboard managing the roster, and no central authority deciding whose turn it is, which matters because a distributed system with a central authority is just a centralised system with extra steps and a worse failure mode.

Or the willingness to go and look, which is the one that is actually hard. It should depend on your own energy, on how far away the thing is, and on how much it costs you to get there rather than how far it is. Climbing straight up is expensive. Reaching the same point along a shallow slope is cheap. Animals decide this way constantly, because locomotion in nature is an energy decision, and it is a better model than distance.

So we tried it, and the birds were not clever enough

The setup: a very small language model on each aircraft, a one page standing order in plain English, and a fixed vocabulary of about fourteen words. Python does the plumbing. It reads the telemetry stream, works out relative bearings and ranges, and reduces the whole firehose down to five short lines. The model reads those five lines, answers with one word, and Python turns the answer back into a command.

Fourteen words is not a limitation I imposed to be clever. It is roughly what a flock uses. If your protocol needs a bigger dictionary than a magpie, you have probably designed it wrong.

We wrote thirteen scenarios, one per rule, and ran everything from a 1B model to a 14B, at temperature zero, on our own hardware.

The results were not flattering.

A 1B model is not a candidate at all. It reads the situation and hands it straight back to you, or repeats the question, rather than answering it. Genuinely bird brained, and not in the way I wanted.

A 3B model read the first rule and stopped. Given fourteen rules in priority order, it answered with the action attached to rule one for almost every scenario, without ever checking whether the condition was true. It is not being lazy. It is doing pattern completion, and rule one is the strongest pattern in the prompt. It is the model equivalent of a seagull that has learned chips come from humans and has stopped evaluating whether this particular human has chips.

The best result was 11 out of 13, on a 14B. Which sounds respectable until you remember what it is attached to. Eleven out of thirteen is a coin flip you lose twice an hour, bolted to an aircraft.

And the failures cluster somewhere embarrassing. Almost everything that still fails is counting. Comparing a number to a threshold is the weakest thing a small model does, and in hindsight it should never have been asked to do it. If you tell a model “the contact is one of ours: no”, it will still answer as though it were one of ours, because the words one of ours are sitting right next to the answer that goes with them. Rephrasing so each fact has exactly one value fixed that outright, and that single change was worth more than every other prompt edit combined.

The good news, such as it is: context was never the problem. The whole standing order is 250 to 750 tokens. There is enormous room to spare. It does not choke on the size. It chokes on following it.

The bit that killed it is not the accuracy

Here is the constraint that decides this, and it has nothing to do with how well the model scored.

A real bird’s brain weighs about two grams and runs on seeds. A 14B model needs a GPU, a heatsink and a power budget that belongs in a rack, not in an airframe I have to get off the ground and bring back. I cannot fly it. Not “it would be inconvenient to fly it”. Cannot. The moment you put a server class accelerator on every aircraft, you are not building a flock, you are building a very expensive kite with a cooling problem.

So the honest position is that the model has to be small enough to fly, and small enough to fly is currently too dim to be trusted with the aircraft.

And then the plain code won, which is the actual finding

My own first objection to this idea was that all of it could be ordinary deterministic code, and I said so out loud before we started. Loudly. To several people who did not ask.

The testing says I was mostly right, and that is a genuinely useful result. Every rule with a crisp threshold belongs in Python, not because the model is not clever enough, but because those rules have a correct answer, and a correct answer should never be sampled. Collision avoidance, energy cut offs, landing order. None of that goes near a model, ever.

We built the prototype so it runs with no model at all, purely so there was always a baseline to beat. On every scenario we have written, the 14B agrees with that plain Python baseline every single time.

Read that twice, because it took me a while. The clever version and the dumb version make identical decisions. Either our scenarios are too easy, or the model is not adding anything a couple of hundred lines of code was not already doing.

If it is the second one, that is not a disappointment. That is a flock behaviour that costs no GPU, no extra mass, no extra power and no extra money, running on the autopilot that is already bolted to the aircraft. I would take that result over a working demo, because a working demo would have needed a rack on every airframe.

The reason we could ask the question at all

This is the part I would quietly like you to notice.

Running thirteen scenarios against five model sizes is nothing. The reason it took an afternoon rather than a quarter is that we fly a very large number of aircraft that do not exist. In the week of 3 to 10 September we completed 32,749 simulated sorties, running real autopilot code, unattended, on hardware sitting in our own office in West End.

Not thirty two thousand aircraft in one sky. Thirty two thousand flights, one after another, across a rack we own, while everyone was asleep or at lunch or arguing about solder.

That is the actual capability, and the bird experiment is just one thing we pointed it at. When we change a control law, we do not have a meeting about whether it will work. We fly it a few thousand times before morning tea and look at the numbers. It is the least glamorous competitive advantage imaginable and it is the one I would least like to give up.

Which makes it a very good student project

Not everything that does not work should be dropped. Some of it should be handed to somebody with fresh eyes and a semester.

We have a rule about students here: their work is never on the critical path. Critical path is a full time employee’s job, because you can never be certain of an outcome. Off the critical path is where you get to teach someone properly, and every so often the technology moves anyway. Small models get better every few months, and the SWaP-C wall moves with them.

This one is ideal for it. It is self contained, it runs on a laptop before it goes anywhere near an aircraft, the interesting question is genuinely open, and a negative result is a complete result. If a student comes back and tells me a language model adds nothing over two hundred lines of plain Python, I will take that finding and be glad of it. I would rather have that than a demo that only works when the person who built it is driving.

It is on our projects site now, with the whole thing written out: what you would actually do, what you would learn, what you would hand back, and a straight talk section on everything it is not.

The secret language of birds, on projects.rocketfastdrones.com

There are twenty three projects on that site across the engineering side of the house. Placements are open to Australian citizens and permanent residents, which is stated up front rather than buried, for reasons that are about export control and not about anything else.

It is named after an Ian Anderson song, which I have had stuck in my head for the entire time we have been working on it. That is the only part of this I am completely confident about.

All posts