Turn any image into Minecraft blocks
A Minecraft pixel art and mural generator. Drop in a picture, pick the blocks you want to use, and get back a mural you can build — as a datapack to import without mods, or a Litematica schematic to paste in creative or build in survival.
Open the Mural Maker See how it works
- Fast & intuitive
- Customizable
- Runs in browser
- Nothing uploaded




What this tool does
It converts images into blueprints placeable in Minecraft.
Instead of manually colour- and texture-matching an image to Minecraft's limited colour palette, you provide a source image and target dimensions, and the engine handles the translation.
Everything runs locally, right in your browser. Your image is never uploaded anywhere: once the generator page has finished loading, you can continue even without an internet connection.
How it works
-
Load an image
Drop in any picture and set the size of the mural in blocks. The preview solves as you change things.
-
Choose your palette
Restrict the blocks to what you can actually gather, or to a deliberate aesthetic. All survival blocks are available.
-
Tune the block-picking algorithm
Adjust the dithering, pre-processing and multi-pass refinement to get the best result for your image.
-
Export and build
Take a
datapackthat places the mural with vanilla commands, or a.litematicschematic that you can paste in creative or build in survival.
How initial block-matching happens
Most similar tools average each block texture down to one colour and pick whichever average is nearest to the image pixel. That usually works for mapart, but not for actual walls, ceilings and floors of your build.
One reason for this is that RGB distance does not accurately match human vision. This converter works in the CIELAB colour space instead, which is designed to be perceptually uniform: a given mathematical distance in this space corresponds to a roughly equal perceived difference in colour.
Another reason is that Minecraft blocks are not flat colours. While stone and cobblestone average out to almost the same shade of grey, cobblestone's texture is busy and noisy while stone is smooth. To capture this, the matcher doesn't downscale the image beforehand. Instead, it divides the image into a grid of square chunks corresponding to each block in the mural, comparing each chunk directly to the full block texture to match surface detail as well as average colour. You can prioritize what matters most with three weights:
- Macro colour. The block's average colour against the target pixel. This dominates for skies, gradients and large flat regions.
- Micro spatial. Where the light and dark parts sit inside the 16×16 texture. This is what keeps edges, lettering and outlines readable at small mural sizes.
- Micro texture. How busy or noisy the texture is. Raising it matches grain; lowering it avoids visual clutter in areas that should read as smooth.
Building a block palette
The palette is the single biggest factor in how the result looks and how buildable it is. This tool ships with a full palette of all survival blocks that have unique square faces, but you can restrict it to whatever subset you want.
Every block you allow is a block the matcher may use. Restricting the palette to what you can actually obtain — or to a deliberate aesthetic, like glass only, or coloured blocks only — usually produces a better result.
Keep in mind that blocks have different visual and technical properties. Some are transparent, some emit light, some obey gravity, and some are block entities that render differently and may tank game performance if overused. The palette tab has filters for these properties so you can avoid blocks that will cause problems in your build.
The palette screen has filters for the properties that matter in practice:
Is block entity— shulker boxes, ticking functional blocks and similar. They render differently and/or cost performance in bulk.Emits light— glowstone, sea lanterns, etc. Fine deliberately, distracting by accident.Obeys gravity— sand, gravel and concrete powder will fall if there is nothing beneath them.Transparent— glass, leaves and such show whatever is behind the mural.Is pain to get— technically available, realistically not worth it.Deteriorates— blocks that will transform if certain conditions are not met.
You can also ctrl+click any block in the preview to disallow it from the
palette. It will be moved to the disallowed list, and the solver will not use it until you allow it again.
Dithering
When the palette cannot reach a colour, dithering fakes it by mixing neighbouring blocks so the eye blends them at a distance. It trades a bit of noise for a wider apparent colour range. Mostly useful for bigger murals.
This tool supports four dithering algorithms, which scatter the error from each block to its neighbours in different ways. Each has its own trade-offs, and the best choice depends on the image and the palette.
Floyd-Steinbergpushes the leftover error to neighbouring cells as it scans. The smoothest gradients, and the slowest to compute.Atkinsonspreads less of the error, so contrast survives better, but it can band in very smooth areas.Bayer 4×4 and 8×8— a fixed crosshatch pattern. Fast, completely predictable, and it tiles rather than drifting — which some people prefer for the deliberate retro look.Random noisescatters error randomly. Hides banding well, looks grainy close up.
When to use it: photographs, skies, skin tones, anything with smooth gradients. When not to: logos, flat-colour illustration, and existing pixel art, where the source is already quantised and dithering only adds speckle to areas that should be solid.
Intensity controls how much error gets spread. Low values dither only where the palette genuinely cannot reach, which is often what you want.
Pre-processing the image
These adjustments happen to the source image before any block is chosen, so they change what the matcher is aiming at rather than how it aims. That's pretty much what you could do in Photoshop or GIMP before dropping the image into the generator, but it's convenient to have them built in.
-
Noise reductionearns its place on JPEGs, where compression artefacts otherwise get faithfully converted into scattered wrong blocks.Sharpeninghelps small murals keep their outlines. -
Brightnessis useful when the source is too dark or too light for the palette to reach, whileContrastcan help when the palette is limited and cannot reproduce the full range of shadows and highlights. -
Hue shiftsteers the whole image on the colour wheel toward what your palette actually has.Saturationadjusts the intensity of colours in the image: lowering it can help when the palette is greyscale, while raising it can help when the palette is mostly coloured blocks.
Placement in the world
A vertical mural is a wall, seen from the side, while a
horizontal one is a floor or ceiling, seen from above or below. Vertical
murals can also face 4 cardinal directions. This changes which face of each
block you are looking at, and therefore changes the palette: many blocks have separate
textures and rotation rules for their top, bottom, and side faces.
Biome tint affects the colour of certain blocks. Grass blocks, leaves
and a few others take their colour from the biome they are placed in. The same grass
block is a different shade of green in a taiga than in a swamp.
Multi-pass refinement
The first pass picks each block by looking at one chunk of the original image at a time.
That is fast and mostly right, but it cannot see if a bigger cluster of chunks
together has come out wrong. The size of the cluster is tweaked by the error matrix size.
The second pass goes back over the chunk clusters that scored worst and re-solves them,
judging the result on how closely the whole cluster matches the source image overall.
The error-seeking threshold controls how much of the calculated mural gets
revisited — 0.25 means the worst quarter of it.
Two weights steer it: recursive denoising (MSE) favours raw colour accuracy
and reduces speckle, while edge preservation (SSIM) favours structural similarity
and protects edges and shapes. Raise SSIM when detail is getting smoothed away; raise MSE when
the result looks noisy.
Overlays (experimental)
Overlays place a second thin block on top of the base one — rails, redstone dust, vines, glow lichen, etc — to reach colours and textures the base palette cannot manage alone.
Minecraft has rules for how an overlay block can be placed, and for how it may change when adjacent to a similar block. The converter checks those rules when it places an overlay, so the preview shows what you will actually get in game.
Every allowed overlay multiplies the size of the palette, so calculation gets considerably slower and uses a lot more memory, particularly with Floyd-Steinberg and Atkinson dithering.
Building it: datapack or Litematica
Datapack
Exports a zip you drop into your world's datapacks folder.
Reload, run the generated command(s), and the mural places itself. This works
in vanilla Minecraft with no mods, but does require operator permissions to run the command.
The mural builds relative to where you are standing, so position yourself first.
Litematica schematic
Exports a .litematic file for the
Litematica
mod. Drop it in the schematics folder and load it in game.
This is the better choice for survival: Litematica shows you a "hologram" of what to place and gives you a full material list up front, so you know exactly how much of everything to gather before you start.