Skip to content
Mental Models

Emergence

Simple Rules, Surprising Wholes

How a handful of local rules generate global order — boids flocking, Schelling's segregation grid, Conway's Life — and why you can't read off the whole by studying one part.

12 min Updated Jun 26, 2026

Last lesson we drew the line between the micro level (the parts and what each one is doing) and the macro level (the pattern that exists only in the group), and we learned to tell a real emergent property — wetness, a flock — from a mere aggregate like the total weight of a brick pile. Good. The definition is sharp now. But a definition just tells you what to call the thing. It doesn’t show you the trick.

This lesson is the engine room. We’re going to actually run the machine — twice — and watch dumb local rules manufacture a global pattern in front of you. By the end you’ll have felt, in your own hands, the single most counterintuitive fact in the whole subject: you can know every rule perfectly and still have no idea what the group will do until you let it run.

Local rules, global order — the core move

Here is the entire mechanism of emergence, stripped to one move:

Tip:

The engine, in one sentence

Each part acts only on local information. No part can see the global pattern, and no part is trying to produce it. Yet the interactions, repeated across the whole population, generate order at the level of the whole. That order is the emergent pattern — grown from below, designed by nobody.

Read it again, because every word is load-bearing. Local information: a boid sees a few neighbours, not the flock; an agent checks the cells next door, not the city. No global view: nothing in the system has the big picture. No intention to produce the pattern: there is no rule called “flock” or “segregate” — those words name what we, the outside observers, see afterward. The parts are just following their tiny rules; the pattern is a side effect of the interactions piling up.

The rest of this lesson is two demonstrations of exactly this and one famous footnote. Play with both. The difference between reading that simple rules make complex wholes and watching it happen because you turned a slider is the difference between a fact you can recite and a model you can use.

Boids: a flock from three rules

In 1986 a computer graphics researcher named Craig Reynolds wanted flocks for animation, and he was too lazy to choreograph a thousand birds by hand. So he didn’t. He gave each simulated bird — he called them boids — three rules that each use only nearby neighbours, set them loose, and let the flock build itself. The technique is now everywhere from Batman Returns bat swarms to crowd-simulation software. Three rules:

  • Separation — steer away from neighbours that are getting too close. (Don’t collide; respect personal space.)
  • Alignment — turn to match the average heading of your neighbours. (Go roughly the way the crowd is going.)
  • Cohesion — drift toward the average position of your neighbours. (Don’t get left behind; close the gaps.)

That’s the whole brain of a boid. Notice what is not in the list: there is no rule called “form a flock,” no rule “don’t split,” no rule “look graceful banking around the predator.” No boid knows the flock exists. The flock is a thing that happens between the boids when these three local pulls fight to a balance — too much separation and they repel into a nervous gas, too much cohesion and they collapse into a clump, but tuned together they produce that liquid, banking, self-healing whole.

The three sliders below are the three rules. You are never steering a bird — you’re editing the rules every bird obeys, and then watching the group reorganize itself in response.

Three rules, one flock

Three rules, one flock

Every dot obeys the same three local rules — and nobody's in charge. Tune separation, alignment and cohesion, then watch a coordinated flock fall out of the rules with no leader anywhere.

Separation 50, alignment 50, cohesion 40 — three local rules, one flock with no leader.

Each boid sees only its near neighbours and follows three local rules — separation, alignment, cohesion. There is no rule called 'flock.' Push the sliders and you edit the interactions, not the group; the global pattern reassembles itself around whatever rules you set. (Reduced-motion: shown as a settled still frame.)

Drive it like an experiment, not a screensaver. Here’s a map of what to try and what the group does:

Slider settingWhat each boid is “thinking”What the flock does
All three up (separation + alignment + cohesion high)“Match the crowd, stay close, don’t crash”A tight, coherent flock that banks and turns as one — the murmuration look
Alignment + cohesion off, separation only”Just don’t let anyone near me”A nervous, spread-out gas; boids endlessly avoid each other, no group at all
Cohesion high, separation low”Get to the middle, ignore crashes”A dense, jostling clump that collapses inward
Alignment high, cohesion + separation low”Point the way they point, ignore distance”Boids drift in loose parallel streams that don’t hold together

The lesson lands the moment you accept the punchline: there is no “flock” rule anywhere in the system, yet the flock is completely real — it has a shape, a direction, a way of splitting around an obstacle and sealing back up. All of that lives in the interactions between the three pulls, not in any boid. Change the rules and the whole reorganizes; you never touched a single bird.

Where, exactly, does the flock “live”? Not in any boid — open one up and you find three local rules and a heading, no flock. Not in any single rule either — separation alone gives you a gas, cohesion alone gives you a blob. The flock lives in the balance of the interactions across the population over time. That’s why it’s an emergent macro-level property: it’s real, it does things, and it is located nowhere in the parts list.

