DIY Project - How to make a Topographical Map on a CNC machine

Expert Level - this is a project for makers with CNC experience


This project is great for exploring new possibilities by using your CNC machine in its maximum 3D capacity. It is the perfect example of where a CNC machine is way more precise than the human hand, but also faster than a 3D printer. The extra is that you can make this project out of any material where a 3D printer can be limited.

As this project includes a good amount of material removal and as precision is the key here, a good clamping is very important!  In order to clamp the piece securely, we decided to screw our stock directly into the spoiler board.

We recommend using at least 1 clamp (or screw) every 10 cm to reduce the vibrations and enhance the quality of your surface finish.


If you're not a fan of Lake Como (Italy) but you’d like to mill another topographic map, go have a look at this website . It generates STL files from the earth’s surface. These STL files can then be imported in Fusion360 and scaled down to be used as a model for the milling. 

Topographical map - Materials needed

We used solid walnut for this project, but you can use any piece of material you want.  To mill our Lake Como 3D map, you need a stock that is at least 340 x 530 x 25 mm. 

Don't forget to oversize your stock with at least 20 mm at each side, this will allow you to clamp your piece securely. 

If you choose solid wood like we did, you have to be aware that solid wood tends to move with time, differences in temperature and humidity. A wooden board will always cup as it dries and if you don't want your piece to be ruined inevitably, you need to cut your boards into thinner strips and glue them back in an alternative pattern.

To learn how to choose your boards and make stable glued-up boards, check out this YouTube video.

We tried a lot of different materials for this project, and found that the best results show on solid wood. 

MDF is easy to mill and is great to make prototypes, but the terrain doesn't really pop out. 

Plywood could be really fun to use as the different plies could show the height variations, but plywood has a lot of holes and imperfections in its structure. These holes and imperfections are made visible with the milling, which isn't very pleasing to the eye.


Fusion360 has a great scaling tool to shrink or expand 3D objects. If the material you want to use isn’t thick enough, open the Fusion360 project, go to the design tab and press the S key. Simply type “scale” to use the scaling tool. You can now select the volume and apply a scaling factor (<1 = shrinking ; 1 = identical ; >1 = expansion). 

You can check the needed material in the manufacturing tab. Double-click on the setup. You’ll find the needed stock dimensions into the stock tab. 

We used multiple end mills for this project.

  •  A 8 mm 3-flute flat end mill for roughing out the excess stock.

  • A 3 mm 2-flute ball end mill which will give texture to the model and refine the details of our 3D map.

Milling a topographical map

To obtain a nice looking finish while limiting the amount of time needed to make our piece, we created a Gcode made out of 3 operations.

This project is very complex and has a lot of little details. This means that it also takes a lot of time to mill. 
If you use our Gcode as it is, the total milling time is about 14 hours.
You can reduce the time of milling by enhancing the step over or the pass height, but this will inevitably result in losing precision.

3D pocket:

Using an 8 mm end mill, we rough out the shape of the terrain we are willing to mill. Leaving a 1 mm axial and radial stock will make sure our next end mills will have “something to bite”. This will avoid them slipping, but will also make sure that our 8 mm end mill won’t reduce the precision of our finished piece by cutting into material that shouldn’t be cut into.

The spindle has to be set to run between 20 000 to 25 000 rpm as the feedrate is 3200 mm/min. The pass height is 2.5 mm.

Scallop (8 mm flat end mill):

To reduce the amount a material the thin ball nose end mill will have to remove, we added a first scallop operation with the 8 mm flat end mill. This step will remove the “rice field” effect left after the first operation and you will start to see the terrain pop out. We keep our 1 mm axial and radial stock to leave something to bite to the ball nose end mill.

This step is not mandatory, but reduces significantly the wear on the ball nose end mill and allows you to rise up the feed rate on the next operation (reducing total milling time).

The spindle has to be set to run between 20 000 to 25 000 rpm as the feed rate is 3200 mm/min. The step over is set to 3.5 mm.

Scallop (3 mm ball nose end mill):

This step will give all its texture to the finished piece and will make every detail of the terrain pop out.

The scallop operation will make the ball end mill travel into every valley, onto every hill, every ridge of our map and will leave very little milling marks. 

The spindle has to be set to run between 20 000 to 25 000rpm as the feed rate is 3500 mm/min. The step over is set to 0.4 mm to reduce the amount of milling marks.

3D topographical map milled with a CNC machine

Fusion 360 & Gcode to make a topographical map

All files (Gcode, Fusion 360 project)