Study 6 · Four players · open start

MOSAIC LAB

complete

A simulation study of how Mosaic is actually played.

1,000,000
complete games played

Four AI seats plus one imaginary player (dealt goals and hands, never acting, never winning), zero humans. Each game seats four AI players drawn from a pool of six distinct personas — never a duplicate at the same table:

The Honest One · The Liar · The Hoarder · The Spender · The Hunter · The Opportunist

These are not language models. Nothing here is trained.

This is agent-based modeling of a board game, with generative AI as architect and analyst — an ongoing instrument for understanding how strategy, information, and deception emerge from the rules. Three standing questions:

  1. Do personality-driven agents actually behave in character?
  2. Is the game structurally fair?
  3. Is deception mechanically real strategy?

Current findings, in one line: goal colours are remarkably balanced, turn order carries a modest first-player edge (-0.3 points over moving last), and straightforward play is currently outperforming sustained bluffing (27.6% vs 23.1%).

The headline numbers

One batch, one master seed, four persona bots per table (drawn without repeats from the six).

30,762,800
moves simulated
27
median moves / game
-0.3pp
first-mover edge over moving last
70.5%
wins where an opponent had proven the winner's goal
28.7%
wins where the winner's goal never changed hands

The shape of a game

30,762,800 moves break down into 20,980,431 pattern placements (21.0/game) and 9,332,304 actions (9.3/game) — per-tile and per-action detail below in Every card's story.

7
fastest win (moves)
27
median game
94
longest game won by a chain
112
longest game of all

What "tile exhaustion" means. There is one shuffled draw pile of all 66 tiles — 45 patterns and 21 actions mixed together, minus the 15 dealt into hands — so nothing "runs out first". When that single pile is empty and every player passes in turn, the game ends and the longest chain wins. It's rare: 3.4% of games here.

How a victory gets shared. One move can complete seven-chains for more than one colour at once — a single tile bridging two finished runs. By rule, that moment crowns a single winner: the first qualifying seat in turn order from the player who moved. So shared victories arise one way: exhaustion ties. All 20,528 shared victories here were exactly that (20,528 of the 34,203 exhaustion endings were ties).

Why so few action plays, with three copies of each? Because most of the deck never leaves the pile: on average 15 of the 51 pile tiles are still face-down when the game ends — the chain race finishes long before the deck does, so typically fewer than two copies of any action even reach a hand. And an action costs its player's placement that turn (with some personas hoarding what they draw), so roughly half the actions that do reach a hand are still being held when the game ends.

Is moving first an advantage?

Win rate by turn position — counted across the real players only; the imaginary seats hold goals, never turns. Seats rotate who moves first across the batch, so position separates cleanly from seat.

Turn order

25% = fairMoves 1stMoves 1st: 24.8%24.8%Moves 2ndMoves 2nd: 25.0%25.0%Moves 3rdMoves 3rd: 25.1%25.1%Moves 4thMoves 4th: 25.1%25.1%
Victory share by position in the turn order, n=1,000,000 games (shared victories credited 1/k). Dashed line: the 25% a perfectly fair table would give every position.

Does any colour win more?

Goal colours are dealt randomly, so this measures the tiles and the board — not the players. Two views of the same result:

Colour fairness

25% = fairGoal RGoal R: 20.5%20.5%Goal GGoal G: 20.6%20.6%Goal BGoal B: 20.6%20.6%Goal YGoal Y: 20.4%20.4%Goal MGoal M: 20.9%20.9%
Chance each colour wins a game. Shared victories count for every winning colour, so these sum slightly above 100% — the overshoot is the shared-victory rate, explained below.

Colour fairness

25% = fairGoal RGoal R: 19.9%19.9%Goal GGoal G: 20.0%20.0%Goal BGoal B: 20.0%20.0%Goal YGoal Y: 19.8%19.8%Goal MGoal M: 20.3%20.3%
Each colour's share of all victories — normalized, sums to exactly 100%. Fairness claims on this page use this view. In-game, colours can be re-themed freely — these are the default set.

The shared victories behind the overshoot

20,500 of 1,000,000 games (2.1%) ended with multiple winners — every one an exhaustion tie: the deck ran out with two or more chains at equal length (a completed seven-chain always crowns exactly one winner, by rule). Real, not rounding noise — and exactly the amount by which the left chart exceeds 100%.

Which colours tie together: across 41,409 co-winning pairs, the most common are G+M (4,213), B+M (4,191), M+R (4,172). The mesh is essentially flat (4,065–4,213 per pair, within noise) — and the hidden pentagon, so loud in the bonus economy, is silent here (20,649 along the cycle vs 20,760 across). Ties are blind to colour structure.

The personas

Six personalities over four parameters. Four sit at each table. All six perceive the board identically (the same "skilled" awareness — public information only, no cheating) and all take a visible win instantly; personality is how they build, spend, bluff, and block — never what they can see.

Persona — BuilderThe Honest One

Never feints: every placement is scored for its true goal, full weight, from the first turn. Spends actions on an ordinary mid-game clock and blocks only what plainly needs blocking.

Bluff 0.00
Patience 0.40
Aggression 0.30
Greed 0.50

“The shortest path to seven is a straight line.”

Win rate 27.6%
Actions 2.6/gm
Bonus tiles 2.1/gm
Persona — DeceiverThe Liar

Until the mid-game, nine turns in ten it builds a decoy colour it was never dealt — paying real tempo to be misread. Prizes Rotate and Trade Goals, the tools that can make the lie come true. Still takes a visible win instantly, even mid-bluff.

Bluff 0.90
Patience 0.50
Aggression 0.40
Greed 0.50

“Everything it shows you is a choice.”

Win rate 23.1%
Actions 2.4/gm
Bonus tiles 2.0/gm
Persona — CollectorThe Hoarder

Sits on its action tiles until the endgame — or until a chain crosses the threat line, which panics it into spending. All those quiet turns go into placements: it out-builds and out-draws every other persona.

Bluff 0.35
Patience 0.95
Aggression 0.50
Greed 0.50

“Later is when everything is worth more.”

Win rate 26.5%
Actions 1.1/gm
Bonus tiles 2.9/gm
Persona — TempoThe Spender

Fires actions the moment they arrive — the board rarely stays the way an opponent left it. The cost is fewer placements of its own; the payoff is a table that can never settle.

Bluff 0.30
Patience 0.05
Aggression 0.40
Greed 0.50

“A tile in the hand is worth nothing.”

Win rate 25.7%
Actions 3.5/gm
Bonus tiles 1.7/gm
Persona — BlockerThe Hunter

Scores every placement against the biggest rival chain and reaches for Remove Pattern the moment one crosses its threat line — pressing 2.5× harder when it can prove whose chain it is.

Bluff 0.25
Patience 0.60
Aggression 0.95
Greed 0.30

“Your chain looks lovely. It would be a shame.”

Win rate 26.7%
Actions 2.0/gm
Bonus tiles 2.3/gm
Persona — HarvesterThe Opportunist

Weighs every placement by the bonus tiles it earns — multi-colour connections above all. Its game is an engine: more draws, more options, more board.

Bluff 0.40
Patience 0.50
Aggression 0.20
Greed 1.00

“Every connection pays somebody. Make it pay you.”

Win rate 24.9%
Actions 2.4/gm
Bonus tiles 2.3/gm

Personas

25% = fairThe Honest OneThe Honest One: 27.6%27.6%The HunterThe Hunter: 26.7%26.7%The HoarderThe Hoarder: 26.5%26.5%The SpenderThe Spender: 25.7%25.7%The OpportunistThe Opportunist: 24.9%24.9%The LiarThe Liar: 23.1%23.1%
Win rate per persona across every game it played. The dashed line is the fair-share baseline.

Style fingerprints

PersonaActions played / gameBonus tiles / gamePatterns placed / game
The Hoarder1.082.856.30
The Honest One2.622.105.03
The Hunter2.042.315.52
The Liar2.362.055.17
The Opportunist2.362.295.20
The Spender3.551.714.25
Style fingerprints — the behavioural signatures behind the win rates.

Two games, end to end

The extremes of the corpus, re-simulated from their recorded seeds and rendered from the game's own tile art. Every game in the batch can be reproduced this way.

Scenario · the fastest win

The same game as a race: each colour's chain, move by move

01234567chain length7 = win01234567moves of this one gameGoal RGoal GGoal BGoal YGoal M
Goal RGoal GGoal BGoal YGoal M
The fastest win — 7 moves (seed 10,006,340). Seven connected in barely more than one lap of the table; the race is a sprint from the deal.
Scenario · the longest chain victory

The same game as a race: each colour's chain, move by move

01234567chain length7 = win05101520moves of this one gameGoal RGoal GGoal BGoal YGoal M
Goal RGoal GGoal BGoal YGoal M
The longest chain victory — 94 moves (seed 30,087,171). A war of attrition: chains fall as well as rise (removals, moves, and rotations undo work), and the game ends the instant any line touches seven.

These are single-game timelines, not averages — each chart belongs to the board beside it.

The footprint

Where the games actually happen: every cell a pattern landed on, across the whole corpus, centred on the Prism (outlined). North is up; placement rules have no compass, and the glow says the games don't either.

