Van Gogh's 1887 self-portrait, rebuilt from hundreds of smaller paintings

Photo mosaics, in your browser

Every picture is made of pictures.

Turn any photo into a mosaic of thousands of others, in under a second, without uploading a thing. Build a photoset from your own camera roll, pick a size, and take away a viewer that names the photo behind every tile.

Vincent van Gogh, Self-Portrait, 1887 (Art Institute of Chicago, CC0), rendered from 282 open-access paintings in a 96 × 122 grid.

282 paintings, 11,712 tiles

At arm’s length

Far away, a face. Up close, a museum.

Every tile is a whole photograph, cropped square and matched on colour and structure, not just average tone. A brush-stroke of red cheek becomes a tapestry; a shadow becomes a Dutch portrait.

A 1:1 crop of the portrait, showing the individual paintings that make it up
1:1 crop of the same render64 px tiles4 × 4 colour cells matched per tile

Examples

Any picture, out of any photos.

Drag the handle to compare the original with the mosaic. All three originals are public-domain works; all the tiles are openly licensed photos, credited in every export.

Seurat's A Sunday on La Grande Jatte as a mosaic of nature photographs OriginalMosaic · Nature ⇔
Seurat, A Sunday on La Grande Jatte, 1884. Pointillism, redone in 462 landscape photos at 120 tiles across. Art Institute of Chicago, CC0.
Earth seen from space as a mosaic of NASA photographs OriginalMosaic · Space ⇔
Earth, full disk over Africa, 1996. Galileo’s photograph, made of 494 NASA images: rockets, astronauts, other worlds. NASA/JPL, public domain.
Hokusai's Ejiri in Suruga Province as a mosaic of nature, flower and wildlife photographs OriginalMosaic · Everything ⇔
Hokusai, Ejiri in Suruga Province, c. 1830. A woodblock print in 1,394 nature, flower and wildlife photos. Art Institute of Chicago, CC0.

Photosets

Same portrait, four photosets.

The photoset is the mood. Paintings make a painting, flowers make a garden, and NASA makes a launch day. Use one of ours, or build your own from a folder of photos in a couple of minutes.

The portrait made of paintings
Art · 752 museum works
The portrait made of nature, flower and wildlife photos
Everything · 1,394 photos
The portrait made of flower photos
Flowers · 470 photos
The portrait made of NASA photos
Space · 494 NASA images

How it works

Do the slow part once. Then never again.

A mosaic is three jobs. Two of them are embarrassingly parallel, and the third is a memcpy.

1

Index: every photo becomes a tile, once.

Each photo is decoded, rotated the right way up, cropped square and scaled down with a Lanczos filter. The pixels and a 4 × 4 grid of colour measurements are written to one flat file, the photoset. Rendering never opens the originals again; a set built from a folder is good for every mosaic you ever make from it.

2

Match: find the tile that looks most like each cell.

The picture is cut into cells and each cell measured the same way as the tiles, in CIELAB, where distance means how different two colours look. Tiles are sorted by lightness, which gives an exact lower bound on the distance, so the search stops as soon as nothing further can win. Placement rules keep the same photo from repeating next to itself.

3

Stitch: copy the pixels into place.

Because every tile is already the right size and shape, assembling the picture is a straight copy, one row of tiles per thread. A 120,000-tile mosaic takes well under a second on a laptop, and the whole thing runs as WebAssembly in your tab, on every core your browser will give it.

Private by construction

Nothing leaves your browser.

There is no server to upload to. Your photos are read by your own machine, the photoset is kept in your browser’s storage, and the only things that ever travel are the files you choose to download.

0uploads

Photos, photosets and mosaics stay on your device. Close the tab and nothing is left behind anywhere else.

< 1second

Matching and stitching a 100-tile-wide mosaic takes a fraction of a second once the photoset is loaded. Change a slider; it re-renders as you drag.

1file to share

Export a folder with a web viewer: a preview that loads the full image as you zoom, and the photo, credit and source link behind every single tile.

Ready?

Make yours.

Pick a ready-made photoset or build one from your own photos, choose a picture and a size, and generate.

Open the studio