MapNC

Pick a region (or load a route) and get a greyscale heightmap for CNC carving. Everything runs in your browser; nothing is uploaded.

Elevation Draw a region or load a route to begin.

Range
–
Coverage
–
1 Route & region

Route (optional)

GPX, TCX, KML or KMZ file
No file loaded

Loading a route fits the region to it and picks the closest standard aspect ratio. A sample (Sierra Buttes Fire Lookout, California) is loaded to start. A Google My Maps route works too: export the map as KML or KMZ.

Region

:

Click Draw rectangle, then drag on the map.

Hold Shift, Ctrl/⌘ or Alt/Option while dragging to resize from the centre.

Size
–
Corners
–

2 Clean up & edit route

Dashed grey is your original track, red is the result. Your file is never changed.

Automatic clean-up

Points that jump farther than this off the path and straight back. Real hairpins stay.

Collapses the jitter from standing still.

Pulls the way out and the way back onto their average line. Switchbacks are left alone.

Points
–
Length
–
Largest shift
–
Spikes removed
–

Edit points by hand

Remove strays and fix errors against satellite imagery.

Smooth curve

Do this last: with no smoothing the curve passes through every point, so remove strays first. It is used on the map, preview and every export.

Steps are sized from your route's point spacing. Each step rounds off wobble about that many metres wide; the first step is a light touch.

3 Heightmap

The heightmap appears here once elevation data has loaded.

Elevation range

Fills small holes in the data and levels the sea.

Choose what to clean up on

Fills small holes in the elevation data so they do not carve as pits. Large missing areas are left alone.

Makes the sea one flat level at 0 m, so the land keeps the whole height range. Low ground that does not reach the edge is left alone.

Advanced shaping on

Lifts low ground up to that level and starts the automatic range there. Points below it are lost.

Keeps one summit and the ground that rises to it, and flattens the rest, for a single-feature carve. Pick the summit on the heightmap, then set how far down it reaches.

Window
–
Per grey level
–
Clipped
–

The view is 8-bit for display only. Black = lowest (white = lowest if inverted); magenta = no data (exported as black).

4 Output size
Image size
–
Pixel size
–
On the carve
–

Auto gives at least 2048 px on the long side, never below the source's own resolution. Extra pixels add no terrain detail, only a smoother surface. A carve size is stored in the PNG.

A rim leaves a flat frame around the terrain; a chamfer or rounded edge eases the terrain down to the frame level. Width is in mm of the finished carve, so it needs the carve size above.

5 Export heightmap

Export is available once elevation data has loaded.

The PNG is the terrain file you carve from. The toppings in step 6 are optional.

An alternative to the PNG for CAD/CAM programs that read a mesh. The mesh keeps the full precision of the elevation data and uses the heightmap step's range, curve and invert. Needs a carve size under Output size.

For multi-colour 3D printing. One solid per colour, all in place, so a slicer lists each as a part and assigns it a filament. The ground is split into height bands from the heightmap step's range, and the route can be its own colour. Uses the relief height and base thickness above. Needs a carve size under Output size. (Land cover as colours, such as foliage and bare ground, is not built yet.)

6 Extra toppings

Route, contour, map and layered-map exports appear here once there is a route or elevation data.

Layers to go with the heightmap

Optional. These complement the heightmap and never change it. The route layer needs only the region and the route. Contour lines and the layered map need the elevation data.

Transparent PNG with a red line of the width above, the same size and framing as the heightmap.

Cartographic features on

Optional extras in the same file as the route: contour lines, borders and a scale bar.

Waiting for the elevation data.

Every 5th line goes on its own layer (CONTOURS_INDEX) so it can be cut deeper or drawn heavier. The lines also show on the Heightmap view (amber) as a preview.

Borders are drawn from public-domain data (Natural Earth and the US Census Bureau) at a coarse scale. US state lines and the straight country borders that were checked are within about 250 m of the real line; other borders can sit up to about a kilometre off. Each kind is its own layer (BORDER_COUNTRY, BORDER_STATE).

Corner marks make it easier to scale the vector to match the heightmap.

For a stacked terrain model: one cut outline per layer of plywood or card, each at a constant height, laid out together on one sheet and numbered in stacking order (1 is the bottom). The elevation range comes from the Heightmap step.

Waiting for the elevation data and a carve size under Output size.

Cut lines are red and the layer numbers blue, on separate DXF layers (CUT, LABELS). Kerf is not compensated.

Advanced
Active
–
Source data
–

Test images

Synthetic 1000 × 1000 px heightmaps for checking how a CAD/CAM program reads bit depth. A smooth diagonal ramp from black (top-left corner) to white (bottom-right corner). The 8-bit file has 256 grey levels; the 16-bit file has 65,536.

  • gradient-16bit.png (16-bit greyscale)
  • gradient-8bit.png (8-bit greyscale)

Editing route

Changes reach the heightmap and the exports as soon as you let go of a point. The map shows your points joined by straight lines; a spline, if you turned one on, comes back when you click Done.

Map

Tools

Points
–
Length
–
Edits
–

How to edit

  • Move a point: drag it.
  • Add a point: drag the line itself.
  • Select a point: click it. Shift+click another to select the stretch between.
  • Delete the selection: Delete key or the button. Right-click also deletes a point.
  • Undo / redo: Ctrl/⌘+Z and Ctrl/⌘+Shift+Z.
  • Esc clears the selection; pressed again it leaves editing.
  • Pan and zoom as usual. Points show once fewer than 1500 are in view, so zoom in on the part you are fixing.
  • Automatic clean-up settings lock once you have manual edits; Discard unlocks them.
Send feedback

Found a bug, or something confusing? Your message goes to the person who built MapNC.

Data sources. Elevation: USGS 3DEP (U.S. Geological Survey), NRCan HRDEM in Canada (contains information licensed under the Open Government Licence – Canada), NOAA NCEI sea floor (optional), and AWS Terrain Tiles elsewhere (SRTM, GMTED, and other public datasets). Background maps: OpenStreetMap, OpenTopoMap, Esri, USGS (credited on the map; display only). Details and terms. © 2026 Winston Moy. All rights reserved.
Drag to rotate · right-drag or two fingers to pan · wheel or pinch to zoom