Study 3 · Three players · with the Prism

MOSAIC LAB

complete

A simulation study of how Mosaic is actually played.

1,000,000
complete games played

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

The headline numbers

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

20,271,100
moves simulated
17
median moves / game
+1.6pp
first-mover edge over moving last
48.3%
wins where an opponent had proven the winner's goal
48.5%
wins where the winner's goal never changed hands

The shape of a game

20,271,100 moves break down into 14,853,285 pattern placements (14.9/game) and 5,282,009 actions (5.3/game) — per-tile and per-action detail below in Every card's story.

6
fastest win (moves)
17
median game
86
longest game won by a chain
98
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.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 6,619 shared victories here were exactly that (6,619 of the 13,616 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 26 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

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

33% = fairGoal RGoal R: 20.1%20.1%Goal GGoal G: 20.2%20.2%Goal BGoal B: 20.2%20.2%Goal YGoal Y: 20.1%20.1%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

33% = fairGoal RGoal R: 19.9%19.9%Goal GGoal G: 20.0%20.0%Goal BGoal B: 20.0%20.0%Goal YGoal Y: 20.0%20.0%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,600 of 1,000,000 games (0.7%) 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 9,949 co-winning pairs, the most common are G+M (1,048), B+G (1,020), B+R (1,013). The mesh is essentially flat (942–1,048 per pair, within noise) — and the hidden pentagon, so loud in the bonus economy, is silent here (4,999 along the cycle vs 4,950 across). Ties are blind to colour structure.

The personas

Six personalities over four parameters. Three 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 38.8%
Actions 2.0/gm
Bonus tiles 1.9/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 27.2%
Actions 1.7/gm
Bonus tiles 1.7/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 33.8%
Actions 0.7/gm
Bonus tiles 2.3/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 34.1%
Actions 3.1/gm
Bonus tiles 1.5/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 35.6%
Actions 1.4/gm
Bonus tiles 2.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 32.2%
Actions 1.7/gm
Bonus tiles 2.0/gm

Personas

33% = fairThe Honest OneThe Honest One: 38.8%38.8%The HunterThe Hunter: 35.6%35.6%The SpenderThe Spender: 34.1%34.1%The HoarderThe Hoarder: 33.8%33.8%The OpportunistThe Opportunist: 32.2%32.2%The LiarThe Liar: 27.2%27.2%
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 Hoarder0.712.265.72
The Honest One1.981.904.82
The Hunter1.381.975.27
The Liar1.671.744.91
The Opportunist1.682.024.97
The Spender3.141.534.01
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,002,288). 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 = win01020304050607080moves of this one gameGoal RGoal GGoal BGoal YGoal M
Goal RGoal GGoal BGoal YGoal M
The longest chain victory — 86 moves (seed 10,107,920). 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): 0 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): 1 tiles landed(-2,8): 2 tiles landed(-1,8): 2 tiles landed(0,8): 4 tiles landed(1,8): 4 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,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): 2 tiles landed(-3,7): 3 tiles landed(-2,7): 11 tiles landed(-1,7): 23 tiles landed(0,7): 37 tiles landed(1,7): 28 tiles landed(2,7): 14 tiles landed(3,7): 4 tiles landed(4,7): 4 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): 2 tiles landed(-4,6): 10 tiles landed(-3,6): 41 tiles landed(-2,6): 132 tiles landed(-1,6): 252 tiles landed(0,6): 337 tiles landed(1,6): 239 tiles landed(2,6): 129 tiles landed(3,6): 44 tiles landed(4,6): 7 tiles landed(5,6): 1 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): 0 tiles landed(-6,5): 3 tiles landed(-5,5): 21 tiles landed(-4,5): 95 tiles landed(-3,5): 351 tiles landed(-2,5): 1,055 tiles landed(-1,5): 2,209 tiles landed(0,5): 2,786 tiles landed(1,5): 2,123 tiles landed(2,5): 1,033 tiles landed(3,5): 351 tiles landed(4,5): 71 tiles landed(5,5): 16 tiles landed(6,5): 3 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): 9 tiles landed(-5,4): 73 tiles landed(-4,4): 456 tiles landed(-3,4): 2,081 tiles landed(-2,4): 6,715 tiles landed(-1,4): 15,114 tiles landed(0,4): 20,020 tiles landed(1,4): 14,936 tiles landed(2,4): 6,803 tiles landed(3,4): 2,085 tiles landed(4,4): 428 tiles landed(5,4): 72 tiles landed(6,4): 12 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): 1 tiles landed(-7,3): 3 tiles landed(-6,3): 42 tiles landed(-5,3): 302 tiles landed(-4,3): 2,011 tiles landed(-3,3): 9,678 tiles landed(-2,3): 35,699 tiles landed(-1,3): 88,253 tiles landed(0,3): 120,736 tiles landed(1,3): 88,128 tiles landed(2,3): 35,912 tiles landed(3,3): 9,965 tiles landed(4,3): 1,983 tiles landed(5,3): 306 tiles landed(6,3): 40 tiles landed(7,3): 4 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): 3 tiles landed(-7,2): 16 tiles landed(-6,2): 120 tiles landed(-5,2): 982 tiles landed(-4,2): 6,418 tiles landed(-3,2): 34,761 tiles landed(-2,2): 145,574 tiles landed(-1,2): 382,407 tiles landed(0,2): 525,150 tiles landed(1,2): 384,327 tiles landed(2,2): 147,068 tiles landed(3,2): 35,657 tiles landed(4,2): 6,610 tiles landed(5,2): 1,010 tiles landed(6,2): 122 tiles landed(7,2): 15 tiles landed(8,2): 1 tiles landed(9,2): 0 tiles landed(10,2): 0 tiles landed(-10,1): 0 tiles landed(-9,1): 0 tiles landed(-8,1): 2 tiles landed(-7,1): 28 tiles landed(-6,1): 253 tiles landed(-5,1): 1,998 tiles landed(-4,1): 14,156 tiles landed(-3,1): 84,393 tiles landed(-2,1): 378,003 tiles landed(-1,1): 913,746 tiles landed(0,1): 1,170,701 tiles landed(1,1): 915,507 tiles landed(2,1): 380,585 tiles landed(3,1): 86,616 tiles landed(4,1): 14,442 tiles landed(5,1): 2,039 tiles landed(6,1): 269 tiles landed(7,1): 30 tiles landed(8,1): 4 tiles landed(9,1): 0 tiles landed(10,1): 0 tiles landed(-10,0): 0 tiles landed(-9,0): 0 tiles landed(-8,0): 4 tiles landed(-7,0): 41 tiles landed(-6,0): 327 tiles landed(-5,0): 2,532 tiles landed(-4,0): 18,754 tiles landed(-3,0): 116,022 tiles landed(-2,0): 517,242 tiles landed(-1,0): 1,164,756 tiles landed(0,0): 0 tiles landed(1,0): 1,167,886 tiles landed(2,0): 521,935 tiles landed(3,0): 119,487 tiles landed(4,0): 19,586 tiles landed(5,0): 2,684 tiles landed(6,0): 350 tiles landed(7,0): 40 tiles landed(8,0): 6 tiles landed(9,0): 1 tiles landed(10,0): 1 tiles landed(-10,-1): 0 tiles landed(-9,-1): 0 tiles landed(-8,-1): 6 tiles landed(-7,-1): 31 tiles landed(-6,-1): 226 tiles landed(-5,-1): 1,974 tiles landed(-4,-1): 14,123 tiles landed(-3,-1): 85,113 tiles landed(-2,-1): 377,795 tiles landed(-1,-1): 913,851 tiles landed(0,-1): 1,166,805 tiles landed(1,-1): 914,821 tiles landed(2,-1): 382,002 tiles landed(3,-1): 86,753 tiles landed(4,-1): 14,550 tiles landed(5,-1): 2,052 tiles landed(6,-1): 272 tiles landed(7,-1): 24 tiles landed(8,-1): 0 tiles landed(9,-1): 0 tiles landed(10,-1): 1 tiles landed(-10,-2): 0 tiles landed(-9,-2): 0 tiles landed(-8,-2): 0 tiles landed(-7,-2): 8 tiles landed(-6,-2): 101 tiles landed(-5,-2): 951 tiles landed(-4,-2): 6,450 tiles landed(-3,-2): 34,774 tiles landed(-2,-2): 145,148 tiles landed(-1,-2): 382,114 tiles landed(0,-2): 520,726 tiles landed(1,-2): 379,555 tiles landed(2,-2): 146,056 tiles landed(3,-2): 35,028 tiles landed(4,-2): 6,566 tiles landed(5,-2): 986 tiles landed(6,-2): 134 tiles landed(7,-2): 11 tiles landed(8,-2): 3 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): 3 tiles landed(-6,-3): 37 tiles landed(-5,-3): 318 tiles landed(-4,-3): 1,945 tiles landed(-3,-3): 9,616 tiles landed(-2,-3): 35,170 tiles landed(-1,-3): 86,730 tiles landed(0,-3): 118,634 tiles landed(1,-3): 86,107 tiles landed(2,-3): 35,266 tiles landed(3,-3): 9,769 tiles landed(4,-3): 2,061 tiles landed(5,-3): 339 tiles landed(6,-3): 36 tiles landed(7,-3): 3 tiles landed(8,-3): 1 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): 2 tiles landed(-6,-4): 7 tiles landed(-5,-4): 61 tiles landed(-4,-4): 427 tiles landed(-3,-4): 2,003 tiles landed(-2,-4): 6,555 tiles landed(-1,-4): 14,683 tiles landed(0,-4): 19,338 tiles landed(1,-4): 14,450 tiles landed(2,-4): 6,663 tiles landed(3,-4): 2,092 tiles landed(4,-4): 472 tiles landed(5,-4): 86 tiles landed(6,-4): 12 tiles landed(7,-4): 2 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): 0 tiles landed(-6,-5): 1 tiles landed(-5,-5): 9 tiles landed(-4,-5): 97 tiles landed(-3,-5): 348 tiles landed(-2,-5): 992 tiles landed(-1,-5): 1,995 tiles landed(0,-5): 2,645 tiles landed(1,-5): 2,030 tiles landed(2,-5): 1,018 tiles landed(3,-5): 322 tiles landed(4,-5): 67 tiles landed(5,-5): 9 tiles landed(6,-5): 0 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): 15 tiles landed(-3,-6): 45 tiles landed(-2,-6): 119 tiles landed(-1,-6): 236 tiles landed(0,-6): 293 tiles landed(1,-6): 260 tiles landed(2,-6): 122 tiles landed(3,-6): 37 tiles landed(4,-6): 3 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,-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): 4 tiles landed(-1,-7): 29 tiles landed(0,-7): 27 tiles landed(1,-7): 29 tiles landed(2,-7): 12 tiles landed(3,-7): 6 tiles landed(4,-7): 0 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): 1 tiles landed(-1,-8): 1 tiles landed(0,-8): 3 tiles landed(1,-8): 4 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 23.1 cells of coordinate space.
The most sprawling board — a 10×12 bounding box (120 cells, seed 70,102,012). 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 3,614,967 along the 13-cycle to 2,004,349 across the 11-diagonals — a per-pair ratio of 1.80 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)
~1032
game-tree playouts at median depth (81 choices × 17 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 × 1032 playouts ≈ 1056 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 = 17, a median game sits in a tree of roughly

bd ≈ 8117 ≈ 1032

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 48.3% 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,619,316 times)
1 in 65
connect 3 colours (227,786 times)
1 in 5,249
connect 4 colours (2,830 times)
6,083,378
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.41 tiles per placement — in plain terms, every tile you place carries roughly a 41% 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-1y1g1b1m x-1y1g1b1m 22,326 wins (2.3%)
2 x-1r1y1m1g x-1r1y1m1g 22,310 wins (2.3%)
3 x-1b1r1g1y x-1b1r1g1y 22,300 wins (2.3%)
Top finishers — actions
1 Rotate pattern 122,453 wins (12.4%)
2 Move pattern 111,404 wins (11.3%)
3 Trade goals 22,961 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, 78.8% of chain wins are +1 crawls and 21.2% are bridges of +2 or more — and in the bridge wins the finisher mix flips toward the strong connectors: rotate-pattern (49,424), slash (24,078), window (22,606), move-pattern (20,268). 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.91 plays/game won 0 games (0.0%)
Move pattern 0.99 plays/game won 111,404 games (11.3%)
Rotate pattern 0.92 plays/game won 122,453 games (12.4%)
Rotate goals 0.66 plays/game won 8,711 games (0.9%)
Trade goals 0.76 plays/game won 22,961 games (2.3%)
Trade tiles 0.57 plays/game won 0 games (0.0%)
Reverse direction 0.47 plays/game won 0 games (0.0%)

