skip to main content
← back to projects /projects/minecraft · case study
SWE · Minecraft Editor team

Minecraft Mesh Import

A mesh-import feature for Minecraft Editor — drop in an STL file, see it voxelized in your browser preview, then place the result straight into your world.

Used by 2.4m players · Shipped Jun 2026 · v1.0 → v1.2 · Live
year 2026
role SWE · Minecraft Editor team
status shipped · Jun 2026
stack TypeScript · three.js · Editor extension API
links docs ↗

The problem

Minecraft players have been recreating 3D models inside the game by hand for fifteen years — gridded out from screenshots, mapped block by block, sometimes over hundreds of hours. Statues, logos, replica buildings, props for adventure maps. The community is enormous and patient, but the work is mostly tedious counting.

The Editor team kept hearing the same ask from creators: let us bring a real model in. Not for prefab build kits — for creative seed material: a sword reference, a character pose, a building silhouette, dropped into a world as voxels you can then edit by hand.

The constraint that mattered most: this had to feel native to Minecraft. Not a CAD import dialog. Not a separate tool. Click a file, see what it’ll look like as blocks, place it where your cursor is. Anything heavier would push it back into “production tool” territory and lose the audience.

What I built

A mesh-import pipeline inside Minecraft Editor: drop an .stl or .obj file, see it voxelize in a live preview pane, dial in resolution and block palette, then place the result anywhere in your world with one click. The whole loop runs in-Editor, no external tools, no round-tripping through Blender.

The interesting part isn’t the import format support — it’s the preview-before-commit step. You see exactly what your mesh will look like as blocks before a single block lands in your world. That changed how creators used it: they iterate on resolution and palette in the preview, then place once.

Tradeoffs

  • chose: preview-then-place over: drag-to-place with undo

    Drag-to-place felt more native, but every mis-drop required a 6-second undo on a 50,000-block import. Preview-then-place trades 4 seconds of setup for zero regret moments. Worth it.

  • chose: default 32-block resolution over: auto-detect from mesh size

    Auto-detect was technically smarter but produced wildly different output for similar-looking meshes — same input, different results across users. A predictable default that users can override beats a smart default that feels inconsistent.

<try the voxelizer> in-browser · client-side
1. drop a mesh
.stl or .obj · ≤ 5 mb
2. voxel preview
spins on hover · resolution slider lives here
Stretch shareable. The same pipeline that ships inside Minecraft Editor, running in your browser — drop a mesh, watch it voxelize, share the result. Real three.js lands ~1–2 weeks post-launch.

Outcome

Shipped to Minecraft Editor preview in June 2026. Within the first six weeks, players had imported more than 180,000 meshes, voxelized about 2.1 billion blocks, and uploaded enough time-lapse builds that the YouTube algorithm started recommending mesh-import tutorials to people who didn’t search for them.

2.4m players reached
(first 6 weeks)
180k meshes imported
2.1b blocks voxelized
38 creator videos
in first month

What I’d do next

Library + remixing. Live texture mapping. Per-axis resolution. Editor-side scripting hook for other extensions.

← back to projects

Together, visitors have mined

blocks · since the world opened, jun 2026