Zipf's law and sound change: language hall (3D)

Columns rise as words are used more often (Zipf), while speakers on a dais switch between two pronunciations by chance and prestige.

Switch to 2D

Presets

Playback

Words (Zipf model)

Sound change (community)

Playback

Camera

Layers

Quality

Model check

The science

Words: the rich-get-richer (Simon / Yule) model

Every new token is either a brand-new word (probability alpha) or a copy of a uniformly chosen earlier token. Choosing an earlier token uniformly means a word is copied in proportion to how often it was already used. This preferential attachment gives a power law: counts follow f(r) ~ r^-(1 - alpha) in rank r (the Zipf exponent is 1 - alpha, near 1 for small alpha), the vocabulary grows linearly V = alpha n (Heaps' law in this simple form; real texts grow slower because real coinage slows down), and the expected count of a word that appeared at token t0 is prod (1 + (1 - alpha)/t), about (n/t0)^(1 - alpha). Check 1 tests V, check 2 compares the engine with that exact product, check 3 fits the Zipf slope (only asymptotically exact, so it has a finite-size tolerance).

One run is noisy: the very first words have the longest time to be copied, so the top word can hold a large share (press New random history to see other outcomes); the exponent is an average property, which is why checks 2 and 3 use many histories or a long run.

Sounds: neutral drift and prestige in a Moran model

A community of M speakers uses variant A or B of one sound (for example th versus f). Each step one speaker is replaced by a learner who copies a random speaker, choosing A with probability pA = p(1+b) / (p(1+b) + 1 - p) where p is the current share of A and b the prestige bias. This is the Moran process with relative fitness r = 1 + b. With b = 0 the variant takes over with probability exactly equal to its starting share (a martingale), purely by chance, and small communities drift to fixation much faster than large ones. With b not 0 the takeover probability is (1 - r^-i)/(1 - r^-M) with i the starting count. Innovation mu flips a learner's choice at random and keeps variants alive forever (the takeover tally is switched off then). Checks 4 and 5 compare thousands of simulated communities with these formulas.

Honest simplifications

Real vocabularies also depend on topic, grammar and borrowing; real sound change is gradual and phonetically conditioned and does not copy single speakers at random. Both models are minimal null models: they show what chance and copying alone produce, which is the baseline linguists compare real data against. Word forms on screen are generated from a syllable table and carry no meaning.

What you see in 3D

Each column is one of the twelve commonest words; its height is its count relative to the commonest word, so the Zipf drop-off is visible as the columns fall away. The pawns on the dais are the speakers (orange = variant A, blue = variant B); the pawn that was just replaced jumps. The numbers come from the same engine as the 2D page.

Loading model...
Loading Blender model...
Rank-frequency curve (log-log) with the Zipf slope 1 - alpha
Vocabulary growth against Heaps' law V = alpha n
Twelve replicate communities: share of the new sound variant
Takeover probability against starting share (Moran formula)
Made with 🟠 Blender · Three.js