Model setup: grid, types and vacancies
Schelling's model places agents of two (or more) types on a 2D grid, originally a checkerboard, with a fraction of cells left empty to allow movement (density typically 90-95% occupied). Each agent occupies one cell and has a fixed type — nothing more complex than a label; the model deliberately strips away economic or personal detail to isolate the effect of a single mechanism, evaluated over the Moore neighbourhood (the 8 surrounding cells).
The satisfaction function and similarity threshold
Each agent evaluates its own satisfaction by looking at its occupied Moore neighbours and computing the fraction that share its own type:
similarity(agent) = (# same-type occupied neighbours) / (# occupied neighbours) satisfied if similarity(agent) ≥ τ unsatisfied if similarity(agent) < τ // τ = similarity threshold, e.g. τ=0.3
The crucial, counter-intuitive parameter is τ. Note what τ = 0.3 actually encodes: an agent is perfectly happy in a neighbourhood that is 70% different from itself — a tolerant preference, nowhere close to demanding homogeneity. Schelling's original insight is precisely that this mild, tolerant threshold is still enough to produce near-total segregation once the dynamics run. Each tick, unsatisfied agents shuffle order and relocate to a random (or, in the "optimizing" variant, the best) vacant cell that satisfies τ, repeating until no unsatisfied agents remain.
Tipping points: why 30% produces 70%+ segregation
The mathematics comes down to a positive feedback loop. Consider a mixed neighbourhood near the tolerance boundary: when one minority-type agent moves out because it dipped just below τ, the local composition shifts slightly toward the majority. This makes the next minority neighbour's similarity score drop further, pushing more agents below τ, triggering more moves, further shifting composition. The neighbourhood "tips" from mixed to homogeneous in a runaway cascade, even though every individual step only required crossing a fairly permissive threshold.
| Threshold τ | Individually tolerant? | Emergent segregation |
|---|---|---|
| 0.10 | very tolerant | mild clustering |
| 0.30 | accepts 70% different | strong segregation |
| 0.50 | wants a slim majority | near-complete segregation |
| 0.70 | demanding | complete, may not converge |
The key lesson: there is no proportionality between individual preference strength and collective outcome — a hallmark of tipping-point dynamics found across social systems, from Granovetter's threshold models to financial contagion.
Measuring segregation: the dissimilarity index
To track segregation quantitatively, the standard statistic is the dissimilarity index D, borrowed from urban sociology: D = 0.5·Σᵢ|Aᵢ/A − Bᵢ/B|, where D ∈ [0, 1] — 0 is a perfectly even distribution, 1 is complete segregation. D has an intuitive interpretation: it's the minimum fraction of one group's population that would need to move to achieve an even distribution. Real-world American metropolitan areas historically measured D values of 0.6-0.8 for Black-White segregation — remarkably close to what Schelling's simplistic toy model produces from nothing more than τ ≈ 0.3-0.5.
What the model does and doesn't explain
Schelling's model is deliberately minimal — no income, no discriminatory institutions, no history of redlining. That minimalism is the point: it isolates one mechanism and proves it alone is sufficient to produce strong segregation, without claiming it is the only mechanism in real cities or exonerating discriminatory housing policy. Because segregation here is a collectively emergent equilibrium and not simply the sum of individually extreme preferences, breaking it requires intervention at the systemic level — small, individually rational choices will not spontaneously reverse the tipping-point dynamic once it has locked in.
Frequently asked questions
Does Schelling's model mean people have strong prejudices?
No — the model is usually cited to make the opposite point. A threshold like τ = 0.3 means an agent is perfectly happy in a neighbourhood that is 70% different from itself, a tolerant preference nowhere close to demanding a homogeneous neighbourhood. Schelling's insight is that this mild, tolerant threshold is still enough to produce near-total segregation once the dynamics run, so observing segregated output does not imply strong individual bias.
Why does a 30% similarity threshold produce 70%+ segregation?
Because of a positive feedback loop. When one minority-type agent near the tolerance boundary moves out, the local composition shifts slightly toward the majority, which pushes the next minority neighbour's similarity score down further, triggering more moves and more shift. The neighbourhood tips from mixed to homogeneous in a runaway cascade, even though every individual step only required crossing a fairly permissive threshold.
What is the dissimilarity index and what does it measure?
The dissimilarity index D = 0.5·Σᵢ|Aᵢ/A − Bᵢ/B| is the standard urban-sociology statistic for segregation, ranging from 0 (perfectly even distribution) to 1 (complete segregation). It has an intuitive meaning: D is the minimum fraction of one group's population that would need to move to achieve an even distribution across all cells. Historical American metropolitan D values of 0.6-0.8 are remarkably close to what Schelling's simplistic toy model produces from τ ≈ 0.3-0.5 alone.
Try it live
Everything above runs in your browser — open Schelling Segregation and adjust the grid size and tolerance threshold to watch tipping points form. Nothing is installed, nothing is uploaded.
▶ Open Schelling Segregation simulation