3D QR Codes Erik Demaine & Martin Demaine, 2025

In this exhibit, we're experimenting with the limits of QR (Quick Response) codes, in particular new ways to construct QR codes from physical material.

Most of our QR codes are built from several layers of material (wood, paper, or acrylic), where each layer is a single color. Building in this way has an interesting constraint: each layer must be a connected piece of material. We use a greedy algorithm to find the most white pixels that can appear in the top layer, then find the most black pixels that can appear in the second layer (while also including pixels from higher layers, to maximize connectivity), and so on. This algorithm is guaranteed to decompose the QR code into the optimal number of layers. (If we had three different colors instead of two, the problem becomes NP-complete, meaning that there is probably no efficient algorithm to optimize the layers.)

Surprisingly, most QR codes require only four layers to build in this way. In one piece, we show the individual layers in addition to the stack. If you want to try your own messages as multilayered QR codes, try out our open-source software!

Most of our QR codes use a feature of the QR specification that “black” versus “white” pixels are determined by brightness, or more technically, reflectance — the amount of reflected light. A pixel is considered black if it has less reflectance than midway between the maximum and minimum reflectance in the image, and otherwise it is considered white. This lets us use dark and light wood to represent black and white. We can also use a mix of colors: our paper QR codes use a different color for each layer, alternating between light and dark colors.


Layered Paper QR Codes

[P0201] “This Is Fine” (2025), Mi-Teintes paper, 11" × 11":

[P0202] “What's Your Favorite Color?” (2025), Mi-Teintes paper, 11" × 11":

[P0203] “The Light and Dark Sides of the Moon” (2025), Mi-Teintes paper, 11" × 11":

[P0204] “What Is the Color of Love?” (2025), Mi-Teintes paper, 11" × 11":


Layered Paper QR Codes with Images

These QR codes use a little-known technique for embedding images into QR codes. The QR specification defines the color (black or white) of each “pixel” by measuring brightness at the middle, where hypothetical grid lines would meet. This gives us room around the center of each pixel to change the color, and the QR code should still scan. We divide each QR pixel into a 6×6 grid, where the center 2×2 gets colored according to the QR code, while the remaining 89% of the grid gets colored according to the background image. The result is again a black-and-white image, which we build from layers of material.

[P0205] “Can't Keep My Eye Off of You” (2025), Mi-Teintes paper, 11" × 11":

[P0206] “My Fingerprints Are All Over This” (2025), Mi-Teintes paper, 11" × 11":


Layered Wood QR Codes

This QR code reveals a famous mathematical puzzle, invented in 1924 by Henry Ernest Dudeney:
S E N D
+ M O R E
M O N E Y

This puzzle represents long addition, except that each digit between 0 and 9 has been replaced by a letter. Each letter represents a different digit between 0 and 9. For example, the letter M represents the same digit in both MORE and MONEY, but you don't know which digit. Similarly, E represents the same digit in both SEND and MORE, and you don't know which digit, but you do know that it's different from the digit represented by M. The goal of the puzzle is to figure out which letters represent which digits. The solution turns out to be unique. This type of puzzle is called a cryptarithm. (In general, cryptarithms are also NP-complete, but this one is reasonable to solve.)

[P0211] “SEND + MORE = MONEY” (2025), baltic birch plywood, 11" × 11":

[P0211a] “SEND + MORE = MONEY Layer 1” (2025), baltic birch plywood, 11" × 11":

[P0211b] “SEND + MORE = MONEY Layer 2” (2025), baltic birch plywood, 11" × 11":

[P0211c] “SEND + MORE = MONEY Layer 3” (2025), baltic birch plywood, 11" × 11":

The following two codes would give the solution to the SEND + MORE = MONEY puzzle, but they intentionally don't scan. You are just given the outlines of the black regions of the QR code, and you would need to fill them in black in order to reveal the solution.

[P0212] “QR Coloring Book Inlay” (2025), baltic birch plywood, 11" × 11":

[P0213] “QR Coloring Book Stacked” (2025), baltic birch plywood, 11" × 11":

[P0214] “Self-Referential QR” (2025), baltic birch plywood, 11" × 11":

[P0215] “My Fingerprints Are All Over This Wood” (2025), baltic birch plywood, 11" × 11":


Curved Crease Sculpture

[0751] “QR Coloring Book” (2025), Mi-Teintes paper, 12" × 14" × 15" high: