Study 8 · Two players · open start

MOSAIC LAB

complete

A simulation study of how Mosaic is actually played.

1,000,000
complete games played

Two AI seats plus three imaginary players (dealt goals and hands, never acting, never winning), zero humans. Each game seats two 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.5 points over moving last), and straightforward play is currently outperforming sustained bluffing (54.7% vs 46.9%).

The headline numbers

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

25,763,000
moves simulated
22
median moves / game
-0.5pp
first-mover edge over moving last
61.8%
wins where an opponent had proven the winner's goal
35.3%
wins where the winner's goal never changed hands

The shape of a game

25,763,000 moves break down into 18,147,026 pattern placements (18.1/game) and 7,216,849 actions (7.2/game) — per-tile and per-action detail below in Every card's story.

7
fastest win (moves)
22
median game
80
longest game won by a chain
87
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: 6.2% 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 18,139 shared victories here were exactly that (18,139 of the 62,019 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 19 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

50% = fairMoves 1stMoves 1st: 49.7%49.7%Moves 2ndMoves 2nd: 50.3%50.3%
Victory share by position in the turn order, n=1,000,000 games (shared victories credited 1/k). Dashed line: the 50% 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

50% = fairGoal RGoal R: 20.3%20.3%Goal GGoal G: 20.3%20.3%Goal BGoal B: 20.4%20.4%Goal YGoal Y: 20.3%20.3%Goal MGoal M: 20.5%20.5%
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

50% = fairGoal RGoal R: 20.0%20.0%Goal GGoal G: 20.0%20.0%Goal BGoal B: 20.0%20.0%Goal YGoal Y: 19.9%19.9%Goal MGoal M: 20.2%20.2%
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

18,100 of 1,000,000 games (1.8%) 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 18,139 co-winning pairs, the most common are B+R (1,891), G+M (1,855), B+G (1,848). The mesh is essentially flat (1,730–1,891 per pair, within noise) — and the hidden pentagon, so loud in the bonus economy, is silent here (8,981 along the cycle vs 9,158 across). Ties are blind to colour structure.

The personas

Six personalities over four parameters. Two 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 54.7%
Actions 3.9/gm
Bonus tiles 3.8/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 46.9%
Actions 3.6/gm
Bonus tiles 3.6/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 50.8%
Actions 1.6/gm
Bonus tiles 4.5/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 50.4%
Actions 6.0/gm
Bonus tiles 3.4/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 52.8%
Actions 3.0/gm
Bonus tiles 4.0/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 50.0%
Actions 3.5/gm
Bonus tiles 4.0/gm

Personas

50% = fairThe Honest OneThe Honest One: 54.7%54.7%The HunterThe Hunter: 52.8%52.8%The HoarderThe Hoarder: 50.8%50.8%The SpenderThe Spender: 50.4%50.4%The OpportunistThe Opportunist: 50.0%50.0%The LiarThe Liar: 46.9%46.9%
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.594.4710.10
The Honest One3.913.858.89
The Hunter2.984.019.47
The Liar3.623.649.03
The Opportunist3.543.999.06
The Spender6.003.397.89
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 = win012345678moves of this one gameGoal RGoal GGoal BGoal YGoal M
Goal RGoal GGoal BGoal YGoal M
The fastest win — 7 moves (seed 10,003,030). 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 = win051015moves of this one gameGoal RGoal GGoal BGoal YGoal M
Goal RGoal GGoal BGoal YGoal M
The longest chain victory — 80 moves (seed 30,029,092). 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): 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(-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): 0 tiles landed(-1,9): 0 tiles landed(0,9): 1 tiles landed(1,9): 1 tiles landed(2,9): 2 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): 0 tiles landed(-4,8): 1 tiles landed(-3,8): 0 tiles landed(-2,8): 4 tiles landed(-1,8): 10 tiles landed(0,8): 6 tiles landed(1,8): 13 tiles landed(2,8): 5 tiles landed(3,8): 4 tiles landed(4,8): 1 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,7): 0 tiles landed(-9,7): 0 tiles landed(-8,7): 0 tiles landed(-7,7): 1 tiles landed(-6,7): 0 tiles landed(-5,7): 0 tiles landed(-4,7): 2 tiles landed(-3,7): 21 tiles landed(-2,7): 68 tiles landed(-1,7): 123 tiles landed(0,7): 136 tiles landed(1,7): 113 tiles landed(2,7): 62 tiles landed(3,7): 20 tiles landed(4,7): 2 tiles landed(5,7): 0 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): 0 tiles landed(-7,6): 2 tiles landed(-6,6): 2 tiles landed(-5,6): 8 tiles landed(-4,6): 42 tiles landed(-3,6): 197 tiles landed(-2,6): 556 tiles landed(-1,6): 1,033 tiles landed(0,6): 1,295 tiles landed(1,6): 1,018 tiles landed(2,6): 527 tiles landed(3,6): 211 tiles landed(4,6): 51 tiles landed(5,6): 9 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,5): 0 tiles landed(-9,5): 0 tiles landed(-8,5): 0 tiles landed(-7,5): 2 tiles landed(-6,5): 13 tiles landed(-5,5): 60 tiles landed(-4,5): 298 tiles landed(-3,5): 1,295 tiles landed(-2,5): 3,773 tiles landed(-1,5): 7,261 tiles landed(0,5): 9,204 tiles landed(1,5): 7,300 tiles landed(2,5): 3,748 tiles landed(3,5): 1,309 tiles landed(4,5): 325 tiles landed(5,5): 56 tiles landed(6,5): 6 tiles landed(7,5): 1 tiles landed(8,5): 0 tiles landed(9,5): 0 tiles landed(10,5): 0 tiles landed(-10,4): 0 tiles landed(-9,4): 0 tiles landed(-8,4): 1 tiles landed(-7,4): 6 tiles landed(-6,4): 46 tiles landed(-5,4): 270 tiles landed(-4,4): 1,661 tiles landed(-3,4): 6,983 tiles landed(-2,4): 20,332 tiles landed(-1,4): 40,175 tiles landed(0,4): 51,470 tiles landed(1,4): 40,189 tiles landed(2,4): 20,310 tiles landed(3,4): 7,098 tiles landed(4,4): 1,725 tiles landed(5,4): 305 tiles landed(6,4): 38 tiles landed(7,4): 5 tiles landed(8,4): 0 tiles landed(9,4): 0 tiles landed(10,4): 0 tiles landed(-10,3): 0 tiles landed(-9,3): 0 tiles landed(-8,3): 1 tiles landed(-7,3): 30 tiles landed(-6,3): 165 tiles landed(-5,3): 1,211 tiles landed(-4,3): 6,944 tiles landed(-3,3): 28,406 tiles landed(-2,3): 83,672 tiles landed(-1,3): 166,439 tiles landed(0,3): 211,914 tiles landed(1,3): 165,550 tiles landed(2,3): 83,575 tiles landed(3,3): 28,327 tiles landed(4,3): 6,857 tiles landed(5,3): 1,222 tiles landed(6,3): 146 tiles landed(7,3): 20 tiles landed(8,3): 0 tiles landed(9,3): 0 tiles landed(10,3): 0 tiles landed(-10,2): 0 tiles landed(-9,2): 0 tiles landed(-8,2): 6 tiles landed(-7,2): 60 tiles landed(-6,2): 474 tiles landed(-5,2): 3,551 tiles landed(-4,2): 19,788 tiles landed(-3,2): 82,804 tiles landed(-2,2): 243,252 tiles landed(-1,2): 468,135 tiles landed(0,2): 584,175 tiles landed(1,2): 468,833 tiles landed(2,2): 243,927 tiles landed(3,2): 83,073 tiles landed(4,2): 20,038 tiles landed(5,2): 3,611 tiles landed(6,2): 511 tiles landed(7,2): 56 tiles landed(8,2): 7 tiles landed(9,2): 0 tiles landed(10,2): 0 tiles landed(-10,1): 0 tiles landed(-9,1): 1 tiles landed(-8,1): 9 tiles landed(-7,1): 106 tiles landed(-6,1): 984 tiles landed(-5,1): 6,859 tiles landed(-4,1): 38,811 tiles landed(-3,1): 162,584 tiles landed(-2,1): 464,917 tiles landed(-1,1): 845,597 tiles landed(0,1): 1,015,159 tiles landed(1,1): 847,631 tiles landed(2,1): 467,920 tiles landed(3,1): 164,288 tiles landed(4,1): 39,269 tiles landed(5,1): 7,051 tiles landed(6,1): 974 tiles landed(7,1): 116 tiles landed(8,1): 12 tiles landed(9,1): 3 tiles landed(10,1): 0 tiles landed(-10,0): 0 tiles landed(-9,0): 0 tiles landed(-8,0): 17 tiles landed(-7,0): 147 tiles landed(-6,0): 1,153 tiles landed(-5,0): 8,534 tiles landed(-4,0): 49,416 tiles landed(-3,0): 206,719 tiles landed(-2,0): 579,777 tiles landed(-1,0): 1,012,497 tiles landed(0,0): 1,185,876 tiles landed(1,0): 1,013,950 tiles landed(2,0): 581,435 tiles landed(3,0): 208,680 tiles landed(4,0): 50,094 tiles landed(5,0): 8,830 tiles landed(6,0): 1,187 tiles landed(7,0): 140 tiles landed(8,0): 12 tiles landed(9,0): 1 tiles landed(10,0): 0 tiles landed(-10,-1): 1 tiles landed(-9,-1): 3 tiles landed(-8,-1): 13 tiles landed(-7,-1): 103 tiles landed(-6,-1): 962 tiles landed(-5,-1): 6,862 tiles landed(-4,-1): 38,868 tiles landed(-3,-1): 163,152 tiles landed(-2,-1): 466,828 tiles landed(-1,-1): 846,761 tiles landed(0,-1): 1,013,398 tiles landed(1,-1): 847,385 tiles landed(2,-1): 466,500 tiles landed(3,-1): 164,270 tiles landed(4,-1): 39,418 tiles landed(5,-1): 6,902 tiles landed(6,-1): 984 tiles landed(7,-1): 117 tiles landed(8,-1): 11 tiles landed(9,-1): 0 tiles landed(10,-1): 0 tiles landed(-10,-2): 0 tiles landed(-9,-2): 1 tiles landed(-8,-2): 2 tiles landed(-7,-2): 48 tiles landed(-6,-2): 464 tiles landed(-5,-2): 3,569 tiles landed(-4,-2): 19,624 tiles landed(-3,-2): 82,567 tiles landed(-2,-2): 242,714 tiles landed(-1,-2): 466,950 tiles landed(0,-2): 581,914 tiles landed(1,-2): 467,746 tiles landed(2,-2): 243,529 tiles landed(3,-2): 83,328 tiles landed(4,-2): 19,977 tiles landed(5,-2): 3,609 tiles landed(6,-2): 510 tiles landed(7,-2): 64 tiles landed(8,-2): 5 tiles landed(9,-2): 0 tiles landed(10,-2): 0 tiles landed(-10,-3): 0 tiles landed(-9,-3): 0 tiles landed(-8,-3): 4 tiles landed(-7,-3): 22 tiles landed(-6,-3): 174 tiles landed(-5,-3): 1,254 tiles landed(-4,-3): 6,905 tiles landed(-3,-3): 28,171 tiles landed(-2,-3): 82,932 tiles landed(-1,-3): 164,890 tiles landed(0,-3): 209,498 tiles landed(1,-3): 164,584 tiles landed(2,-3): 83,297 tiles landed(3,-3): 28,471 tiles landed(4,-3): 6,950 tiles landed(5,-3): 1,244 tiles landed(6,-3): 170 tiles landed(7,-3): 23 tiles landed(8,-3): 2 tiles landed(9,-3): 0 tiles landed(10,-3): 0 tiles landed(-10,-4): 0 tiles landed(-9,-4): 0 tiles landed(-8,-4): 0 tiles landed(-7,-4): 6 tiles landed(-6,-4): 49 tiles landed(-5,-4): 324 tiles landed(-4,-4): 1,706 tiles landed(-3,-4): 6,887 tiles landed(-2,-4): 19,925 tiles landed(-1,-4): 39,722 tiles landed(0,-4): 50,496 tiles landed(1,-4): 39,469 tiles landed(2,-4): 19,885 tiles landed(3,-4): 6,901 tiles landed(4,-4): 1,740 tiles landed(5,-4): 329 tiles landed(6,-4): 49 tiles landed(7,-4): 5 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): 2 tiles landed(-6,-5): 10 tiles landed(-5,-5): 63 tiles landed(-4,-5): 338 tiles landed(-3,-5): 1,304 tiles landed(-2,-5): 3,652 tiles landed(-1,-5): 7,074 tiles landed(0,-5): 8,817 tiles landed(1,-5): 6,973 tiles landed(2,-5): 3,559 tiles landed(3,-5): 1,286 tiles landed(4,-5): 317 tiles landed(5,-5): 43 tiles landed(6,-5): 4 tiles landed(7,-5): 2 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): 1 tiles landed(-6,-6): 0 tiles landed(-5,-6): 6 tiles landed(-4,-6): 50 tiles landed(-3,-6): 182 tiles landed(-2,-6): 511 tiles landed(-1,-6): 999 tiles landed(0,-6): 1,215 tiles landed(1,-6): 924 tiles landed(2,-6): 509 tiles landed(3,-6): 182 tiles landed(4,-6): 36 tiles landed(5,-6): 9 tiles landed(6,-6): 2 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): 1 tiles landed(-6,-7): 0 tiles landed(-5,-7): 2 tiles landed(-4,-7): 11 tiles landed(-3,-7): 22 tiles landed(-2,-7): 57 tiles landed(-1,-7): 111 tiles landed(0,-7): 167 tiles landed(1,-7): 105 tiles landed(2,-7): 69 tiles landed(3,-7): 17 tiles landed(4,-7): 4 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): 1 tiles landed(-4,-8): 1 tiles landed(-3,-8): 3 tiles landed(-2,-8): 9 tiles landed(-1,-8): 8 tiles landed(0,-8): 19 tiles landed(1,-8): 7 tiles landed(2,-8): 2 tiles landed(3,-8): 0 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): 0 tiles landed(-1,-9): 0 tiles landed(0,-9): 2 tiles landed(1,-9): 0 tiles landed(2,-9): 0 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,-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 27.1 cells of coordinate space.
The most sprawling board — a 10×10 bounding box (100 cells, seed 10,021,755). The farthest any tile has landed from the Prism: 10.05 cells away, at (-10,-1).

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 5,039,973 along the 13-cycle to 2,711,663 across the 11-diagonals — a per-pair ratio of 1.86 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)
~1042
game-tree playouts at median depth (81 choices × 22 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 × 1042 playouts ≈ 1066 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 = 22, a median game sits in a tree of roughly

bd ≈ 8122 ≈ 1042

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.2 opponent goals on average, and 61.8% 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 (7,751,636 times)
1 in 45
connect 3 colours (406,469 times)
1 in 1,753
connect 4 colours (10,354 times)
8,595,636
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.47 tiles per placement — in plain terms, every tile you place carries roughly a 47% 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 24,827 wins (2.6%)
2 x-1b1r1g1y x-1b1r1g1y 24,223 wins (2.6%)
3 x-1m1b1y1r x-1m1b1y1r 24,201 wins (2.6%)
Top finishers — actions
1 Move pattern 120,661 wins (12.9%)
2 Rotate pattern 71,053 wins (7.6%)
3 Trade goals 21,845 wins (2.3%)

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, 86.6% of chain wins are +1 crawls and 13.4% are bridges of +2 or more — and in the bridge wins the finisher mix flips toward the strong connectors: rotate-pattern (23,608), slash (16,032), solid (14,802), window (14,337). 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.22 plays/game won 0 games (0.0%)
Move pattern 1.35 plays/game won 120,661 games (12.9%)
Rotate pattern 1.21 plays/game won 71,053 games (7.6%)
Rotate goals 0.93 plays/game won 7,459 games (0.8%)
Trade goals 1.07 plays/game won 21,845 games (2.3%)
Trade tiles 0.80 plays/game won 0 games (0.0%)
Reverse direction 0.63 plays/game won 0 games (0.0%)

Every printed card

solid
solid-4b 0.26 1.1%
solid-4g 0.26 1.1%
solid-4m 0.26 1.1%
solid-4r 0.27 1.0%
solid-4y 0.26 1.1%
divide
divide-2b1g1y 0.40 2.2%
divide-2g1r1b 0.40 2.3%
divide-2m1y1r 0.40 2.2%
divide-2r1m1g 0.40 2.2%
divide-2y1b1m 0.40 2.2%
x
x-1b1r1g1y 0.43 2.6%
x-1g1m1r1b 0.42 2.6%
x-1m1b1y1r 0.42 2.6%
x-1r1y1m1g 0.43 2.6%
x-1y1g1b1m 0.43 2.6%
slash
slash-2b2m 0.36 1.8%
slash-2g2y 0.36 1.7%
slash-2m2g 0.36 1.7%
slash-2r2b 0.36 1.7%
slash-2y2r 0.36 1.7%
window
window-3b3y 0.40 1.3%
window-3g3b 0.40 1.3%
window-3m3r 0.41 1.3%
window-3r3g 0.40 1.3%
window-3y3m 0.40 1.3%
hook
hook-4b2g 0.40 1.3%
hook-4g2r 0.40 1.2%
hook-4m2y 0.40 1.2%
hook-4r2m 0.40 1.2%
hook-4y2b 0.40 1.2%
stack
stack-3b2m2r 0.44 1.8%
stack-3g2y2m 0.44 1.7%
stack-3m2b2g 0.46 1.5%
stack-3r2b2y 0.44 1.8%
stack-3y2r2g 0.44 1.8%
lane
lane-4b2r2g 0.46 1.5%
lane-4g2m2r 0.46 1.5%
lane-4m2b2y 0.46 1.5%
lane-4r2y2m 0.46 1.5%
lane-4y2g2b 0.46 1.5%
grid
grid-2b2y2m2r 0.47 2.0%
grid-2g2b2y2m 0.48 1.9%
grid-2m2r2g2b 0.47 1.9%
grid-2r2g2b2y 0.47 1.9%
grid-2y2m2r2g 0.47 1.9%
Per tile: plays per game, then (in blue) its share of the 937,981 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 (21,845 wins) or Rotate Goals delivers it (7,459). 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 30.1 points from the 50% a perfectly even split would give it, seat effects are similarly small, and moving first is worth -0.5 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 6.0 actions per game while The Hoarder sits on 1.6, converting its quiet turns into the most placements (10.1/game) and bonus tiles (4.5/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 54.7%; The Liar trails at 46.9%. On the bluff axis specifically: The Honest One (bluff 0.0) wins 54.7%, The Liar (bluff 0.9) 46.9% — 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 61.8% 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; 38.2% were stealth wins. Winners had proven 1.2 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 6.8 times per game; only 35.3% of victories kept one goal the whole game (22.4% weathered one change, 42.3% two or more, and 10.3% ended on the dealt colour only because it left and came back). When a winner's goal moved, the arriving colour carried a 3.4-chain on average against 3.3 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: two 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 50% 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:45 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