Dev log
Moving together isn't acting together: how to tell when a group is really a group
Watch a school of fish turn all at once, or a flock of starlings ripple
across the evening sky, and it is hard not to feel that you are watching
something bigger than the individual animals. We say the group is "more than
the sum of its parts". Scientists call this *emergence*.
But here is a question that turns out to be surprisingly hard: **how would
you actually prove it?**
Things move together all the time without influencing each other at all.
When a football match ends, sixty thousand people head for the exits at the
same moment. They are not coordinating; they all just heard the final
whistle. When bad news hits, thousands of investors sell at once, without
any of them copying the others. Two parts of your brain may light up
together simply because they are both responding to the same thing you just
saw.
So when we see a group behaving as one, are its members genuinely
coordinating with each other? Or are they all independently reacting to the
same circumstances? I have been working on a way to answer that question, and testing it as hard as I could on both simulations and
real animals. This post explains what I found.
The trouble with measuring emergence
Over the last twenty years, researchers have developed elegant mathematical
tools for detecting emergence. Most of them ask one question: *does the group
as a whole follow its own simple, predictable rule?* If you can forecast the
group's next move from the group's own past, without tracking every member,
the group is said to be emergent.
That sounds reasonable until you try it on something boring.
Take a crowd of dots that completely ignore each other, each wandering at
random. Their *average* position still drifts smoothly and predictably,
because the random wobbles of individual dots cancel out. By the standard
tests, this crowd counts as emergent, even though nothing in it interacts
with anything.
This isn't a hypothetical worry. In 2025, a team at Imperial College London
(Liardi and colleagues) worked it out exactly. They showed that a widely
used emergence criterion rates the average position of non-interacting
random walkers as emergent. Their conclusion was that these measures detect
*autonomy*, meaning the group has a predictable law of its own, rather than
*interaction*. How to tell the two apart was left as an open problem.
That is the problem I set out to solve.
The idea: give the group a twin
The idea is simple enough to explain at a dinner party.
To find out whether interactions made a group's behaviour, compare the real
group with its **no-interaction twin**: the same members, behaving exactly as
they would on their own, but with every interaction switched off.
A fish in the twin still avoids the walls of its tank. It still has its own
habits, its own preferred speed, its own tendency to keep turning in the
direction it was already turning. It simply ignores the other fish.

*Left: a real group whose members align with their neighbours. Right: the
same members with interactions switched off. (Schematic.)*
Then ask: does the twin behave like the real group?
* If it does, the interactions didn't add anything. Everyone was just doing
their own thing, and the group-level pattern would have happened anyway.
* If it doesn't, the interactions made the difference.
I turn this comparison into a single number, the **interaction share**. It
measures how much of the twin's error in predicting the group, only the real,
interacting system can remove. It runs from 0 to 1:
* **0** means the twin explains everything the group does;
* **1** means the behaviour exists only because the members interact.
First test: walkers tied together by springs
Liardi and colleagues proposed a simple benchmark: a row of walkers tied
together by springs. It is simple enough that the interaction share can be
calculated exactly, with pen and paper, for any number of walkers and any
spring strength.
The result is clean, and a little surprising:
* **The average position of the walkers scores exactly zero**, no matter how
strong the springs are. Each spring pulls equally in both directions, so
the forces cancel out in the average. The walkers are definitely
interacting, but the interactions do nothing to the average. The
interaction share says exactly that.
* **The way the walkers vibrate against each other scores higher and higher
as the springs get stronger.** That vibration exists only because of the
springs, and the measure picks it up.
The older measure gets this backwards. For the average position it gives
its highest score when nothing interacts at all, and its score *drops* as
the springs get stronger, even though the average's behaviour never
changes.

*Left: the interaction share is exactly zero for the average position and
rises with spring strength for the vibrations. Right: the older measure (Ψ)
is highest when there is no interaction at all.*
I also wanted to be sure the "exactly zero" wasn't a quirk of the
simple springs. So I proved a more general version with a computer proof
assistant (Lean 4), which checks every step of a mathematical argument
mechanically. The result holds for *any* pair of forces obeying Newton's
third law, where every push comes with an equal and opposite push back.
Stress testing, with the rules written down first
A new measure is easy to fall in love with, so I tried to make it fail.
For every test, I wrote down my predictions and the pass/fail thresholds
*before* running anything, and I report every result, including the
failures. Scientists call this pre-registration. It is the best protection
I know against fooling myself.
The tests included:
* **Building the twin from data alone.** In the real world you can't switch
interactions off, so the twin has to be estimated from recordings of the
interacting group. This works well if you model interactions explicitly.
Done carelessly, the twin quietly absorbs some of the interaction and the
measure gives false alarms, which is worth knowing.
* **Sudden collective order.** I used a magnet whose atoms suddenly line up
as it cools, and oscillators that suddenly fall into sync. In both, the
interaction share climbs from zero to nearly one at exactly the point
where collective order appears.