(-10,10): 0 tiles landed(-9,10): 0 tiles landed(-8,10): 0 tiles landed(-7,10): 0 tiles landed(-6,10): 0 tiles landed(-5,10): 0 tiles landed(-4,10): 1 tiles landed(-3,10): 0 tiles landed(-2,10): 0 tiles landed(-1,10): 0 tiles landed(0,10): 0 tiles landed(1,10): 0 tiles landed(2,10): 0 tiles landed(3,10): 0 tiles landed(4,10): 0 tiles landed(5,10): 0 tiles landed(6,10): 0 tiles landed(7,10): 0 tiles landed(8,10): 0 tiles landed(9,10): 0 tiles landed(10,10): 0 tiles landed(-10,9): 0 tiles landed(-9,9): 0 tiles landed(-8,9): 0 tiles landed(-7,9): 0 tiles landed(-6,9): 0 tiles landed(-5,9): 0 tiles landed(-4,9): 2 tiles landed(-3,9): 2 tiles landed(-2,9): 1 tiles landed(-1,9): 2 tiles landed(0,9): 3 tiles landed(1,9): 2 tiles landed(2,9): 1 tiles landed(3,9): 0 tiles landed(4,9): 0 tiles landed(5,9): 0 tiles landed(6,9): 0 tiles landed(7,9): 0 tiles landed(8,9): 0 tiles landed(9,9): 0 tiles landed(10,9): 0 tiles landed(-10,8): 0 tiles landed(-9,8): 0 tiles landed(-8,8): 0 tiles landed(-7,8): 0 tiles landed(-6,8): 0 tiles landed(-5,8): 1 tiles landed(-4,8): 4 tiles landed(-3,8): 5 tiles landed(-2,8): 12 tiles landed(-1,8): 26 tiles landed(0,8): 25 tiles landed(1,8): 23 tiles landed(2,8): 8 tiles landed(3,8): 7 tiles landed(4,8): 0 tiles landed(5,8): 2 tiles landed(6,8): 0 tiles landed(7,8): 0 tiles landed(8,8): 0 tiles landed(9,8): 0 tiles landed(10,8): 0 tiles landed(-10,7): 0 tiles landed(-9,7): 0 tiles landed(-8,7): 0 tiles landed(-7,7): 0 tiles landed(-6,7): 0 tiles landed(-5,7): 2 tiles landed(-4,7): 12 tiles landed(-3,7): 41 tiles landed(-2,7): 106 tiles landed(-1,7): 222 tiles landed(0,7): 252 tiles landed(1,7): 209 tiles landed(2,7): 112 tiles landed(3,7): 50 tiles landed(4,7): 14 tiles landed(5,7): 4 tiles landed(6,7): 0 tiles landed(7,7): 0 tiles landed(8,7): 0 tiles landed(9,7): 0 tiles landed(10,7): 0 tiles landed(-10,6): 0 tiles landed(-9,6): 0 tiles landed(-8,6): 1 tiles landed(-7,6): 2 tiles landed(-6,6): 4 tiles landed(-5,6): 16 tiles landed(-4,6): 100 tiles landed(-3,6): 330 tiles landed(-2,6): 925 tiles landed(-1,6): 1,768 tiles landed(0,6): 2,026 tiles landed(1,6): 1,690 tiles landed(2,6): 883 tiles landed(3,6): 345 tiles landed(4,6): 82 tiles landed(5,6): 17 tiles landed(6,6): 3 tiles landed(7,6): 1 tiles landed(8,6): 0 tiles landed(9,6): 0 tiles landed(10,6): 0 tiles landed(-10,5): 0 tiles landed(-9,5): 0 tiles landed(-8,5): 0 tiles landed(-7,5): 5 tiles landed(-6,5): 16 tiles landed(-5,5): 126 tiles landed(-4,5): 591 tiles landed(-3,5): 2,215 tiles landed(-2,5): 5,957 tiles landed(-1,5): 11,002 tiles landed(0,5): 13,725 tiles landed(1,5): 10,999 tiles landed(2,5): 5,873 tiles landed(3,5): 2,257 tiles landed(4,5): 607 tiles landed(5,5): 114 tiles landed(6,5): 26 tiles landed(7,5): 4 tiles landed(8,5): 0 tiles landed(9,5): 0 tiles landed(10,5): 0 tiles landed(-10,4): 0 tiles landed(-9,4): 1 tiles landed(-8,4): 3 tiles landed(-7,4): 10 tiles landed(-6,4): 101 tiles landed(-5,4): 578 tiles landed(-4,4): 2,828 tiles landed(-3,4): 11,102 tiles landed(-2,4): 29,972 tiles landed(-1,4): 56,689 tiles landed(0,4): 70,829 tiles landed(1,4): 56,497 tiles landed(2,4): 30,003 tiles landed(3,4): 11,079 tiles landed(4,4): 2,927 tiles landed(5,4): 588 tiles landed(6,4): 80 tiles landed(7,4): 12 tiles landed(8,4): 0 tiles landed(9,4): 0 tiles landed(10,4): 0 tiles landed(-10,3): 1 tiles landed(-9,3): 1 tiles landed(-8,3): 5 tiles landed(-7,3): 45 tiles landed(-6,3): 336 tiles landed(-5,3): 2,184 tiles landed(-4,3): 10,795 tiles landed(-3,3): 41,473 tiles landed(-2,3): 114,540 tiles landed(-1,3): 214,417 tiles landed(0,3): 265,176 tiles landed(1,3): 213,436 tiles landed(2,3): 114,370 tiles landed(3,3): 41,566 tiles landed(4,3): 10,853 tiles landed(5,3): 2,122 tiles landed(6,3): 319 tiles landed(7,3): 38 tiles landed(8,3): 3 tiles landed(9,3): 1 tiles landed(10,3): 0 tiles landed(-10,2): 0 tiles landed(-9,2): 0 tiles landed(-8,2): 10 tiles landed(-7,2): 107 tiles landed(-6,2): 858 tiles landed(-5,2): 5,669 tiles landed(-4,2): 28,962 tiles landed(-3,2): 112,802 tiles landed(-2,2): 306,871 tiles landed(-1,2): 551,175 tiles landed(0,2): 665,507 tiles landed(1,2): 549,831 tiles landed(2,2): 307,155 tiles landed(3,2): 113,655 tiles landed(4,2): 29,418 tiles landed(5,2): 5,604 tiles landed(6,2): 876 tiles landed(7,2): 106 tiles landed(8,2): 6 tiles landed(9,2): 0 tiles landed(10,2): 0 tiles landed(-10,1): 0 tiles landed(-9,1): 0 tiles landed(-8,1): 22 tiles landed(-7,1): 180 tiles landed(-6,1): 1,558 tiles landed(-5,1): 10,254 tiles landed(-4,1): 54,200 tiles landed(-3,1): 209,714 tiles landed(-2,1): 547,588 tiles landed(-1,1): 923,257 tiles landed(0,1): 1,073,158 tiles landed(1,1): 922,713 tiles landed(2,1): 548,866 tiles landed(3,1): 211,006 tiles landed(4,1): 54,925 tiles landed(5,1): 10,614 tiles landed(6,1): 1,624 tiles landed(7,1): 207 tiles landed(8,1): 22 tiles landed(9,1): 2 tiles landed(10,1): 0 tiles landed(-10,0): 0 tiles landed(-9,0): 1 tiles landed(-8,0): 23 tiles landed(-7,0): 251 tiles landed(-6,0): 1,906 tiles landed(-5,0): 12,882 tiles landed(-4,0): 67,508 tiles landed(-3,0): 260,100 tiles landed(-2,0): 662,045 tiles landed(-1,0): 1,071,325 tiles landed(0,0): 1,222,099 tiles landed(1,0): 1,071,849 tiles landed(2,0): 663,811 tiles landed(3,0): 262,324 tiles landed(4,0): 68,559 tiles landed(5,0): 13,266 tiles landed(6,0): 2,005 tiles landed(7,0): 253 tiles landed(8,0): 29 tiles landed(9,0): 6 tiles landed(10,0): 0 tiles landed(-10,-1): 0 tiles landed(-9,-1): 0 tiles landed(-8,-1): 12 tiles landed(-7,-1): 192 tiles landed(-6,-1): 1,553 tiles landed(-5,-1): 10,534 tiles landed(-4,-1): 54,542 tiles landed(-3,-1): 210,249 tiles landed(-2,-1): 548,522 tiles landed(-1,-1): 922,814 tiles landed(0,-1): 1,072,254 tiles landed(1,-1): 923,384 tiles landed(2,-1): 549,056 tiles landed(3,-1): 211,848 tiles landed(4,-1): 55,147 tiles landed(5,-1): 10,633 tiles landed(6,-1): 1,697 tiles landed(7,-1): 197 tiles landed(8,-1): 19 tiles landed(9,-1): 2 tiles landed(10,-1): 0 tiles landed(-10,-2): 0 tiles landed(-9,-2): 0 tiles landed(-8,-2): 12 tiles landed(-7,-2): 98 tiles landed(-6,-2): 870 tiles landed(-5,-2): 5,665 tiles landed(-4,-2): 29,192 tiles landed(-3,-2): 112,291 tiles landed(-2,-2): 306,378 tiles landed(-1,-2): 549,489 tiles landed(0,-2): 664,252 tiles landed(1,-2): 549,776 tiles landed(2,-2): 306,526 tiles landed(3,-2): 113,438 tiles landed(4,-2): 29,321 tiles landed(5,-2): 5,685 tiles landed(6,-2): 913 tiles landed(7,-2): 114 tiles landed(8,-2): 13 tiles landed(9,-2): 1 tiles landed(10,-2): 0 tiles landed(-10,-3): 0 tiles landed(-9,-3): 0 tiles landed(-8,-3): 4 tiles landed(-7,-3): 43 tiles landed(-6,-3): 334 tiles landed(-5,-3): 2,155 tiles landed(-4,-3): 10,892 tiles landed(-3,-3): 41,007 tiles landed(-2,-3): 113,650 tiles landed(-1,-3): 212,589 tiles landed(0,-3): 263,385 tiles landed(1,-3): 212,078 tiles landed(2,-3): 113,723 tiles landed(3,-3): 41,543 tiles landed(4,-3): 10,968 tiles landed(5,-3): 2,185 tiles landed(6,-3): 364 tiles landed(7,-3): 44 tiles landed(8,-3): 2 tiles landed(9,-3): 0 tiles landed(10,-3): 0 tiles landed(-10,-4): 0 tiles landed(-9,-4): 1 tiles landed(-8,-4): 3 tiles landed(-7,-4): 9 tiles landed(-6,-4): 90 tiles landed(-5,-4): 596 tiles landed(-4,-4): 2,883 tiles landed(-3,-4): 10,824 tiles landed(-2,-4): 29,537 tiles landed(-1,-4): 55,308 tiles landed(0,-4): 68,684 tiles landed(1,-4): 55,080 tiles landed(2,-4): 29,376 tiles landed(3,-4): 10,834 tiles landed(4,-4): 2,985 tiles landed(5,-4): 595 tiles landed(6,-4): 94 tiles landed(7,-4): 13 tiles landed(8,-4): 1 tiles landed(9,-4): 0 tiles landed(10,-4): 0 tiles landed(-10,-5): 0 tiles landed(-9,-5): 0 tiles landed(-8,-5): 0 tiles landed(-7,-5): 1 tiles landed(-6,-5): 15 tiles landed(-5,-5): 106 tiles landed(-4,-5): 579 tiles landed(-3,-5): 2,139 tiles landed(-2,-5): 5,772 tiles landed(-1,-5): 10,604 tiles landed(0,-5): 13,272 tiles landed(1,-5): 10,364 tiles landed(2,-5): 5,751 tiles landed(3,-5): 2,161 tiles landed(4,-5): 592 tiles landed(5,-5): 137 tiles landed(6,-5): 17 tiles landed(7,-5): 3 tiles landed(8,-5): 0 tiles landed(9,-5): 0 tiles landed(10,-5): 0 tiles landed(-10,-6): 0 tiles landed(-9,-6): 0 tiles landed(-8,-6): 0 tiles landed(-7,-6): 0 tiles landed(-6,-6): 2 tiles landed(-5,-6): 7 tiles landed(-4,-6): 70 tiles landed(-3,-6): 299 tiles landed(-2,-6): 862 tiles landed(-1,-6): 1,562 tiles landed(0,-6): 1,906 tiles landed(1,-6): 1,534 tiles landed(2,-6): 849 tiles landed(3,-6): 312 tiles landed(4,-6): 82 tiles landed(5,-6): 17 tiles landed(6,-6): 1 tiles landed(7,-6): 0 tiles landed(8,-6): 0 tiles landed(9,-6): 0 tiles landed(10,-6): 0 tiles landed(-10,-7): 0 tiles landed(-9,-7): 0 tiles landed(-8,-7): 0 tiles landed(-7,-7): 0 tiles landed(-6,-7): 0 tiles landed(-5,-7): 1 tiles landed(-4,-7): 8 tiles landed(-3,-7): 27 tiles landed(-2,-7): 92 tiles landed(-1,-7): 186 tiles landed(0,-7): 202 tiles landed(1,-7): 177 tiles landed(2,-7): 96 tiles landed(3,-7): 28 tiles landed(4,-7): 13 tiles landed(5,-7): 1 tiles landed(6,-7): 0 tiles landed(7,-7): 0 tiles landed(8,-7): 0 tiles landed(9,-7): 0 tiles landed(10,-7): 0 tiles landed(-10,-8): 0 tiles landed(-9,-8): 0 tiles landed(-8,-8): 0 tiles landed(-7,-8): 0 tiles landed(-6,-8): 0 tiles landed(-5,-8): 0 tiles landed(-4,-8): 0 tiles landed(-3,-8): 2 tiles landed(-2,-8): 12 tiles landed(-1,-8): 12 tiles landed(0,-8): 25 tiles landed(1,-8): 18 tiles landed(2,-8): 5 tiles landed(3,-8): 2 tiles landed(4,-8): 0 tiles landed(5,-8): 0 tiles landed(6,-8): 0 tiles landed(7,-8): 0 tiles landed(8,-8): 0 tiles landed(9,-8): 0 tiles landed(10,-8): 0 tiles landed(-10,-9): 0 tiles landed(-9,-9): 0 tiles landed(-8,-9): 0 tiles landed(-7,-9): 0 tiles landed(-6,-9): 0 tiles landed(-5,-9): 0 tiles landed(-4,-9): 0 tiles landed(-3,-9): 0 tiles landed(-2,-9): 1 tiles landed(-1,-9): 2 tiles landed(0,-9): 1 tiles landed(1,-9): 3 tiles landed(2,-9): 1 tiles landed(3,-9): 1 tiles landed(4,-9): 0 tiles landed(5,-9): 0 tiles landed(6,-9): 0 tiles landed(7,-9): 0 tiles landed(8,-9): 0 tiles landed(9,-9): 0 tiles landed(10,-9): 0 tiles landed(-10,-10): 0 tiles landed(-9,-10): 0 tiles landed(-8,-10): 0 tiles landed(-7,-10): 0 tiles landed(-6,-10): 0 tiles landed(-5,-10): 0 tiles landed(-4,-10): 0 tiles landed(-3,-10): 0 tiles landed(-2,-10): 0 tiles landed(-1,-10): 0 tiles landed(0,-10): 0 tiles landed(1,-10): 0 tiles landed(2,-10): 0 tiles landed(3,-10): 0 tiles landed(4,-10): 0 tiles landed(5,-10): 0 tiles landed(6,-10): 0 tiles landed(7,-10): 0 tiles landed(8,-10): 0 tiles landed(9,-10): 0 tiles landed(10,-10): 0 tiles landed
Tile landings per cell (log-shaded), all games overlaid. The average game's bounding box is just 30.9 cells of coordinate space.
The most sprawling board — a 11×11 bounding box (121 cells, seed 119,467). The farthest any tile has landed from the Prism: 10.77 cells away, at (-4,10).