Pretest: predict the divided city before you run it

Now the headliner. But first — commit to a guess, because the whole point is about to hinge on your being surprised.

Before you read — take a guess

Imagine a checkerboard city of two groups of people. Each person follows one mild rule: 'I'm content as long as at least about a third of my neighbours are my own type — I just don't want to be a tiny minority. Otherwise I'll move to an empty spot.' Nobody minds living in a mixed neighbourhood; nobody is hostile. If everyone follows this gentle rule and we let the city shuffle until people stop moving, what does the city look like at the end?

Hold onto whatever you picked. Now go find out.

Schelling’s segregation: a mild preference → a divided city

In 1971 the economist Thomas Schelling (later a Nobel laureate) built a model so simple he originally ran it with coins on a paper grid. Two groups of people share a board. A few cells are empty. Each person looks at its immediate neighbours and asks one question: are at least a certain fraction of them my own type? If yes, it’s content and stays put. If no — if it feels like too small a minority — it moves to a random empty cell. Repeat until nobody wants to move.

The slider below is that one fraction — the tolerance threshold. Set it to 33%, which is barely a preference at all: “I’m fine being outnumbered two-to-one; I just don’t want to be a tiny minority.” Press Settle and watch the segregation index in the readout climb.

Local rules, global pattern

A mild rule builds a divided city

