Inspiration

Minecraft pixel-art generators are useful, but turning a photo into something that can actually be built in-game is harder than it looks. A flat preview is not enough: builders need a sensible block palette, accurate material counts, and an export they can bring into WorldEdit or Litematica.

We wanted to make that workflow simple without asking users to upload personal images to a server.

What it does

MC Pixel Art converts an image into Minecraft-style pixel art using a selectable, version-aware block palette for Java and Bedrock Edition.

Users can:

  • Upload an image and convert it into a Minecraft block layout
  • Choose Minecraft version and palette options
  • Preview the generated pixel art
  • See a material list with block counts
  • Export a PNG preview
  • Export .schem files for WorldEdit
  • Export .litematic files for Litematica
  • Follow a chunk-by-chunk build guide for larger creations

Everything runs in the browser, so the original image stays on the user's device.

How we built it

The project is a browser-based web app built with Next.js, React, JavaScript/TypeScript, CSS, Canvas APIs, and Web Workers.

The conversion pipeline reads image pixels locally, compares them against Minecraft block colors, and generates the closest matching block palette. Instead of relying on simple RGB distance alone, we use OKLab color-space matching to produce more visually natural results.

Potentially expensive image processing is moved into a Web Worker so the interface remains responsive while users experiment with different palettes and settings. Export tools then turn the generated block grid into image previews, material lists, and Minecraft-compatible schematic formats.

Challenges we ran into

The biggest challenge was color matching. Minecraft blocks have textures, lighting, and colors that do not always behave like simple RGB values. A block that looks numerically close can still look wrong in a finished build, especially across shadows, skin tones, skies, and gradients.

Another challenge was balancing quality with browser performance. Large images can contain millions of pixels, so we had to keep processing local and responsive without sending files to a backend.

Export compatibility was also important. A preview is useful for inspiration, but builders need practical outputs for their existing workflows. Supporting material counts, .schem, .litematic, and build-guide views made the project more useful beyond a single image conversion.

What we learned

We learned that privacy can be a product feature, not just an implementation detail. Keeping image conversion fully client-side makes the tool faster to start using and easier to trust.

We also learned that a good generator should help users finish the job. Better palette matching, export formats, material counts, and chunk-by-chunk guidance matter just as much as the initial visual result.

What's next

Next, we want to improve palette controls, add more build styles and dithering options, make large-image workflows faster, and keep expanding support for Minecraft versions and export formats.

Share this project:

Updates