The colour mathematics

The physical tile set, measured exactly — including a structure nobody put there on purpose.

B–G: 13 tilesB–R: 11 tilesB–M: 11 tilesB–Y: 13 tilesG–R: 13 tilesG–M: 11 tilesG–Y: 11 tilesR–M: 13 tilesR–Y: 11 tilesM–Y: 13 tiles

Perfect balance, by construction. Every colour appears on exactly 24 of the 45 patterns, as exactly 24 segments, carrying exactly 51 connection points — and the equality holds inside every family (4 points per colour in the solids, divides, x and slash tiles; 6 in windows and hooks; 7 in stacks; 8 in lanes and grids). The flat win-by-colour chart above isn't luck; it's arithmetic.

The hidden pentagon. The ten colour pairs can't all be equal — and they miss by the smallest possible structure. Arrange the colours in the cycle shown: neighbouring colours share a tile 13 times (solid lines); colours across the pentagon share 11 (dashed). Every colour gets exactly two 13-neighbours and two 11-diagonals, so no colour gains an edge — the asymmetry lives entirely between pairs.

The arithmetic makes the near-miss precise: the 45 tiles produce Σ C(k,2) = 120 pair co-occurrences across ten pairs — so a perfectly uniform 12 apiece was numerically possible. The set landed one step away, at 13/11 along a cycle. In plain terms: a design made by feel came within a single tile-swap of perfect uniformity, and the residue it left behind is a pentagon.

