LEGO mosaic maker

CreativeTurn a photo or logo into a LEGO® mosaic you can actually build, matched only to brick colours still in production. Runs in your browser; nothing is uploaded.

Your file stays on this device. Nothing you open is ever uploaded. There is no server to upload it to.

What this does

Drop in a photo or a logo and this generator gives you a mosaic you can actually build out of LEGO® bricks. It splits the image into a grid, works out the closest real brick colour for every square, and then tells you exactly which pieces to buy and how many.

That last part is the whole point. Plenty of tools will show you a pixelated picture, and it is a pleasant thing to look at for about ten seconds. The hard part is turning that picture into a pile of bricks that genuinely exists, at a price you were expecting, in colours somebody will actually sell you.

How to use it

  1. Drop in an image. Logos, portraits and high-contrast subjects work best.
  2. Set the grid size. A standard baseplate is 32×32 studs.
  3. Pick your piece. Plates are studded and cheapest, flat tiles give a smooth photographic surface, and round tiles read a bit like a halftone print.
  4. Nudge the colour count down if the parts list has colours you would rather not go hunting for.
  5. Export the instructions, then copy the wanted list to price the whole thing up in one go.

A logo is the easiest thing to build here, and usually a better first project than a portrait.

A photograph is continuous tone, so reducing it to studs is a lossy translation and it needs a large grid before a face reassembles. A logo is already flat colour with hard edges, which is exactly what a mosaic is made of. It survives the translation close to intact and stays readable at grid sizes where a photograph has turned to mush, and that makes it far cheaper: piece count grows with the square of the width, so halving the grid quarters the bill.

Two things to watch.

Colour. A brand colour is specified exactly, and the palette here is 51 colours, the ones both still in production and made as a 1×1 piece. The odds that one of them is your exact hex are poor, so the matcher picks the nearest and the result sits a little off. Perceptual matching means it will be the closest colour visually rather than numerically, but on a flat expanse of one colour the shift shows more than it would inside a photograph, where the tiles around it hide the error. Look at the preview before you order anything.

Fine detail. Thin strokes, small text and tight letter spacing are the first things to go. A wordmark generally needs a bigger grid than the symbol beside it, so if the lettering is not surviving, consider building the symbol on its own.

Drop the colour count right down for a logo. It costs nothing visually, because the artwork genuinely does only have a few colours, and it keeps the parts list short and cheap.

Everything below is the reasoning, if you want it. You do not need any of it to build a mosaic.

Why the colours are restricted

Most mosaic generators match against every colour ever produced. That looks fine on screen and falls apart when you try to buy the pieces.

This tool only offers colours that are both still in production and attested on a 1×1 plate or tile in sets from 2018 onward. That is 51 colours. Restricting it further to the piece you actually chose matters more than it sounds, because not every colour is made as every part:

Piece Colours made Common enough to buy in bulk
Plate 1×1 46 of 51 41
Tile 1×1 48 of 51 41
Tile 1×1 Round 43 of 51 36

Five colours have never been produced as a 1×1 plate at all: Metallic Gold, Metallic Silver, Glow in Dark White, Warm Pink and Blue Violet. A generator that ignores the distinction will happily put them in your parts list, and you find out when the order cannot be filled.

Availability is also wildly uneven. White appears in 1,532 sets released since 2018, Black in 1,496. At the other end, Warm Tan appears in one, and Pearl Titanium and Warm Pink in two each. The median colour is in 155. Seven of the 51 sit below 25, which is the threshold where sourcing a few hundred pieces stops being a purchase and starts being a search, so those are flagged in the parts list rather than silently included.

The same colour is not equally available as every piece, either. White is in 1,532 sets as a 1×1 plate, 1,002 as a flat tile and 548 as a round tile. The availability figures shown to you follow the piece you picked.

Why matching happens in OKLab

Nearest-colour matching in plain RGB is the common shortcut and a bad one here. RGB distance treats a numeric gap as a visual gap, and those are not the same thing: human vision is far more sensitive to some differences than others.

Measured against this tool’s own default palette of 40 plate colours, across 32,768 evenly spaced sRGB colours, plain RGB and perceptual matching choose a different brick 36.6% of the time. Two examples from that set:

Input RGB picks OKLab picks
A sunset orange Orange Nougat
A moss green Dark Bluish Gray Green

The second one is the problem in miniature. Asked for a muted green, RGB returns a grey, because the numeric distance happens to be shorter. With a palette this sparse every decision is a large jump, so a wrong pick is not a subtle shift. It is a visibly wrong brick, in a mosaic where every piece is deliberate.

Matching is therefore done in OKLab, a perceptual colour space in which equal distances correspond much more closely to equal visual differences. The image is also averaged in linear light rather than on the gamma-encoded values, which is the same argument applied one step earlier: averaging the encoded numbers biases every tile darker than the light it represents.

What you get out

Build instructions as a PDF. An overview page with the finished dimensions and piece count, a full parts list with quantities and BrickLink colour numbers, then one page per 32×32 section with a letter code in every square. Sections are numbered so you can build a large mosaic a baseplate at a time without losing your place.

A BrickLink wanted list. The parts list as XML, ready to paste into BrickLink’s Upload Wanted List page, which prices the whole thing across sellers in one go. Quantities are exact and match the printed parts list, so the two documents can be checked against each other. There is no hidden margin for spares.

What one costs to build

Piece count grows with the square of the width, which is the single most useful thing to know before starting:

Grid Pieces Baseplates Finished size
32×32 1,024 1 25.6 × 25.6 cm
48×48 2,304 4 38.4 × 38.4 cm
64×64 4,096 4 51.2 × 51.2 cm
96×96 9,216 9 76.8 × 76.8 cm

Going from 48 studs across to 96 does not double the cost. It quadruples it. Sizes assume the standard 8mm module, and baseplate counts assume 32×32 plates.

Limitations

Photographs with soft, low-contrast lighting lose definition at low stud counts. Faces below about 32 studs across stop being recognisable, because a face needs roughly that many samples before the eye reads it as a specific person rather than a person-shaped arrangement.

A design is only as buildable as its rarest colour, so watch the flagged rows in the parts list. One awkward colour in a 2,000 piece order can cost more than everything else combined, and swapping it for a common neighbour usually costs nothing visually.

The tool does not yet merge runs of 1×1 pieces into larger plates, which would reduce both cost and build time on flat areas of background. Nor does it let you override an individual stud by hand. Both are planned.

Frequently asked questions

Is my photo uploaded anywhere?

No. The image is decoded and processed inside this browser tab and is never sent to a server. Watch your browser's network panel while the mosaic is generated and you will see nothing carrying the photo leave.

Can I make a mosaic of a logo?

Yes, and a logo usually works better than a photograph. Flat colour and hard edges survive being reduced to studs far better than a face does, so a logo stays readable on a much smaller grid, which makes it a lot cheaper. The catch is colour: a brand colour is specified exactly, and only 51 colours are both still in production and made as a 1×1 piece, so the closest available match will normally sit slightly off.

Why do some colours show a warning?

Because a colour being in production is not the same as being easy to buy. We flag colours appearing in only a handful of recent sets. They are technically available but slow and expensive to source a few hundred of.

Why are metallic colours excluded by default?

Metallic and pearlescent pieces change appearance with viewing angle, so a single RGB value does not describe them. Left in the palette, the colour matcher picks them for ordinary warm tones like sunset orange.

What size mosaic should I build?

A standard baseplate is 32×32 studs. 48×48 covers four baseplates and is a good balance of detail and cost; below about 32 studs across, faces stop being recognisable.