Skip to content
Photo2Pattern

Free LEGO mosaic maker

A LEGO mosaic maker that gives you the parts list

Drop in a photograph and this returns the build: how many 1x1 plates of each color, laid out across 16, 32 or 48-stud baseplates with the seams marked, at 8 mm a stud so the finished size is known before anything is ordered. It costs nothing, there is no account, and the whole parts list is computed by this page from your own file — which is why a 36,864-plate wall prices as quickly as a 256-plate square. The color match is held inside the 50 opaque colors LEGO still has in production, and can be tightened further to the 27 that exist in more than 20,000 cataloged elements — because a mosaic in a color nobody stocks is a picture, not a plan.

  • 100% free
  • No signup
  • 50 buyable colors
  • Exact plate count
  • One sheet per baseplate

Press Ctrl+V anywhere on the page to drop in a photo already on your clipboard — no need to click the field first.

Studs down follow the shape of the picture. At 8 mm a stud this is 20.2 inches wide finished, or 512 mm.

One plate is 384 mm square and holds 2,304 studs. The chart is split along these edges for printing, one sheet per plate.

The colors with more than 20,000 cataloged elements. This is the sensible default for anything you intend to finish: it keeps the metallics and the near-duplicate grays out without flattening the picture.

1 keeps everything. Anything higher drops the colors below it and re-matches their studs onto the survivors, which is what turns a chart with forty single-stud colors into an order you can actually place.

Every cell takes its own nearest color. Flat areas stay flat and the color count stays low — the right choice for anything worked by hand.

In whatever currency you are buying in. The figure prefilled here is a placeholder, not a quote — per-plate prices differ by color, by seller and by how many you take.

How to get a buildable mosaic out of a photograph

Three decisions: how wide, how rare the colors may be, and how thin a color is allowed to get.

  1. Set the width in studs, not in pixels

    The only measurement a brick mosaic has is how many studs it is across, because the stud pitch is fixed at 8 mm and everything else follows. Sixty-four studs is 512 mm, or a fraction over 20 inches; 96 is three-quarters of a meter. The depth is taken from the shape of your picture rather than asked for, so a landscape stays a landscape.

  2. Decide how hard the colors are to buy

    Four availability tiers, all of them derived from how many cataloged elements LEGO has made in each color: everything in production (50), over 20,000 elements (27), over 50,000 (16) and over 100,000 (9). Tightening the tier costs you subtlety and buys you an order that a seller can actually fill. Loosening it is worth doing once, to see which rare colors the picture reaches for and whether they are carrying anything.

  3. Read the plate count before you read the picture

    The parts list on the right is the deliverable. Each row is one color, its Rebrickable id, the exact number of 1x1 plates it needs and how many cataloged elements exist in it. Set a floor under the plate count to drop the colors that appear four times, take the CSV to a seller, and print the plan — it comes out one sheet per baseplate, so you build a plate and set it aside.

Technical specifications

Color source50 opaque LEGO colors still in production, filtered from Rebrickable to those appearing in sets through 2024 with more than 2,000 cataloged elements, and holding 4,428,065 elements between them
Availability tiers4: everything in production, over 20,000 elements (27 colors), over 50,000 (16) and over 100,000 (9)
Grid width16 to 192 studs across; the depth follows the picture's own proportions
Cell and pitchOne cell is one 1x1 plate on an 8 mm stud pitch, so 64 studs finishes at 512 mm (20.2 in) and 192 at 1,536 mm (60.5 in)
Build surfaces16 x 16 (128 mm, 256 studs), 32 x 32 (256 mm, 1,024 studs) and 48 x 48 (384 mm, 2,304 studs), tiled with the seam positions and the partial edge plates reported
Color floor1 to 500 plates; colors under the floor are removed and their studs re-matched against the survivors rather than deleted
On paperOne sheet per baseplate with no overlap between them, at 24 px a stud with a heavy rule every 8
ExportsBuild plan PNG, flat picture PNG, and a CSV carrying the symbol, LEGO id, color name, hex, plate count and share for every color used

Frequently asked questions

Why did a gray in my picture turn into Metallic Silver?

Because Metallic Silver and Light Bluish Gray are the two closest colors in the whole LEGO palette and the match went to the wrong one. They sit 0.019 apart in Oklab, closer than any other pair among the fifty, and Light Bluish Gray has 124 times more cataloged elements than Metallic Silver does. A nearest-color search has no opinion about that; it just picks whichever is a hair nearer. This is the entire reason the availability tier exists, and setting it to the common colors removes the metallics and the near-duplicate grays in one move.

How many baseplates do I need and will the seams show?