Micro-question, resolved by the corpus: two-colour bonuses split 6,047,106 along the 13-cycle to 3,296,689 across the 11-diagonals — a per-pair ratio of 1.83 against a tile-supply ratio of 1.18. Play amplifies the pentagon beyond its tile supply — the structure has gameplay consequences beyond the deck itself.

How big is the game?

The possibility space and its information theory — rule constants from the engine, joined to the live corpus.

165
distinct placeable tile-states (45 patterns × orientations; the five solids are rotation-proof)
31.7%
of all edge pairings legally connect (10,056 of 31,680)
81
legal moves per turn on average (median 66, p90 150, max seen 456)
5.4×1024
distinct opening deals (hands × goals)
~1052
game-tree playouts at median depth (81 choices × 27 moves)

Spatial combinatorics — measured fairly. Compared metric-for-metric with the classics, Mosaic's reachable universe — every legal deal times every way its games can legally unfold — is about

1024 deals × 1052 playouts ≈ 1076 possible games

On the same legal footing: the chess game tree runs to ~10120 and legal Go positions to ~2×10170. Mosaic sits below both — its games are short and sharp by design — and the space is still beyond physical intuition: the opening deals alone (5.4×1024) outnumber the stars in the observable universe several times over, and the full reachable space (1060) is some ten billion times the atoms in planet Earth (1050) — though still short of the universe's 1080 atoms, which is what measuring honestly permits us to say. And since every game is deterministic given its seed, that universe already contains every outcome — the lab doesn't create results, it reads them out of a function too large to enumerate.

