How it works

How Map2Mesh builds a model

The short version: you draw a box on a map, and a few seconds later you have a print-ready file. Here's what actually happens in between.

Draw, then generate

You pick an area — a neighborhood, a stretch of coastline, a mountain pass — and Map2Mesh pulls two things for it: building and road data from OpenStreetMap, and elevation data from the Copernicus GLO-30 terrain model. Both are open datasets, fetched fresh for your exact area, not pre-baked for a fixed list of cities.

From there it builds actual geometry: extrudes each building to its real height (or a sensible type-informed guess when the data doesn't have one), drapes roads and rivers onto the terrain, reconstructs coastlines into closed bodies of water, and stitches all of it onto a terrain mesh.

Printable by construction, not by repair

Most map-to-model tools hand you a mesh and hope your slicer can patch whatever's wrong with it. Map2Mesh checks every single body for watertightness before it ever reaches export — closed, two-manifold, ready to slice. A shape that can't be made valid gets rebuilt from its footprint, or dropped and counted, never quietly shipped as a model that fails halfway through a print.

It runs in your browser, not on our servers

Decoding the terrain, meshing the buildings, running the boolean operations that combine layers — all of that happens on your machine, using WebAssembly. Our backend does exactly two things: it fetches the open map data on your behalf (see privacy for the one piece of information that does cross the network), and it serves pages like this one. It never touches your geometry.

What you get

A multicolor 3MF file with buildings, roads, water, and terrain as separate materials — sized for a 4-slot AMS or similar multi-material printer — or a single-body STL if you'd rather slice it as one color. Either way, the file has already passed the same watertightness check your slicer would otherwise have to guess through.

Draw an area and see what comes out.
Start with your own area →