# Forbidden patterns

> Almost every small patch of pieces you could build is impossible. For a 2×2 square, 99.72% of the ways to place four pieces can never be made to match.

- Canonical page (with interactive figures/demos): https://eternity2.dev/research/why/forbidden-patterns/
- Updated: 2026-07-01
- Topics: structure, search-space
- Reproduce: `just research-forbidden-patterns`
- Source: Forbidden patterns: article, source and results (GitHub) — https://github.com/raphael-anjou/eternity2/tree/main/research/topics/forbidden-patterns

---
Eternity II has 256 square tiles, each with a color on all four sides. 196 of
them are interior pieces, the ones with no grey border edge, so the only
ones that ever sit inside the board. Take a few of those, drop them into a
small shape, and rotate them however you like. Most of the time the colors
simply won't line up, no matter what you try.

The bigger the shape, the worse it gets. Two pieces side by side fail to fit
about 39% of the time. Add a third in an L and you're stuck 83% of the time.
Close up a 2×2 square and 99.72% of all placements are dead on arrival: only
about 1 in 358 works.

## One that fits, one that can't

<div className="grid max-w-2xl gap-6 sm:grid-cols-2">
  > **[Figure]** interactive: BoardSvg. Rendered on the canonical page (link above); not shown in this markdown export.
  > **[Figure]** interactive: BoardSvg. Rendered on the canonical page (link above); not shown in this markdown export.
</div>

## Try it: draw four pieces

> **[Figure]** Interactive: paint a patch and watch it forbid itself — interactive: ForbiddenPatchLab. Rendered on the canonical page (link above); not shown in this markdown export.

## Where 99.72% comes from

A rough estimate explains why the number is so high. Two adjacent pieces
share one edge. Each interior piece carries colors from the 17-color interior
palette, so a random pair of half-edges matches with probability roughly

$$
\Pr[\text{one edge matches}] \;\approx\; \frac{1}{17} \;\approx\; 6\%.
$$

A 2×2 square has four internal edges to satisfy at once. Rotations give each
piece four chances, but the four edges are coupled, so a back-of-the-envelope
independence estimate puts the chance all four match at very roughly

$$
\Pr[\text{2}\times\text{2 feasible}] \;\sim\; 1 - \left(1 - \tfrac{1}{17}\right)^{\!c} \ \text{per rotation budget} \;\Rightarrow\; \lesssim 1\%,
$$

which is already under one percent. The exact exhaustive count lands at 0.28%
feasible, that is 99.72% forbidden
$(\,0.28\% = \tfrac{3{,}993{,}696}{1{,}431{,}033{,}240}\,)$. The estimate is
crude because the edges aren't independent and the colors aren't uniform, but
it gets the order of magnitude right and shows why closing a square is so
much harder than placing a single pair.

## The exact counts

Every distinct-piece placement of each shape, checked exhaustively, with no
sampling.

| Shape            |     Placements |     Forbidden | Forbidden % |
| ---------------- | -------------: | ------------: | ----------: |
| Two side by side |         38,220 |        14,890 |      38.96% |
| Two stacked      |         38,220 |        14,890 |      38.96% |
| L of three       |      7,414,680 |     6,173,828 |      83.26% |
| 2×2 square       |  1,431,033,240 | 1,427,039,544 |      99.72% |

Computed exactly from the official set; the run reproduces identically every
time (about twenty seconds). The
[article, source and results are on GitHub](https://github.com/raphael-anjou/eternity2/tree/main/research/topics/forbidden-patterns).

## Forbidden before you even pick a piece

The scarcity starts one level below whole pieces, at the colors. An interior
cell shows two of the 17 interior colors on any given corner, the two edges
that meet there, which is $17 \times 17 = 289$ possible ordered color pairs. Not
all of them exist. Back in 2008 the community noticed that **20 of those 289
pairs are voids**: no interior piece, in any rotation, presents that particular
pair of colors on adjacent edges
([msg 5027](https://groups.io/g/eternity2/message/5027)). So a partial board that
forces a cell to answer with one of those 20 corner-pairs is dead on the spot,
before a single piece is tried, and a fast solver can reject it with one table
lookup. It is the same lesson as the 2×2 count, pushed down to the smallest unit
that can be impossible: the constraints bite so early that whole categories of
local demand have no legal answer at all.

## Why it matters

A finished, correct board has zero forbidden patches: by definition,
everything matches. So counting the forbidden patches in a board tells you
roughly how far it is from a real solution, even when two boards have the
same number of matched edges. Weak boards are full of forbidden squares; the
best boards ever found have only a couple of dozen left.

It also shows, from another angle, why the puzzle shrugs off clever local
fixes. When 99.72% of small squares are impossible, the pieces that do fit
together are rare and specific. There's almost no room to shuffle things
around without breaking something. The good arrangements are scarce and
rigid.

## A second axis of progress

Counting forbidden squares turns the idea into a usable signal. Pick a real
record board: the number of forbidden 2×2 windows falls as the matched-edge
score rises. Two boards with the same edge-score can still differ here: the
one with fewer forbidden squares is structurally closer to a solution, which
is why some solvers track forbidden-patch count as a tiebreak.

> **[Figure]** Interactive: count feasible vs forbidden placements — interactive: ForbiddenCountLab. Rendered on the canonical page (link above); not shown in this markdown export.

## Related

- [Entropy and the area law](https://eternity2.dev/research/why/entropy-area-law) — Eternity II has two rules: edges must match, and each piece is used once. The first is generous. All the hardness lives in the second.
- [KEYRING](https://eternity2.dev/research/lab/experiments/raphael-anjou/learning/keyring) — Build a board from scratch, ranking each next piece by three signals learned from past strong boards. Reached 460 in a board family no earlier search had cracked.
- [Arc consistency, from AC-3 up](https://eternity2.dev/research/build/reduce/arc-consistency) — Forward checking looks one move ahead; arc consistency makes every cell's candidate list defend itself against every neighbour's, to a fixed point. Mackworth's AC-3, the optimal refinements that followed, and what the whole family actually measured on this puzzle, including where it is unsound.