One number we deliberately do not compare: strip away the rules — legality, even the fact that each tile exists once — and the raw arrangements of the observed play window run to (P+1)S = 166441 ≈ 10979. That figure isn't on the same metric as anything above, so we cite it only for its ratio: the placement law prunes roughly 920 orders of magnitude of chaos to produce the game. Raw bounds impress; legal bounds inform.

Game-tree complexity. With effective branching factor b ≈ 81 and median depth d = 27, a median game sits in a tree of roughly

bd ≈ 8127 ≈ 1052

playouts. The 1,000,000 games below are a vanishing, deliberately-sampled sliver of it — uniquely seeded and fully reproducible, which is what makes the sliver trustworthy.

Shannon entropy — why bluffing is a wasting asset. Uncertainty has a unit, and the game starts full of it:

H(X) = −Σ p(xi) log2 p(xi)

At the deal, the hidden state is at maximum entropy: the four unseen goals hold log2(4!) ≈ 4.6 bits per observer, and the shuffled pile alone holds log2(51!) ≈ 220 bits. Every draw, placement, trade, and rotation leaks information, and entropy only falls — the game's "now" grows steadily more determined. The corpus shows the collapse in action: by the moment of victory, winners have provably resolved 1.5 opponent goals on average, and 70.5% of winners have themselves been identified. This is the arithmetic behind The Liar's problem: a bluff is worth most exactly when entropy is highest, and that window only ever narrows. (Whether opponents that model intent can re-widen it is the theory-of-mind experiment in the queue.)

The collapse, measured: hidden information in the pile, move by move

0110220hidden bits102030405060
Average entropy of the undrawn pile's hidden order (log2 pile!), across all games still running at each move. The deal starts near 220 bits and every draw burns some — the curve is H(X) doing exactly what the formula promises. (Hands and hidden goals add bits not shown; their collapse is the deduction layer's story above.)

Infinity isn't quite infinity — but it's close

What is the likelihood that you'll ever play the same game twice?

The birthday problem answers it. Draw n games from a space of N possibilities, and the chance any two match is

p ≈ 1 − e−n²/2N

which reaches even odds only around n ≈ 1.18 √N. The plain readings:

To repeat a deal — the same five hands and five goals, before anyone chooses anything — takes about 2.7 trillion games for a coin-flip's chance: every human on Earth playing one game a day for about a year, with every game recorded and compared. And that repeat would diverge on move one.

To repeat a game — same deal, same moves, beginning to end — takes about 1030 games: all of humanity playing daily for roughly 400 quadrillion years, some thirty million times the age of the universe. Every game of Mosaic ever played is the only time that game will ever happen.

