Study 4 · Two players · with the Prism

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 (+1.5 points over moving last), and straightforward play is currently outperforming sustained bluffing (57.6% vs 41.9%).

The headline numbers

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

18,700,900
moves simulated
16
median moves / game
+1.5pp
first-mover edge over moving last
44.7%
wins where an opponent had proven the winner's goal
49.9%
wins where the winner's goal never changed hands

The shape of a game

18,700,900 moves break down into 13,866,258 pattern placements (13.9/game) and 4,717,082 actions (4.7/game) — per-tile and per-action detail below in Every card's story.

6
fastest win (moves)
16
median game
72
longest game won by a chain
88
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: 1.9% 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 6,003 shared victories here were exactly that (6,003 of the 19,046 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 28 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: 50.8%50.8%Moves 2ndMoves 2nd: 49.2%49.2%
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.1%20.1%Goal GGoal G: 20.1%20.1%Goal BGoal B: 20.1%20.1%Goal YGoal Y: 20.0%20.0%Goal MGoal M: 20.3%20.3%
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.1%20.1%
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

6,000 of 1,000,000 games (0.6%) 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 6,003 co-winning pairs, the most common are M+R (661), B+G (637), B+R (614). The mesh is uneven: M+R ties most, G+R least; pentagon split 3,038 along the cycle vs 2,965 across.

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 57.6%
Actions 2.5/gm
Bonus tiles 2.6/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 41.9%
Actions 2.3/gm
Bonus tiles 2.4/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 49.7%
Actions 1.0/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 51.4%
Actions 4.4/gm
Bonus tiles 2.3/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.7%
Actions 1.8/gm
Bonus tiles 2.7/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 48.6%
Actions 2.2/gm
Bonus tiles 2.7/gm

Personas

50% = fairThe Honest OneThe Honest One: 57.6%57.6%The HunterThe Hunter: 52.7%52.7%The SpenderThe Spender: 51.4%51.4%The HoarderThe Hoarder: 49.7%49.7%The OpportunistThe Opportunist: 48.6%48.6%The LiarThe Liar: 41.9%41.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.022.957.69
The Honest One2.502.626.77
The Hunter1.792.667.27
The Liar2.272.426.91
The Opportunist2.212.736.95
The Spender4.362.296.00
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 = win0123456moves of this one gameGoal RGoal GGoal BGoal YGoal M
Goal RGoal GGoal BGoal YGoal M
The fastest win — 6 moves (seed 10,003,082). 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 = win010203040506070moves of this one gameGoal RGoal GGoal BGoal YGoal M
Goal RGoal GGoal BGoal YGoal M
The longest chain victory — 72 moves (seed 40,018,240). 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): 1 tiles landed(0,9): 1 tiles landed(1,9): 1 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,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): 0 tiles landed(-2,8): 0 tiles landed(-1,8): 2 tiles landed(0,8): 5 tiles landed(1,8): 5 tiles landed(2,8): 1 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,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): 0 tiles landed(-4,7): 0 tiles landed(-3,7): 4 tiles landed(-2,7): 9 tiles landed(-1,7): 22 tiles landed(0,7): 33 tiles landed(1,7): 23 tiles landed(2,7): 11 tiles landed(3,7): 3 tiles landed(4,7): 1 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): 0 tiles landed(-6,6): 0 tiles landed(-5,6): 1 tiles landed(-4,6): 5 tiles landed(-3,6): 30 tiles landed(-2,6): 128 tiles landed(-1,6): 222 tiles landed(0,6): 277 tiles landed(1,6): 204 tiles landed(2,6): 101 tiles landed(3,6): 31 tiles landed(4,6): 9 tiles landed(5,6): 0 tiles landed(6,6): 0 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): 0 tiles landed(-6,5): 0 tiles landed(-5,5): 12 tiles landed(-4,5): 59 tiles landed(-3,5): 249 tiles landed(-2,5): 856 tiles landed(-1,5): 1,714 tiles landed(0,5): 2,259 tiles landed(1,5): 1,628 tiles landed(2,5): 808 tiles landed(3,5): 243 tiles landed(4,5): 54 tiles landed(5,5): 4 tiles landed(6,5): 1 tiles landed(7,5): 0 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): 0 tiles landed(-7,4): 1 tiles landed(-6,4): 8 tiles landed(-5,4): 59 tiles landed(-4,4): 334 tiles landed(-3,4): 1,696 tiles landed(-2,4): 5,642 tiles landed(-1,4): 12,690 tiles landed(0,4): 17,023 tiles landed(1,4): 12,372 tiles landed(2,4): 5,545 tiles landed(3,4): 1,621 tiles landed(4,4): 327 tiles landed(5,4): 53 tiles landed(6,4): 3 tiles landed(7,4): 1 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): 0 tiles landed(-7,3): 2 tiles landed(-6,3): 30 tiles landed(-5,3): 250 tiles landed(-4,3): 1,627 tiles landed(-3,3): 7,999 tiles landed(-2,3): 30,110 tiles landed(-1,3): 75,484 tiles landed(0,3): 104,700 tiles landed(1,3): 74,809 tiles landed(2,3): 30,161 tiles landed(3,3): 8,018 tiles landed(4,3): 1,608 tiles landed(5,3): 233 tiles landed(6,3): 27 tiles landed(7,3): 2 tiles landed(8,3): 1 tiles landed(9,3): 1 tiles landed(10,3): 0 tiles landed(-10,2): 0 tiles landed(-9,2): 0 tiles landed(-8,2): 0 tiles landed(-7,2): 6 tiles landed(-6,2): 103 tiles landed(-5,2): 777 tiles landed(-4,2): 5,421 tiles landed(-3,2): 29,307 tiles landed(-2,2): 125,790 tiles landed(-1,2): 343,468 tiles landed(0,2): 479,696 tiles landed(1,2): 343,376 tiles landed(2,2): 125,828 tiles landed(3,2): 29,653 tiles landed(4,2): 5,421 tiles landed(5,2): 744 tiles landed(6,2): 112 tiles landed(7,2): 13 tiles landed(8,2): 2 tiles landed(9,2): 1 tiles landed(10,2): 0 tiles landed(-10,1): 0 tiles landed(-9,1): 0 tiles landed(-8,1): 1 tiles landed(-7,1): 17 tiles landed(-6,1): 187 tiles landed(-5,1): 1,708 tiles landed(-4,1): 12,098 tiles landed(-3,1): 72,438 tiles landed(-2,1): 338,151 tiles landed(-1,1): 876,365 tiles landed(0,1): 1,154,499 tiles landed(1,1): 876,850 tiles landed(2,1): 339,756 tiles landed(3,1): 73,991 tiles landed(4,1): 12,346 tiles landed(5,1): 1,677 tiles landed(6,1): 202 tiles landed(7,1): 22 tiles landed(8,1): 0 tiles landed(9,1): 0 tiles landed(10,1): 0 tiles landed(-10,0): 0 tiles landed(-9,0): 0 tiles landed(-8,0): 3 tiles landed(-7,0): 21 tiles landed(-6,0): 218 tiles landed(-5,0): 2,100 tiles landed(-4,0): 16,094 tiles landed(-3,0): 100,174 tiles landed(-2,0): 472,496 tiles landed(-1,0): 1,146,943 tiles landed(0,0): 0 tiles landed(1,0): 1,152,203 tiles landed(2,0): 477,420 tiles landed(3,0): 102,417 tiles landed(4,0): 16,389 tiles landed(5,0): 2,208 tiles landed(6,0): 243 tiles landed(7,0): 14 tiles landed(8,0): 1 tiles landed(9,0): 0 tiles landed(10,0): 0 tiles landed(-10,-1): 0 tiles landed(-9,-1): 0 tiles landed(-8,-1): 1 tiles landed(-7,-1): 17 tiles landed(-6,-1): 160 tiles landed(-5,-1): 1,642 tiles landed(-4,-1): 12,106 tiles landed(-3,-1): 72,941 tiles landed(-2,-1): 338,226 tiles landed(-1,-1): 874,242 tiles landed(0,-1): 1,150,497 tiles landed(1,-1): 875,738 tiles landed(2,-1): 342,585 tiles landed(3,-1): 74,353 tiles landed(4,-1): 12,360 tiles landed(5,-1): 1,650 tiles landed(6,-1): 179 tiles landed(7,-1): 12 tiles landed(8,-1): 1 tiles landed(9,-1): 0 tiles landed(10,-1): 0 tiles landed(-10,-2): 0 tiles landed(-9,-2): 0 tiles landed(-8,-2): 1 tiles landed(-7,-2): 4 tiles landed(-6,-2): 78 tiles landed(-5,-2): 734 tiles landed(-4,-2): 5,318 tiles landed(-3,-2): 29,413 tiles landed(-2,-2): 125,217 tiles landed(-1,-2): 342,010 tiles landed(0,-2): 477,729 tiles landed(1,-2): 339,878 tiles landed(2,-2): 125,485 tiles landed(3,-2): 29,743 tiles landed(4,-2): 5,534 tiles landed(5,-2): 797 tiles landed(6,-2): 82 tiles landed(7,-2): 9 tiles landed(8,-2): 0 tiles landed(9,-2): 0 tiles landed(10,-2): 0 tiles landed(-10,-3): 0 tiles landed(-9,-3): 0 tiles landed(-8,-3): 0 tiles landed(-7,-3): 2 tiles landed(-6,-3): 20 tiles landed(-5,-3): 226 tiles landed(-4,-3): 1,521 tiles landed(-3,-3): 8,068 tiles landed(-2,-3): 29,815 tiles landed(-1,-3): 74,964 tiles landed(0,-3): 103,006 tiles landed(1,-3): 73,958 tiles landed(2,-3): 29,939 tiles landed(3,-3): 8,133 tiles landed(4,-3): 1,592 tiles landed(5,-3): 253 tiles landed(6,-3): 28 tiles landed(7,-3): 2 tiles landed(8,-3): 0 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): 0 tiles landed(-6,-4): 9 tiles landed(-5,-4): 54 tiles landed(-4,-4): 303 tiles landed(-3,-4): 1,559 tiles landed(-2,-4): 5,613 tiles landed(-1,-4): 12,541 tiles landed(0,-4): 16,542 tiles landed(1,-4): 12,371 tiles landed(2,-4): 5,422 tiles landed(3,-4): 1,593 tiles landed(4,-4): 313 tiles landed(5,-4): 58 tiles landed(6,-4): 3 tiles landed(7,-4): 1 tiles landed(8,-4): 0 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): 0 tiles landed(-6,-5): 2 tiles landed(-5,-5): 6 tiles landed(-4,-5): 52 tiles landed(-3,-5): 228 tiles landed(-2,-5): 794 tiles landed(-1,-5): 1,784 tiles landed(0,-5): 2,231 tiles landed(1,-5): 1,683 tiles landed(2,-5): 808 tiles landed(3,-5): 229 tiles landed(4,-5): 59 tiles landed(5,-5): 8 tiles landed(6,-5): 1 tiles landed(7,-5): 0 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): 1 tiles landed(-5,-6): 1 tiles landed(-4,-6): 4 tiles landed(-3,-6): 31 tiles landed(-2,-6): 106 tiles landed(-1,-6): 202 tiles landed(0,-6): 269 tiles landed(1,-6): 190 tiles landed(2,-6): 91 tiles landed(3,-6): 30 tiles landed(4,-6): 9 tiles landed(5,-6): 3 tiles landed(6,-6): 0 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): 0 tiles landed(-4,-7): 0 tiles landed(-3,-7): 2 tiles landed(-2,-7): 10 tiles landed(-1,-7): 20 tiles landed(0,-7): 25 tiles landed(1,-7): 18 tiles landed(2,-7): 11 tiles landed(3,-7): 6 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,-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): 0 tiles landed(-2,-8): 2 tiles landed(-1,-8): 1 tiles landed(0,-8): 4 tiles landed(1,-8): 2 tiles landed(2,-8): 0 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): 0 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 21.7 cells of coordinate space.
The most sprawling board — a 11×10 bounding box (110 cells, seed 10,037,470). The farthest any tile has landed from the Prism: 9.49 cells away, at (9,3).

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 3,282,024 along the 13-cycle to 1,806,319 across the 11-diagonals — a per-pair ratio of 1.82 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)
~1031
game-tree playouts at median depth (81 choices × 16 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 × 1031 playouts ≈ 1055 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 = 16, a median game sits in a tree of roughly

bd ≈ 8116 ≈ 1031

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 0.8 opponent goals on average, and 44.7% 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 3
placements connect 2 colours (5,088,343 times)
1 in 72
connect 3 colours (192,475 times)
1 in 4,862
connect 4 colours (2,852 times)
5,481,849
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.40 tiles per placement — in plain terms, every tile you place carries roughly a 40% 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,332 wins (2.4%)
2 x-1y1g1b1m x-1y1g1b1m 23,296 wins (2.4%)
3 x-1r1y1m1g x-1r1y1m1g 23,160 wins (2.4%)
Top finishers — actions
1 Rotate pattern 118,562 wins (12.1%)
2 Move pattern 114,579 wins (11.7%)
3 Trade goals 40,352 wins (4.1%)

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, 84.3% of chain wins are +1 crawls and 15.8% are bridges of +2 or more — and in the bridge wins the finisher mix flips toward the strong connectors: rotate-pattern (39,212), slash (17,758), window (16,144), move-pattern (14,969). 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 0.81 plays/game won 0 games (0.0%)
Move pattern 0.91 plays/game won 114,579 games (11.7%)
Rotate pattern 0.84 plays/game won 118,562 games (12.1%)
Rotate goals 0.59 plays/game won 13,955 games (1.4%)
Trade goals 0.70 plays/game won 40,352 games (4.1%)
Trade tiles 0.49 plays/game won 0 games (0.0%)
Reverse direction 0.38 plays/game won 0 games (0.0%)

Every printed card

solid
solid-4b 0.20 0.9%
solid-4g 0.20 0.9%
solid-4m 0.20 0.9%
solid-4r 0.20 0.9%
solid-4y 0.20 0.9%
divide
divide-2b1g1y 0.30 2.0%
divide-2g1r1b 0.30 2.0%
divide-2m1y1r 0.31 2.0%
divide-2r1m1g 0.30 2.0%
divide-2y1b1m 0.30 2.0%
x
x-1b1r1g1y 0.33 2.4%
x-1g1m1r1b 0.33 2.4%
x-1m1b1y1r 0.33 2.3%
x-1r1y1m1g 0.33 2.4%
x-1y1g1b1m 0.33 2.4%
slash
slash-2b2m 0.27 1.6%
slash-2g2y 0.27 1.5%
slash-2m2g 0.27 1.6%
slash-2r2b 0.27 1.5%
slash-2y2r 0.27 1.5%
window
window-3b3y 0.30 1.2%
window-3g3b 0.30 1.2%
window-3m3r 0.30 1.3%
window-3r3g 0.31 1.2%
window-3y3m 0.30 1.2%
hook
hook-4b2g 0.30 1.2%
hook-4g2r 0.30 1.2%
hook-4m2y 0.30 1.2%
hook-4r2m 0.30 1.2%
hook-4y2b 0.30 1.2%
stack
stack-3b2m2r 0.34 1.6%
stack-3g2y2m 0.34 1.6%
stack-3m2b2g 0.35 1.5%
stack-3r2b2y 0.34 1.6%
stack-3y2r2g 0.34 1.6%
lane
lane-4b2r2g 0.35 1.5%
lane-4g2m2r 0.35 1.5%
lane-4m2b2y 0.35 1.5%
lane-4r2y2m 0.35 1.5%
lane-4y2g2b 0.35 1.5%
grid
grid-2b2y2m2r 0.37 1.9%
grid-2g2b2y2m 0.37 1.8%
grid-2m2r2g2b 0.37 1.8%
grid-2r2g2b2y 0.37 1.9%
grid-2y2m2r2g 0.37 1.9%
Per tile: plays per game, then (in blue) its share of the 980,954 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 (40,352 wins) or Rotate Goals delivers it (13,955). 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 +1.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 4.4 actions per game while The Hoarder sits on 1.0, converting its quiet turns into the most placements (7.7/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 57.6%; The Liar trails at 41.9%. On the bluff axis specifically: The Honest One (bluff 0.0) wins 57.6%, The Liar (bluff 0.9) 41.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 44.7% 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; 55.3% were stealth wins. Winners had proven 0.8 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 4.3 times per game; only 49.9% of victories kept one goal the whole game (23.7% weathered one change, 26.4% two or more, and 6.9% 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.5 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:38 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