penrose

An interactive exploration of Penrose tilings.

experiment 032026-05-11

I've been fascinated by Penrose tilings for years. Two shapes that cover an infinite floor and never repeat the same pattern? I watched Penrose himself lecture on them, watched the Veritasium video more than once, and I knew that I had so much more to learn. So I dug in and built this sketch to explore the topic and share what I've learned.

So here's the question. Is there a set of tiles that covers the whole plane but never repeats? For a long time, nobody knew.

A little history

In 1961 Hao Wang asked a sharper version. He worked with square tiles whose edges carry colors, joined only where colors match. His conjecture: any such set that can tile the plane at all can also tile it periodically. If true, no tile set could ever force non-repetition.

Wang was wrong. In 1966 his student Robert Berger built a set that tiles the plane and only ever aperiodically, using 20,426 tiles. What I love is what happened next, a decade-long countdown: Berger trimmed it, Donald Knuth got it lower, Raphael Robinson reached six in 1971.

Then Roger Penrose took it to two: first a kite and a dart, then the two simple rhombi this page uses, plus a rule about how their edges may meet. Martin Gardner's January 1977 column made them famous.

The two tiles

A thick rhombus, wide and squat, and a thinone, long and narrow, cut to the same edge length. In this exploration you'll see a recurring theme: the golden ratio φ (the Greek letter phi, pronounced “fye”) shows up everywhere, starting with these tiles' angles and diagonals; hover a tile below to see it. The shapes alone aren't enough, though. Left to themselves they'd happily tile the plane in a plain repeating pattern. It's Penrose's edge rule that forbids every repeating arrangement, and the coloured arcs below carry that rule: two tiles may share an edge only if the arcs continue across it, in colour and in position.

sketch 01 · meet the two tiles
72°108°THICK36°144°THIN

The coloured arcs are the matching rule: tiles may only meet so every arc continues across the shared edge. Hover a tile for its golden-ratio detail.

Tiling the plane

From here on, every sketch uses the same tile set: gold for the thick rhombus, teal for the thin. Press play below and watch the two tiles settle into a patch of the plane.

What grows is a quasicrystal pattern: fully ordered, but never periodic. Slide the finished tiling any distance in any direction and it never lands back on itself. That's a Penrose tiling.

sketch 02 · lay them into a tiling
thick thinhover a tile

Two shapes cover the plane with no gaps, and the order is quasiperiodic, never periodic: slide the tiling any distance in any direction and it never lands back on itself.

Hidden patterns

The tiling hides structure you can surface one layer at a time. Rosettes are the five-petal suns where five thick tiles meet. Ribbons are bands of tiles that run across the whole plane, one family per edge direction, the skeleton the famous Ammann bars trace. Arcs are the matching rule itself, drawn on every tile at once.

Use the picker below to switch between the three. Watch the arcs especially: they cross every edge unbroken, proof at a glance that the whole patch is legal.

sketch 03 · patterns start to surface

Rosettes: the five-petal suns where five thick tiles meet. Ribbons: bands of real tiles, lit by dimming the rest, running across the plane in one of five directions. Arcs: the matching rule from sketch 01 on every tile at once; on a legal tiling they cross every edge unbroken.

Every tile sits on exactly two ribbons, one per axis. The arcs join into winding strands and closed loops.

Two examples of dead-ends

Now try laying tiles yourself. The first sketch carves a small hole, six edges, out of a real patch. This hole has exactly one correct filling, yet two different rhombi fit its constrained edge with no overlap. Both look fine.

Press play and the sketch seats the tempting one. It fits, but what it leaves, shown in red, is two triangles, and no rhombus fits a triangle. No rule was invoked; the shapes alone decide. The arcs agree: no marking of the tempting piece continues its neighbours' arcs, while the correct filling lets them flow through.

sketch 04 · a piece fits, and still strands you

On the open plane the bare shapes never have to strand, because the plain repeating pattern is always available. That's why Penrose added the matching marks. Inside a bounded hole that option is gone, so the shapes alone can show you the dead-end.

The second sketch makes the same point with a bigger hole, sixteen edges. A thin rhombus fits one of its edges with zero overlap, and nothing about the move looks wrong.

Place it, fill in the rest as far as the shapes allow, and a red gap remains that no rhombus fits, not because a rule says no, but because the shapes collide. A move can look fine and still be a trap: of all the ways to start, only one finishes the hole.

sketch 05 · the thin fits, place it, now nothing fits

A move can fit and still lead to a dead-end, and nothing nearby warns you. The fix isn't a smarter local move: it's to stop tiling by hand and compute the whole plane at once.

Cut and project

The method is called cut and project, and the sketch below shows it one dimension down. Take the integer grid, draw a line through it at the golden slope, and keep only the points inside a thin strip around the line. Each kept point drops perpendicularly onto the line. Slide the strip and watch the selection change.

sketch 06 · cut and project, in a dimension you can see

The dropped points tile the line with two gaps, long and short, in ratio φ, in an order that never repeats. Cut is the strip, project is the drop, and the two lengths are a hint of the two tiles to come.

Here's the part I love: Penrose is this exact construction, one stage up. The grid is the integer lattice ℤ⁵, the line becomes our plane, and the strip becomes a window shaped like nested pentagons. A corner exists exactly when its 5D shadow lands in the window; a tile exists exactly when all four of its corners do. Every tile is decided on its own, no backtracking, so the plane is computed, never assembled, and it can never dead-end. Hover a tile below to watch its four corners land in the window.