Even inside this corpus: had its 1,000,000 games been dealt at random, the chance that any two of them shared so much as a starting deal is about 1 in 10,800,000,000,000.

The bonus ladder

Connect 2 colours with one placement → draw 1 tile; 3 → 2; 4 → 3. How often does each rung actually happen?

1 in 2
placements connect 2 colours (9,343,795 times)
1 in 38
connect 3 colours (550,164 times)
1 in 1,708
connect 4 colours (12,284 times)
10,480,975
bonus tiles paid out

The tutorial calls the four-colour connection "a feat worth planning for" — the corpus agrees: it is the rarest event the game produces. In expectation: E[bonus] = Σ rung × rate ≈ 0.50 tiles per placement — in plain terms, every tile you place carries roughly a 50% chance-weighted dividend, which is why the draw economy never stalls.

Every card's story

How often each action and pattern hits the table — and how often it is the move that ends the game. Win credit goes to the final move of a chain victory (exhaustion endings have no single winning move).

Top finishers — patterns
1 x-1g1m1r1b x-1g1m1r1b 23,472 wins (2.4%)
2 x-1m1b1y1r x-1m1b1y1r 23,229 wins (2.4%)
3 x-1b1r1g1y x-1b1r1g1y 23,092 wins (2.4%)
Top finishers — actions
1 Move pattern 100,686 wins (10.4%)
2 Rotate pattern 67,330 wins (7.0%)
3 Trade goals 5,292 wins (0.5%)

Read the finishers list carefully — the real finding is flatness. Per play, every pattern family ends between roughly 3.9% and 5.7% of the games it appears in; the x family's #1 spot is an 8% edge over divide, not a queen among pawns. Finishing turns out to be a different job from building: the game ends on any legal +1 at one frontier cell (players take a visible win instantly), so the last move rewards fit — and the x, one segment in four colours, matches the most junctions, while its weaknesses (no follow-up, feeds neighbours) cost nothing on a move that ends the game. Building strength shows up exactly where it should instead: grid and lane are the most-played tiles in the game — the mid-game engines — while the solid, the strongest cap in principle, is the least-played because a single colour is the hardest contact to find legally. Within each family the five variants are colour-permutations of each other — formally, E[wins(σ·t)] = E[wins(t)] for any colour permutation σ, because the deal treats all colours identically. In plain terms: the five x tiles are the same tile wearing different paint, so the mathematics forbids their win counts from differing — and they don't. A built-in correctness check on the pipeline.

Crawl or bridge? Not every win is a 6→7 crawl — a single tile can weld separate groups into a winning chain. In this corpus, 78.0% of chain wins are +1 crawls and 22.0% are bridges of +2 or more — and in the bridge wins the finisher mix flips toward the strong connectors: rotate-pattern (30,128), slash (29,246), window (26,301), solid (25,271). The x is only the king of the crawl; whether deliberate planners bridge more often is a standing question for the search-agent phase.

Remove pattern 1.54 plays/game won 0 games (0.0%)
Move pattern 1.61 plays/game won 100,686 games (10.4%)
Rotate pattern 1.49 plays/game won 67,330 games (7.0%)
Rotate goals 1.24 plays/game won 3,140 games (0.3%)
Trade goals 1.35 plays/game won 5,292 games (0.5%)
Trade tiles 1.12 plays/game won 0 games (0.0%)
Reverse direction 0.98 plays/game won 0 games (0.0%)

Every printed card

solid
solid-4b 0.28 1.2%
solid-4g 0.28 1.2%
solid-4m 0.28 1.3%
solid-4r 0.28 1.2%
solid-4y 0.28 1.2%
divide
divide-2b1g1y 0.45 2.2%
divide-2g1r1b 0.46 2.3%
divide-2m1y1r 0.46 2.3%
divide-2r1m1g 0.46 2.2%
divide-2y1b1m 0.46 2.2%
x
x-1b1r1g1y 0.49 2.4%
x-1g1m1r1b 0.49 2.4%
x-1m1b1y1r 0.49 2.4%
x-1r1y1m1g 0.50 2.4%
x-1y1g1b1m 0.50 2.4%
slash
slash-2b2m 0.41 2.0%
slash-2g2y 0.41 2.0%
slash-2m2g 0.41 2.0%
slash-2r2b 0.41 2.0%
slash-2y2r 0.41 1.9%
window
window-3b3y 0.47 1.5%
window-3g3b 0.46 1.6%
window-3m3r 0.47 1.6%
window-3r3g 0.47 1.5%
window-3y3m 0.47 1.6%
hook
hook-4b2g 0.46 1.5%
hook-4g2r 0.46 1.5%
hook-4m2y 0.46 1.5%
hook-4r2m 0.46 1.5%
hook-4y2b 0.46 1.5%
stack
stack-3b2m2r 0.52 1.9%
stack-3g2y2m 0.52 1.9%
stack-3m2b2g 0.54 1.7%
stack-3r2b2y 0.51 1.9%
stack-3y2r2g 0.51 1.9%
lane
lane-4b2r2g 0.54 1.7%
lane-4g2m2r 0.54 1.7%
lane-4m2b2y 0.55 1.7%
lane-4r2y2m 0.55 1.6%
lane-4y2g2b 0.55 1.7%
grid
grid-2b2y2m2r 0.56 2.0%
grid-2g2b2y2m 0.57 1.9%
grid-2m2r2g2b 0.57 1.9%
grid-2r2g2b2y 0.56 1.9%
grid-2y2m2r2g 0.56 2.0%
Per tile: plays per game, then (in blue) its share of the 965,797 game-ending moves. And this table has something no full table can produce: the orphan-chain steal. With imaginary seats holding goals they can never win with, a finished chain can sit unclaimed on the board — until Trade Goals takes it (5,292 wins) or Rotate Goals delivers it (3,140). Nearly every one is a victory built by nobody at the table and claimed by whoever moved first.

What we're seeing so far

Finding No goal colour strays more than 5.2 points from the 25% a perfectly even split would give it, seat effects are similarly small, and moving first is worth -0.3 points over moving last — a real edge, small but past the noise band at this sample size.

Interpretation In game-balance terms, Mosaic looks sound: the materials and the seating aren't deciding winners, and the only edge the table itself grants is a slight one to whoever moves first. (That is a claim about the deck and the table, not about strategies being equally strong — the persona gaps below are real.)

Next experiment Controlled ablations — removing single mechanics (actions, goal exchanges, different chain lengths) to see which ones carry the balance.

Finding The style fingerprints separate exactly as parameterized: The Spender fires 3.5 actions per game while The Hoarder sits on 1.1, converting its quiet turns into the most placements (6.3/game) and bonus tiles (2.9/game) at the table.

Interpretation The personality knobs produce genuinely distinct playstyles under real play — six players, not six names for one player.

Next experiment A persona matchup matrix: who beats whom head-to-head, and whether some personalities only thrive at particular tables — an ecology, not a ranking.

Finding The Honest One currently tops the table at 27.6%; The Liar trails at 23.1%. On the bluff axis specifically: The Honest One (bluff 0.0) wins 27.6%, The Liar (bluff 0.9) 23.1% — last in 2 of the six table compositions.

Interpretation Against opponents whose defence reads the board rather than the player, sustained bluffing pays real tempo to hide a fact they barely use. Deception's value likely begins where opponents start modeling intent.

Next experiment Theory-of-mind agents — opponents that infer goals from behaviour and hold probabilistic beliefs — plus an awareness sweep from novice to oracle.

Finding In 70.5% of victories, at least one opponent had proven the winner's goal (via the same deduction the in-game map shows) before the final move; 29.5% were stealth wins. Winners had proven 1.5 opponent goals on average at the moment of victory.

Interpretation At this level, knowing beats hiding: winners tend to be the best-informed players at the table, and being identified doesn't stop a strong chain.

Next experiment Track goal-inference accuracy over time within games, and test whether theory-of-mind opponents can convert identification into effective defence.

Finding Goals changed hands 8.9 times per game; only 28.7% of victories kept one goal the whole game (21.2% weathered one change, 50.1% two or more, and 11.5% ended on the dealt colour only because it left and came back). When a winner's goal moved, the arriving colour carried a 3.7-chain on average against 3.4 for the one leaving.

Interpretation The goal-shuffling actions are half the game: victories ride inherited work as often as built work.

Next experiment The three-player table (two imaginary seats) — already queued — where an orphaned finished chain can sit unclaimed until a rotation or trade takes it, letting goal actions win games outright.

Method: four persona bots per table at skilled awareness, drawn without repeats from the six (composition recorded and conditioned on). Every game plays its own unique seed; the whole batch reproduces from one master seed. At the current 1,000,000 games, a 25% win rate carries a 95% confidence interval of about ±0.1 points (1.96 √(p(1−p)/n) — in plain terms, at this scale the error bars are thinner than the bars). All prose on this page is regenerated from the live data with every update — last refreshed Sat, 05 Sep 2026 18:02:43 GMT.

The experiment queue

Mosaic Lab is an instrument, not a report — these are the studies lined up behind the current batch.

Smaller tables (queued — starts automatically when this batch completes). A second million games at three real players plus two imaginary seats. Imaginary players hold goals but can never win, so a finished chain can sit orphaned on the board — the configuration where Rotate and Trade Goals can end games outright.

The awareness sweep. The same personas from novice to oracle perception: does bluffing start paying once opponents are perceptive enough to be worth deceiving?

Theory-of-mind agents. A new pool that reasons about players instead of only the board — inferring goals from behaviour, holding probabilistic beliefs, remembering who did what. The test of whether deception becomes real strategy against minds that model yours.

The persona matchup matrix. Head-to-head performance for every pair, conditioned on table composition — looking for counters and ecologies rather than a single ranking.

Playing without the Prism. A million games with the open start (no wild centre tile) at both table sizes. No common anchor means no neutral first move: opening placements commit to real colours immediately, bluffing gets more expensive to hide, and passes appear when nothing connects. The paired-seed design lets us diff these directly against the Prism batches, game for game.

Ablation studies. Rule variants with single mechanics removed — no actions, no goal exchanges, different winning chain lengths — to measure what each mechanic contributes to balance and drama.

Distributions, not just averages. Game-length histograms, action-timing curves across the arc of a game, inference-accuracy over time, and variance within each personality.

← Mosaic Lab — all studies  ·  mosaicgame.app