Set the tolerance to about 33% ('I just don't want to be a tiny minority'), then press Settle and watch the segregation index climb. Try other thresholds too.

Group AGroup BEmpty

Round 0: 79% of agents are happy; segregation index 48/100.

33%
Each agent moves only when fewer than its tolerance-fraction of neighbours match its type — a mild, individually reasonable rule. Watch the segregation index (0–100) settle far higher than the threshold. No agent wanted a divided city; the city emerged from everyone reacting locally.

What you just watched is the most important worked example in this course, so let’s slow it down.

A 33% threshold means every single agent would be perfectly content in a neighbourhood that’s two-thirds the other group. By any individual measure these are tolerant people. And yet the board settles into big, blocky, single-group regions with a segregation index typically up around 70–85 — more than double the preference that drove it. Trace tolerance against the rough outcome and the pattern is brutal:

Tolerance threshold (what each agent wants)What it means individuallyRough settled segregation (0–100 index)
0% (“I don’t care at all”)Happy anywhereStays roughly random — little to no segregation
~20% (“don’t be a tiny sliver”)Very tolerantMild clustering, still largely mixed
~33% (“don’t be a small minority”)Tolerant — fine being outnumbered 2:1Stark segregation, ~70–85 — the famous result
~50% (“at least half like me”)ModerateHeavy, near-total segregation
~70%+ (“clear majority like me”)DemandingAlmost complete separation into blocks

Why does a gentle wish produce a savage result? Cascades. When one agent moves out of a too-mixed spot, it changes the neighbour counts for the cells it left and the cells it joins. A neighbour who was just barely content is now nudged into the unhappy zone, so it moves too — and its departure unsettles someone else. Each move is locally reasonable; collectively they ratchet the board, one tip at a time, toward separation. Nobody is steering toward a divided city. The division is a side effect that nobody chose, riding on top of a rule everybody thought was modest.

Warning:

The uncomfortable payoff

Emergence can produce a macro-outcome that misrepresents the wishes of every single part. Every Schelling agent is tolerant; the city they build is segregated. So “the city is segregated, therefore the people must be bigoted” is a category error — it reads a macro-level pattern as if it were a micro-level intention. The pattern emerged from the interactions, not from anyone’s prejudice. (This does not mean real-world segregation is innocent — it means you cannot infer the cause from the pattern alone, which is exactly the trap lesson 5 disarms.)

You ran the grid at a 33% tolerance and it settled into heavy segregation (say a segregation index around 78). A friend looks over your shoulder and says, 'Wow, those little agents must really dislike each other.' What's the precise problem with that conclusion?

Conway’s Game of Life, in one breath

One more, fast, to make a different point: universality. In 1970 the mathematician John Conway put a grid of cells, each either alive or dead, under one local rule applied to every cell at every tick: a live cell with two or three live neighbours survives; a dead cell with exactly three live neighbours is born; everything else dies of loneliness or overcrowding. That’s it — one rule about counting your eight neighbours, no randomness, no input. Out of it crawl gliders that walk across the grid, oscillators that blink, “guns” that spit out a stream of gliders, and — this is the staggering part — configurations that perform logic, store memory, and add numbers. Conway’s Game of Life is Turing-complete: in principle you can build a working computer inside it, from one rule about neighbour-counting. The point isn’t to teach you to play it; it’s that the gap between “the rule” and “what can emerge from the rule” is not just large — it’s unbounded.

Why you can’t predict the whole by studying one part

So here’s the punchline that ties boids, Schelling, and Conway together, and it’s the precise limit of reductionism (the take-it-apart-to-understand-it strategy):

Knowing each rule perfectly does not let you foresee the global pattern. You can have the boid rules memorised and still not be able to say, on paper, that this obstacle will split the flock that way. You can know the Schelling rule is “stay if a third match” and still not be able to compute the final segregation index without running it. Conway’s rule fits in one sentence, and yet no shortcut exists that tells you whether a given starting pattern eventually dies, repeats, or grows forever — frequently the only way to find out what a system does is to actually run it, step by step, and look.

That last idea has a name: computational irreducibility. For many systems there is no formula that leaps to the answer — no cleverness that lets you skip the steps. The simulation is the shortest description of its own future. Studying one part, however thoroughly, can’t deliver the whole, because the whole is built out of the interactions unfolding over time, and there’s no compression of that unfolding.

This is the sharp edge of two ideas you already hold:

  • “The map is not the territory.” A perfect description of each part is still just a map of the parts. The territory — the running, interacting whole — has features (the flock’s bank, the city’s blocks) that aren’t on any parts-map and only appear when you let the territory run.
  • Natural selection, which you’ve met, is the same shape of thing from the other direction: a brutally simple rule — whatever copies itself more, becomes more common — applied across millions of years, producing eyes and wings and brains that no part planned. A simple-rule → complex-outcome algorithm, just like boids and Schelling. We’ll return to it as the headline case of design with no designer.

Pick the right option for each blank, then check.

In an emergent system, each part follows a rule using only nearby information, yet the appears at the level of the whole. Because there's often no shortcut, the only sure way to know what emerges is to and watch.

Pitfall: a complex outcome doesn’t need a complex cause

The deepest mistake this lesson should inoculate you against is the reflex to match the size of a cause to the size of an effect. A banking flock looks choreographed, so we hunt for a choreographer. A divided city looks deliberate, so we infer deep prejudice. A pattern that computes looks designed, so we assume a designer. In every case the cause is embarrassingly small: three local pulls, one tolerance threshold, one neighbour-counting rule.

Info:

Simple rules are enough

Complexity is not evidence of a planner. Order, intricacy, even apparent purpose can — and constantly do — emerge from simple rules interacting, with no controller, no blueprint, and no central intention anywhere in the system. When you meet an impressive global pattern, the first hypothesis should be “what local rules and interactions could grow this from below?”, not “who built it?”. Defaulting to a designer is the controller fallacy, and lesson 5 takes it apart in full.

When to reach for it

Pull this model out the moment you catch yourself explaining a group-level pattern by attributing it to the parts, or assuming a big effect must have a big, intentional cause:

  • You see organised collective behaviour — a market mood, a traffic jam, a viral trend, a flock — and your instinct says “who’s coordinating this?” Reach for it: ask instead what local rules each part follows and what those interactions produce.
  • A social or economic outcome looks intentional or malicious. Before assuming everyone wanted it, check whether mild local rules could cascade into it Schelling-style — the outcome may misrepresent every participant’s actual wishes.
  • Someone insists a complex or beautiful system must have been designed top-down. Reach for it as the counterexample machine: simple rules routinely generate unbounded complexity (Conway), self-organized order (boids), and surprising aggregate outcomes (Schelling).
  • You’re trying to predict what a system of interacting parts will do from first principles and getting stuck. That stuckness may be real (computational irreducibility) — the move is to simulate and observe, not to look for a cleverer formula.

Don’t over-apply it, though: some patterns really do have a single cause or a genuine controller (a thermostat sets the temperature; a CEO sets a policy). Emergence is the hypothesis to test, not the answer to assume — the skill is knowing when the order was grown from below versus imposed from above.

Quick recap quiz

Did the rules click?

Question 1 of 40 correct

A new colleague watches your Schelling grid settle from 'random' to 'sharply segregated' at a 33% tolerance and says: 'See? You can't trust simulations — a tiny tolerance can't possibly cause that much segregation; something else must be driving it.' Which response is correct?

Check your answer to continue.

Where this goes next

You’ve now run the machine twice and watched dumb local rules build wholes nobody designed — and you’ve met the limit it imposes: often you simply cannot shortcut your way to the global pattern; you have to let it run. That raises a sharp question. The boids and the Schelling grid are surprising, but are they mysterious? Could a patient enough mathematician, in principle, derive the flock from the boid rules — or is some emergence genuinely beyond derivation from its parts?

That’s the honest, non-mystical version of the philosophers’ fight, and it’s lesson 4: Weak vs. Strong Emergence. We’ll separate the weak kind — surprising, irreducible-in-practice, but in principle derivable from the parts and their interactions (everything you saw today) — from the much stronger and more contested claim that something like consciousness is genuinely irreducible. No mysticism, no overclaiming, both sides laid out fairly. See you there.

Mark lesson as complete