sketch 07 · cut and project from ℤ⁵
PHYSICAL · THE TILINGINTERNAL · THE SHADOW WINDOWcorner shadow, index 2, inside the windowcorner shadow, index 3, inside the windowcorner shadow, index 4, inside the windowcorner shadow, index 3, inside the window

This tile is the shadow of lattice point [1, 0, 1, 0, 0 · thick]. Its four corners' shadows all land inside the window, so the plane keeps it. Notice the shadow is the other shape: a fat tile casts a thin outline, a thin tile a fat one, because internal space turns each edge by twice the angle physical space does. The crossed points are lattice points whose shadow lands outside, so the plane discards them.

Walk anywhere on the left and the plane never ends. The shadows on the right never leave this little window. That boundedness is the whole tiling, and the test is local to each point, so the build never strands. The address is just the ℤ⁵ coordinate.

Keep hold of that 5D coordinate. It's not just bookkeeping: it's the address the explorer reads under your cursor, and it comes back at the end of the page.

The pentagrid

There's a second way to see the same tiling, and it draws the whole thing at once. Take five families of evenly spaced parallel lines, one per pentagon direction, and lay them over each other. de Bruijn proved that every crossing is one tile: 72-degree crossings give fat rhombi, glancing 36-degree crossings give thin ones.

It's the same five dimensions from the other side: each crossing is one square face of the 5D lattice, and the rhombus is that face's shadow. Press play below and watch every crossing on the left become its tile on the right.

sketch 08 · the pentagrid
tiles in view 56thick 35thin 21thick ÷ thin 1.667

Five families of parallel lines, one per pentagon direction. Every crossing is one tile: a shallow 72° crossing makes a thick rhombus, a steep 144° one a thin rhombus. Each crossing is a square face of the 5D cube lattice, and the rhombus is its shadow. Hover a tile or a crossing and its partner lights up. Nothing is placed by hand, and every crossing in view becomes a tile.

Nothing is placed by hand: every crossing is a tile and every tile is a crossing, so the grid and the tiling carry the same information. Cut and project and the pentagrid are two faces of one construction.

Two tilings overlaid

Penrose noticed something on his overhead projector: lay two of these tilings over each other and turn one, and large regions snap into agreement while bands of disagreement run between them. Press play below: the top copy turns a fifth of a turn about a sun, slides a hair, and the pattern emerges.

sketch 09 · two tilings, one turned over the other

Press play: the two copies start in perfect overlap, one clean tiling. Turn the top one a fifth of a turn about the sun, slide it a hair, and a new pattern emerges on its own.

Where the copies agree, their edges land on each other and draw once: those are the bright islands. Where they disagree, the doubled edges read as denser bands between the islands. The whole network carries the same five-fold symmetry as the tiles.

Here's the strange part. Any two Penrose tilings share every finite patch you could name, yet there are uncountably many genuinely different ones, tilings no shift or turn will ever line up. Infinitely alike up close, never the same as a whole.

Every tile has an address

Every tile is the shadow of one square face of the lattice, so every tile carries a name: the five integers of its base corner plus which two directions span it. No two tiles share it. And since every edge runs in one of five fixed directions, you can walk to any tile along its edges. Trace the route below.

sketch 10 · every tile knows its address

Address [2, 2, -1, -1, 0]. Every edge of the tiling runs in one of five fixed directions, and each edge adds ±1 to the coordinate for that direction. So the address is just the running tally of the walk: start, step, step, until you land here on the real tile boundaries.

A tile far from the start carries big numbers, like [33, 151, 151, 12, 0]. Same rule, just more steps. The explorer never actually walks there: it reads the address straight off the lattice under your cursor, and a shared link is that address plus which two of the five directions span the tile.

That's what makes the explorer possible: a full coordinate system for a floor with no edges. The tile under your cursor reads its own address off the lattice, and a shared link is just that name, seven small integers that drop the next person on the exact same tile.

Self-similarity

Cut each tile into smaller rhombi by a fixed rule and you get another valid Penrose tiling, finer by a factor of φ. Run the rule backward and tiles fuse into a coarser one. It works forever in both directions.

The first sketch counts tiles as you deflate: the gold stack grows out to φ times the teal. In the infinite tiling the ratio is exactly φ, which is its own proof of non-periodicity: a periodic tiling repeats some finite block, so its ratio would be a fraction, and φ is not.

sketch 11 · the golden ratio appears
level 8thick 4,890thin 3,030thick ÷ thin 1.6139

Count the fat tiles and the thin ones and stack them. The gold stack runs φ ≈ 1.6180 times the blue, off by 0.0042 here. Deflate deeper and it lands on the golden ratio, the same φ that set the tile angles.

The second sketch draws each deflation level as a grid in its own colour. Zoom in and a finer grid nests inside every tile, the same two shapes at 1/φ the size, level after level: the pattern is, at every scale, a copy of itself.

sketch 12 · zoom the hierarchy
level 9each level alternates gold / bluetiles per supertile 2.618

Each grid is one deflation level, the next 1/φ ≈ 0.618 the size nested inside it, drawn in the opposite colour so the layers stay distinct. Every supertile holds φ² ≈ 2.618 of the tiles a level down. Inflate or deflate forever and you stay on a valid Penrose tiling, a copy of itself at every scale.

The explorer

The explorer generates whatever patch you're looking at on the fly, so you can pan forever: there's no edge to reach. Every tile shows its coordinate under the cursor, and any view is a link you can share. Go get lost in it.

go deeper

Everything on this page is classical mathematics, rebuilt here under test. These are the sources I learned it from, roughly in the order I'd hand them to a friend.