
Photo mosaics, in your browser
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.
At arm’s length
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.

Examples
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.
OriginalMosaic · Nature
⇔
OriginalMosaic · Space
⇔
OriginalMosaic · Everything
⇔
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.




How it works
A mosaic is three jobs. Two of them are embarrassingly parallel, and the third is a memcpy.
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.
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.
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
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.
Photos, photosets and mosaics stay on your device. Close the tab and nothing is left behind anywhere else.
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.
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?
Pick a ready-made photoset or build one from your own photos, choose a picture and a size, and generate.
Open the studio