A few months ago my friend Barney said, “Can you 3D print Thousand Palms Canyon?”
I knew what he meant: all the hills and gulleys and landscape features we’re familiar with. “No,” I said. “That’s impossible.” But the idea kept bugging me. Why not? So I did what any of you would do in the middle of a sleepless night: I went online. Huh! Not impossible, but maybe a little bit tricky. Below are the step-by-step instructions to create a 3D topographic map.
Author's Note: I’m using Photoshop and 3DS Max on a PC to edit files and export them to my MakerBot Replicator 2, so this procedure might be different for you if you’re using other software. I bet it will be similar enough for this info to be useful, though.
Update (May 2016): There has been a piece of software developed to assist in the STL map generating tool. The link for the free STL creator is here: http://jthatch.com/Terrain2STL/. The original article is below and produces a higher resolution STL, if that is needed.
1. Download and install Google Earth.
2. Download and install MicroDEM - a free application available through the U.S. Naval Academy website. Install involves two steps - download and run the installer first, then replace the executable with the latest version (available as a separate download).
3. Download and install the srtm4.1 plugin for Google Earth (Note: clicking on this link may automatically download the srtm4.1 plugin, depending on your browser).
4. In Google Earth, the SRTM4.1 will appear under “My Places” in the navigation on the left. Click on the small “Elevation” square, and a grid of boxes should appear on the globe image (Image “A”);
5. Click on one of the boxes that includes topography you want to print;
6. A window will appear (You might need to scroll down). Click on the link as in Image “B”;
7. The auto-download probably won’t work, so copy the url as suggested, and paste it into your browser, as shown in Image “C.” This download may take a few minutes;
8. Unzip the downloaded archive. The only file you need is the .asc file. Put it somewhere you can find it easily. Toss the rest;
9. You need to use MicroDEM to interpret the altitude data. (Don’t try using any of the other “helpful” tools on the Internet to open this kind of file – some of them are nasty viruses!);
10. In MicroDEM, go to File>Open>Open DEM and locate your file;
11. Here’s the tricky part: You probably have no idea what you’re looking at. No highways, no names of cities, no identifiers of any kind! So you’ll need to reference back-and-forth with some other map to narrow down the area you want to print. When you figure out which part of the map you want to zoom in on, use the “Subset & zoom” tool (dotted border) from upper left to lower right to zoom in (Image “D”);
12. Right-click on the map and choose “Legends/marginalia,” and make sure none of the boxes is selected (don't forget to remove the gridlines);
13. Right-click again, select Display parameter>Elevation>Gray scale. This is the image you will use in your 3D program to create a displacement map in order to print your topographical 3D model (Image “E”);
14. Select File>Save image, and choose whatever image format works best in your 3D program (I use jpeg);
15. Quit out of MicroDEM and open Photoshop or whatever image-editing program you use. Open the file you just saved. Check to determine image size, and jot it down. Mine happened to be 860x650 pixels. That means, when I create a plane object in 3DS Max it will be, like, 8.6in x 6.5in or 860mm x 650mm or whatever units you prefer (Image “F”). Close the file;
Editor's Note: If you don't have Photoshop there are plenty of other options for checking the dimensions of an image. In Windows Explorer single-clicking a picture file will display the dimensions in the info panel at the bottom of the window.
16. Open your 3D program, create a plane with similar dimensions (You might need to switch width for length), and give that plane LOTS of segments, like, 430x325. I divided dimensions in half (Image “G”);
17. In 3DS Max (or whatever you’re using), select the plane, go to the Modifier List, scroll down to “Displace,” and add your grayscale map to create the terrain you want. Adjust “strength” to exaggerate the height of the mountains however you prefer. Problem is, a plane has only two dimensions, so you can’t print it with a 3D printer no matter how many mountains it has (Image "H");
Editor's Note: If you don't have access to 3D Studio Max, fear not! Using Roy's instructions as a general guideline we completed these steps with Blender (a free 3D editing tool).
18. Convert the plane to an Editable Poly, select only the outermost vertices (“select border” in 3DS Max), and drag them all down pretty far on the Z axis till they’re clear of everything else. Then “Make Planar” on “Z,” which should line up all the vertices you selected to have equal “Z” values. With that border still selected, click on “Cap.” That completes a 3D printable object (Image “J”);
19. Move the bottom “cap” up near to the lowest point of your topography, but not too close, or you risk breaking your printed map when you pry it off your build surface at the end of this process;
20. Select your topo map object and export it as a StereoLitho (STL) file;
21. Open MakerWare, MatterControl, or whatever you’re using to drive your printer, and add your STL object, scaling it to fit your print bed comfortably (Image “K”);
22. Print it! This will take a long time to print. My map took almost four hours, but the detail is amazing. This printed object is only about 4.75in x 3.5in (Image “L”).
This may look like a long, difficult process, but it’s actually pretty straightforward if you follow every step to the letter. Believe me: It will be a lot easier for you to go through these steps than it was for me to figure them out.
If you find any mistakes in this article, please point them out, and I’ll do my best to fix them.