*The interaction share rises from 0 to 1 right where order appears (dashed
line), in a magnet (left) and in synchronising oscillators (right).*
Across these tests, **31 of 32 pre-registered predictions passed.**
The one failure was the most useful result of all. With oscillators that
each have a different natural rhythm, the original comparison turned out to
be subtly unfair: the twin's forecast depended on *which* oscillators made up
a fluctuation, information the group-level rule could never use. I fixed
this with a "projected" version of the measure that compares like with like.
On a fresh set of pre-registered predictions, the fixed version passed every
one.
The real test: real fish
Simulations only go so far. The real question is whether this works on
animals.
I used two publicly available datasets of fish tracked on video, with every
animal's position recorded many times a second:
* adult fish in groups of 8 and 39 (Puy et al., 2024);
* juvenile zebrafish in groups of 60, 80 and 100 (Heras et al., 2019).
For each recording I fitted a model of how each fish behaves on its own and
how it responds to its neighbours. Then I built its twin and measured how
aligned the school is.
The key safeguard is what I call a **virtual school**. I take each fish's
real path and shift it in time, so all the fish shared the same tank but
never actually swam together. A virtual school contains real fish with real
habits, in the real tank, without any interaction. If the method is sound,
virtual schools should score about zero.

*Each dot is one recording. Real schools (blue) score well above zero;
virtual schools of the same fish that never swam together (green) sit at
zero.*
Across 17 recordings and two species:
* **real schools scored between 0.18 and 0.89;**
* **virtual schools scored between −0.10 and 0.05**, essentially zero, every
time.
I also simulated artificial schools where I knew the right answer, and ran
them through the same pipeline as if they were real data. The method
recovered the known answers. The juvenile zebrafish score lower than the
adults, which fits the data: their groups are looser and less aligned.
What didn't work
I also tried pigeons: GPS tracks of flocks of ten birds circling their loft.
The real flocks scored high and the virtual flocks scored about zero, which
looks encouraging. But I couldn't build a believable twin. Every model I
fitted produced simulated flocks that fell apart and drifted hundreds of
metres apart, while the real birds stayed within a few metres of each other.
After the first pigeon attempt, I added a rule, written down before each
later run: a result only counts if the fitted model can actually reproduce a
cohesive group. It never could, so I don't claim anything about pigeons.
I think this matters as much as the successes. **The method is only as good
as the twin**, and the method itself tells you when the twin can't be
trusted.
Why this matters
The same question, *real coordination or common cause?*, comes up across
science and everyday life:
* **Animal behaviour:** is a herd fleeing together because animals follow each
other, or because they all saw the same predator?
* **Markets:** are traders herding and copying each other, or all reacting to
the same news? The answer matters for how crashes start and how to prevent
them.
* **Brains:** are two brain regions working together, or are both just driven
by the same input? That distinction is central to mapping how the brain
works.
* **Robot swarms:** does a fleet of drones coordinate because of its designed
communication, or because of a shared environment?
* **Public health and society:** do behaviours spread from person to person,
or do people simply respond to the same events?
To be clear, so far I have only validated the method on fish. The other areas
are where I think it could help next, not results I have.
What's next
There is plenty left to do:
* richer models of individual behaviour, so tight flocks like pigeons can be
analysed;
* groups that move in three dimensions, such as insect swarms and fish in deep
water;
* pilot studies on financial and neural data;
* an open-source toolkit with the safeguards built in;
* peer review, the real test of any idea.
The takeaway
A group can look coordinated without any of its members influencing each
other. The tools we had couldn't tell the difference, because they asked
whether the group follows its own rule, not where that rule came from.
The interaction share asks the second question directly: compare the group
with its twin, the same members acting alone. On the standard benchmark it
gives exactly the right answer, backed by a machine-checked proof. It passed
31 of 32 pre-registered stress tests, and it cleanly separated real fish
schools from groups that never interacted, in two species and in groups from
8 to 100 fish.
**Autonomy is not interaction, and now there is a way to tell them apart.**
---
*The full white paper, "Telling Coordination from Coincidence", has the
details, figures and references. The fish data come from Puy et al. (2024,
PNAS) and Heras et al. (2019, PLoS Computational Biology), the pigeon data
from Nagy et al. (2013, PNAS), and the reference system from Liardi et al.
(2025, arXiv:2504.10372). Thank you to all of them for making their data and
work openly available.*