Every printed card

solid
solid-4b 0.20 1.0%
solid-4g 0.20 1.0%
solid-4m 0.20 1.0%
solid-4r 0.20 1.0%
solid-4y 0.20 1.0%
divide
divide-2b1g1y 0.32 2.0%
divide-2g1r1b 0.32 2.0%
divide-2m1y1r 0.33 2.0%
divide-2r1m1g 0.32 2.0%
divide-2y1b1m 0.32 2.0%
x
x-1b1r1g1y 0.35 2.3%
x-1g1m1r1b 0.35 2.3%
x-1m1b1y1r 0.35 2.3%
x-1r1y1m1g 0.35 2.3%
x-1y1g1b1m 0.35 2.3%
slash
slash-2b2m 0.29 1.7%
slash-2g2y 0.29 1.6%
slash-2m2g 0.29 1.7%
slash-2r2b 0.29 1.6%
slash-2y2r 0.29 1.6%
window
window-3b3y 0.33 1.4%
window-3g3b 0.32 1.4%
window-3m3r 0.33 1.3%
window-3r3g 0.33 1.4%
window-3y3m 0.33 1.4%
hook
hook-4b2g 0.32 1.3%
hook-4g2r 0.32 1.3%
hook-4m2y 0.32 1.3%
hook-4r2m 0.32 1.3%
hook-4y2b 0.32 1.3%
stack
stack-3b2m2r 0.37 1.7%
stack-3g2y2m 0.37 1.7%
stack-3m2b2g 0.38 1.6%
stack-3r2b2y 0.36 1.7%
stack-3y2r2g 0.36 1.7%
lane
lane-4b2r2g 0.38 1.6%
lane-4g2m2r 0.38 1.6%
lane-4m2b2y 0.38 1.6%
lane-4r2y2m 0.38 1.6%
lane-4y2g2b 0.38 1.6%
grid
grid-2b2y2m2r 0.40 1.9%
grid-2g2b2y2m 0.41 1.9%
grid-2m2r2g2b 0.41 1.8%
grid-2r2g2b2y 0.40 1.9%
grid-2y2m2r2g 0.40 1.9%
Per tile: plays per game, then (in blue) its share of the 986,384 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 (22,961 wins) or Rotate Goals delivers it (8,711). 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 13.4 points from the 33% a perfectly even split would give it, seat effects are similarly small, and moving first is worth +1.6 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.1 actions per game while The Hoarder sits on 0.7, converting its quiet turns into the most placements (5.7/game) and bonus tiles (2.3/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 38.8%; The Liar trails at 27.2%. On the bluff axis specifically: The Honest One (bluff 0.0) wins 38.8%, The Liar (bluff 0.9) 27.2% — 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 48.3% 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; 51.7% 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.8 times per game; only 48.5% of victories kept one goal the whole game (24.4% weathered one change, 27.1% two or more, and 7.0% ended on the dealt colour only because it left and came back). When a winner's goal moved, the arriving colour carried a 3.9-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: three 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 33% 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:34 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