Divide the studs each way by the plate size and round up, which is what the layout line under the heading does for you. A 96-stud picture on 48-stud plates is 2 by 2, four plates, 768 mm square. The seams show from close up and vanish at the distance you actually look at a wall from, but the plates along the right and bottom edges will be partly empty unless your grid divides exactly, so the tool reports how many columns and rows those edge plates carry. Either trim the picture to a multiple of the plate size or accept an overhang and frame it.

Should I build it in plates or in tiles?

Plates if you want the studs to show, tiles if you want a flat surface, and the chart is the same either way because both are one cell. What changes is availability: the elements figure in the last column counts every part LEGO has made in that color, not 1x1 plates specifically, so it tells you the color is in production without promising that this particular part is. Check the two or three colors you need most of against a seller before you order the rest.

Why is the plate total lower than studs across times studs down?

Because transparent squares are holes, not white. A cell whose average alpha falls below half is left empty rather than filled in, which is the right answer for a mosaic — you cannot place half a plate, and a cut-out subject on a transparent background should leave the baseplate showing rather than force you to buy several hundred white plates for a background you did not ask for. The counts and the shares both exclude those squares.

What does the floor on plates per color actually do?

It drops every color used fewer times than the floor and then matches those squares again against the colors that survived. That second pass matters: simply deleting a row would leave its studs stranded, whereas re-matching sends each one to its own next-nearest survivor and the picture closes over the gap. A photograph on the full palette routinely uses a dozen colors under ten times each, and each of those is a separate lot to buy, a separate bag to open and a separate color to keep track of for a few studs nobody will notice.

Is the cost figure a real price?

No, and it is a text field for that reason. Per-plate prices move with the color, the seller, the quantity and the country, so anything prefilled here would be wrong for most people using it. Type the price you can actually get, and remember that the total covers plates only — the baseplates themselves, a frame, a backing board and the spares you will want for the ones that go under the sofa are all outside it.

How large can a mosaic get before this stops being sensible?

The grid stops at 192 studs across, which is 1,536 mm and, on a square picture, 36,864 plates. Long before that the constraint stops being the software: a picture that size needs sixteen 48-stud baseplates, a wall that can carry the weight and a parts order in the thousands per color. If you are working at that scale, build and hang it in plate-sized panels rather than as one sheet, which is why the print splits exactly on the plate edges.

About buying a mosaic rather than rendering one

Every brick mosaic tool on the internet solves the easy half of this problem. Resampling a picture onto a square grid and finding the nearest color is a first-year exercise; the site you are reading does it identically on every one of its pages, from fuse beads to blocks. The hard half is that the output is a purchase order. A chart is only worth printing if every color on it can be bought in the quantity the chart demands, and LEGO colors differ in availability by more than two orders of magnitude: Black has 844,089 cataloged elements against Chrome Gold’s 2,202, a ratio of 383 to 1. A matcher that treats those as equally valid candidates is not being neutral, it is being useless.

The element count is the closest public proxy for orderability, and the palette here carries it per color so the filter can be a control rather than a hidden decision. The case that makes this concrete is the gray family. Light Bluish Gray and Metallic Silver are 0.019 apart in Oklab — nearer to each other than any other pair among the fifty, and far below the distance at which anyone would call them different colors across a room. One has 521,466 elements, the other 4,196. On a black-and-white photograph the match can hand several hundred studs to the rare one purely by rounding, and you will not see it in the preview; you will see it when the order cannot be filled. The tier control is what removes that whole class of surprise, and the reason the default is the 20,000-plus set rather than the full palette.

Two further things this page insists on. Counts are exact, never rounded to a bag size, because they are what you buy against — the only rounding is yours, upward, for the plates that end up under the sofa. And the print splits one sheet per baseplate with no overlap, because a plate edge is a real edge in a way a paper edge is not: you build one plate, set it aside and start the next, and a sheet carrying two studs of its neighbor’s work would be actively confusing. If you want the same picture as a face rather than as a landscape, the palette that flatters scenery fails on skin, and the portrait page restricts the color list and measures the tonal range before it will commit. If you only want the picture to look blocky rather than to be built, pixelating the image is the cheaper answer, and the palette converter lets you drive the color list by hand.

Product and company names shown here are the trademarks of their respective owners. Photo2Pattern is an independent tool and is not affiliated with, sponsored by or endorsed by any of them.

Where your photograph is opened

Your picture is opened by JavaScript running in the tab you are reading this in. It is never uploaded, never sent to a server and never stored anywhere — there is no upload step to undo, because there is no upload. Close the tab and nothing of it remains.

The parts list, the price you type and the layout are held in this tab only. Nothing is saved between visits, so take the CSV if you want the order to survive closing the page.