Skip to the tool
CALCPARK

Minecraft Pixel Art Blueprint Maker

Turn any image into a Minecraft block plan: crop, set the size in blocks, pick the blocks, preview it and download a numbered blueprint, materials list and build steps.

Files stay on your device
Loading the tool…

How to use it

  1. Drop a PNG, JPG or WebP picture. Drag the crop box to keep the part you want; “Use the whole image” resets it.
  2. Set the width in blocks – the height follows the crop’s aspect ratio while the lock is on. A 64-block-wide wall is a serious build; 32 is a good first project.
  3. Choose wall or floor, your game version and the block groups you can afford. Open “Individual blocks” to drop any block you dislike (the art is recomputed instantly).
  4. Try a dithering pattern if the picture has gradients, and compare Lab with RGB matching for skin tones and sky colours.
  5. Download the blueprint PNG and the materials CSV or copy the materials list; the build-steps TXT tells you each layer (walls, bottom-up) or row (floors, far row first) as runs like “5 × [2] White Concrete”.

Example

A 400 × 300 px logo cropped to its centre and set to 48 blocks wide becomes a 48 × 36 wall (1,728 cells). With concrete and wool enabled and no dithering the plan uses 7 block types: 812 × White Concrete (12 × 64 + 44, 1 shulker box), 503 × Black Concrete, 190 × Red Wool… The blueprint PNG is drawn at 32 px per block (1,576 × 1,192 px) with every cell numbered 1–7; layer 1 of the instructions is the bottom row of the image.

How the plan is made

1. crop → area-average resample to W × H blocks (each cell = mean colour of the source pixels it covers)
2. per cell: block = argmin over enabled blocks of ΔE76(Lab(cell), Lab(block average colour))   (or redmean / plain RGB distance)
3. optional dithering spreads the matching error to neighbouring cells (Floyd–Steinberg 7/16 3/16 5/16 1/16, Atkinson 6 × 1/8) or adds a Bayer threshold
stacks = ⌊count / 64⌋ + remainder · shulker boxes = ⌈count / (27 × 64)⌉ per block type

The block colours are hand-compiled averages of the default Java Edition textures (side faces for logs and similar blocks). They are meant for choosing between blocks and may differ by a few RGB units from a pixel-exact average; in the game, texture noise, shading and light change the look. Translucent blocks (glass, ice), tinted blocks (grass, leaves), glazed terracotta and heavily patterned blocks are left out because a single average colour does not describe them. Map colours used by Minecraft maps are a different, smaller palette and are not used here.

Walls are built as the image is seen from the front: layer 1 is the bottom row and column 1 is on the left. Floors are listed from the far row (top of the image) towards you. Falling blocks are always excluded from walls because they need support below; on floors they are allowed unless you switch them off.

Sources: Minecraft Wiki – Block (list of blocks and the version each was added), Minecraft Wiki – Shulker Box (27 slots), CIE 1976 L*a*b* colour difference.

Questions

Why are the colours in the preview flat instead of textured?
The preview shows each block as its average colour so you can judge the overall picture; drawing real textures would require redistributing Minecraft assets. In the game the textures add detail but the colours sit where the preview puts them.
Can I export a schematic or litematic file?
Not in this version. The JSON export contains the full grid (rows of legend numbers plus a legend with block ids), which is easy to convert with a script; the blueprint and the build steps are designed for building by hand.
Does it work for map art?
Partly. Floor mode gives you a horizontal plan, but in-game maps render blocks with their own 61-colour map palette and height-based shading, not with the texture averages used here, so the colours on a map will differ.
How big can the art be?
Up to 256 × 256 blocks (65,536 cells). Larger plans get a smaller blueprint cell (down to 6 px) and the cell numbers disappear below 14 px per cell – the CSV, TXT and JSON exports stay complete.