Omnilogic Labs

RESEARCH // LANGUAGE-EMERGENCE SIMULATION

When two languages share a space, does a common tongue emerge — or does the space fracture?

Language is a coordination problem: a word means what it means only because a community agrees that it does. When populations with different starting languages come into contact, that agreement has to be renegotiated, locally, between neighbors. Sometimes a shared language emerges. Sometimes the population self-segregates into linguistically homogeneous enclaves and the shared language never forms.

This thread is an academic collaboration. We built a simulator to ask what governs which way it goes — and how much of the outcome is driven not by the speakers themselves but by the geometry of who can talk to whom.

FIG. AGENTS_ON_A_LATTICE
REF: LES-00Spatial lattice of agents carrying competing lexicons, with emergent linguistic enclaves forming

01 // The question

A genuine research question, not a product brief.

Immigrants and native speakers sharing a city have to negotiate meaning with whoever is adjacent. The agreement is never struck once, globally — it is struck a thousand times, locally, between neighbors. That local structure is the whole point.

The question, stated plainly: what governs whether contact between two language communities resolves into a shared tongue or fractures into segregated enclaves? And how much of that outcome is a property of the speakers versus a property of the space they occupy — the geometry of who can talk to whom?

The knob that turns out to matter most is not the one you would reach for first. That is the kind of finding this instrument exists to produce: know which knob to turn before you turn it.

02 // The approach

Agent-based modeling on a lattice.

We built a simulator in the tradition of the Naming Game — the canonical model of how a population converges on shared conventions — and crossed it with Schelling-style spatial dynamics, the classic model of how mild local preferences produce stark global segregation. Agents live on a spatial lattice, each carries an internal lexicon, and interaction is local: you negotiate meaning only with whoever is adjacent. Two populations begin with different languages, so the spatial arrangement is itself a variable in the outcome.

REF: LEVER-01
hub

Linguistic homophily

A Schelling-style tendency for agents to prefer — or relocate toward — linguistically similar neighbors. This is the mechanism that can turn a mixed lattice into segregated enclaves from purely local preferences.

REF: LEVER-02
tune

Graded success policy

How communicative success translates into lexicon updates — including a graded Gaussian variant rather than a hard hit/miss, so partial mutual intelligibility behaves realistically. This is the knob that quietly moves the whole regime.

REF: LEVER-03
swap_horiz

Linguistic migration

Agents moving in response to communicative pressure — closing the loop between language and geography. Speech reshapes where people live, and where people live reshapes speech.

03 // What makes it a real instrument

An instrument, not a toy.

Two properties separate this from a demo. The same parameters and seed produce the same trajectory every time — for an academic collaboration that is non-negotiable, because a result you cannot reproduce exactly is not a result. And the simulator measures rather than gestures: it computes live metrics over the interaction network and runs community detection to identify emergent linguistic communities as they form, dissolve, or harden.

  • Determinism: runs fully seeded through a deterministic random-number source — same params + seed → same trajectory.
  • Community detection (Louvain) over the interaction network, tracking enclaves as they form and harden.
  • Parameter sweeps and hypothesis presets to run real experiments, not one-off renders.
  • CSV / JSON export so results are analyzable and write-up-ready.
SPEC_ID: LES-RUNTIME
// SIMULATION CORE
BASE MODEL: NAMING GAME × SCHELLING
SUBSTRATE: SPATIAL LATTICE // LOCAL INTERACTION
SUCCESS POLICY: HARD | GAUSSIAN (GRADED)
COMMUNITY DETECTION: LOUVAIN
REPRODUCIBILITY: SEEDED // DETERMINISTIC
EXPORT: CSV / JSON

04 // What we learned

Geometry is a first-class driver.

REF: FIND-01
grid_on

Geometry decides.

The same population mix, the same success policy, and only a different spatial arrangement can be the difference between convergence and fracture. Language emergence cannot be studied as if speakers were a well-mixed gas.

REF: FIND-02
show_chart

Graded success shifts the regime.

Replacing hard hit/miss communication with a Gaussian success policy moves where the system tips between assimilation and segregation. Partial intelligibility is not a rounding error — it is a phase control.

REF: FIND-03
scatter_plot

Segregation is emergent.

Enclaves form from purely local preferences — not because they were an input, but as an emergent equilibrium. The result echoes Schelling's original and unsettling finding.

05 // Status & where it is going

Deeper into the parameter space.

Active work with our academic collaborator is characterizing the phase boundary between assimilation and segregation, and testing specific hypotheses about how mobility and homophily trade off against each other. The instrument is built to be handed to researchers, so the direction is more and sharper experiments rather than more features — tune to the right signal, then run.

STATUS: ACTIVE // ACADEMIC COLLABORATION // INSTRUMENT IN USE
AGENT-BASED MODELINGREPRODUCIBLECOMMUNITY DETECTIONPHASE BOUNDARY
FIG. SIMULATION_RUNTIME
REF: LES-RUNCollaborative simulation runtime: deterministic stepping over a shared agent state

06 // Adjacent threads

The same instinct, applied elsewhere.

The discipline behind this thread — deterministic runs, real measurement, and the conviction that a result you can't reproduce isn't a result — is the same one that shapes our build practice. It runs through our work on real-time collaborative simulation, and through the reproducibility and evaluation-corpus methods we bring to client systems where every output has to be versioned, not vibed.