Introduction: Topographical Lake 3D Print
I wanted to give my mother a unique gift for her birthday and while looking at a 3D printed ear it occurred to me that she would love a topographical print of the lake where she parks her RV. 3D maps a fun conversation piece and they can give a better sense of depth than a 2D map with numbered lines.
Fortunately modern open-source software makes this a walk in the park.
Step 1: Turn a Contour Map Into Grayscale
Finding a lake map should be an easy step. If you're stateside the Department of Natural Resources has a site for your state. I think they use their own overlay over Google maps and I included the lake I'm mapping in the pictures. As you can see there are depth lines throughout the lake I've chosen.
It will be necessary to isolate each of these layers and turn them into gray depending on their depth. The deepest part of the lake should be black and the land should be white. You can remember this by thinking of how much sunlight is visible at the surface and the bottom of a lake.
Choosing a graphic editing program is up to you. Even MSPaint could hand this job if you are patient. I used GIMP for my image but Inkscape would have been my second choice.
My six year old computer didn't have enough RAM so I had to reduce the image resolution to 160px * 160px. This was easily enough resolution for a 6" print.
Call this image "lake_contour.png"
Did you use something else? Tell us in the comments.
Step 2: Use OpenSCAD to Make a 3D Model
OpenSCAD is more open-source software (that's what the OpenS stands for) and a lightweight modeling program. It's all we'll need to make a virtual 3D model from our image. In fact, we can make the model with only three lines of code and a couple key presses.
Create an OpenSCAD file in the same folder as lake_contour.png. Or just download 3d_lake.scad from this step and place it in the folder with the image. Open 3d_lake.scad with OpenSCAD and press F5. You may have to zoom out (View > View All) to see your 3D map.
Press F6 and OpenSCAD will be begin rendering the model. This may take a long time so be patient. When it is done the OpenSCAD console will say "Rendering finished." Then export the STL (File > Export > Export as STL...) somewhere you can find it with your printer software.
Did you use another open-source modeling program? If so tell us in the comments.
Attachments
Step 3: Print With Your Regular 3D Printer Software
Open your printer software and import the STL you just created. Scale to make it as small as a keychain or as large as your printer can go. Or you can pay to use a 3D printing service like Shapeways and have a unique sent right to the recipient.
I use XYZware and you can see that I am due for a RAM upgrade.
If you print this map with a low infill it will float! Perfect for a day cruising the lake.
Step 4: About Me
Thank you for reading this Instructable. If you like it check out my site where I blog incessantly about my projects. There is a day-by-day write up of this project and lots of others including a book I'm simultaneously writing and recording as an audiobook. For free of course. It has super powers, family crises and flying ships.
I have lots of 3D printed projects and lots of projects which don't use a 3D printer.

Participated in the
Outside Contest 2016

Participated in the
Summer Fun Contest 2016
14 Comments
Question 2 years ago
I've tried 2 different maps. The first was great! The second was a smaller, but still deep. The second produce an almost square model. Is there a way to reduce the height of each layer?
Answer 2 years ago
I'm getting really good at answering my own questions! :-). It turns out the variance in greyscale has an impact. I was using white as my final colour for the land regardless of the # of layers. But I needed to keep it closer to the previous colour I used. As soon as I changed the last colour, the map is fine! Thanks again for this instructable!
Reply 2 years ago
Asking the right question can be the hardest part, and sometimes that sheds light on the answer.
In addition to changing the grayscale contrast, you can alter the code. On the line
"scale([1, 1, 0.25]){"
you can reduce the "0.25" and it will squish everything down. I know you don't need the extra answer, but someone else might see this thread and want another way, so I'm glad you asked.
I'd love to see what you've built, if you don't mind posting a picture.
Reply 2 years ago
I am just working out the kinks with the software tools at the moment. Using this as inspiration to build my first CNC router! :-)
Reply 2 years ago
My mom loved the son-made quality to my map, but the aesthetics of a 3D map made out of wood are unquestionable.
When I was wee, my parents took me to Duluth, MN and someone built a kitchen table sized map of Lake Superior in layers, much like you're doing, but they probably used a jig saw and giant paper templates since this would have been in the 80s. Obviously, that wooden lake map left an impression.
Best of luck D'Arcy.
Question 2 years ago
Thanks for the tips! I've produced my first digital model. In hindsight I should have used a simpler lake! :-) Is it possible to use the rendering for CNC routing rather than 3D printing? What steps are require to produce GCode?
Answer 2 years ago
I haven’t done CNC routing, but if it’s like 3D printing, you’ll need software capable of producing Gcode for the router you’re using.
Answer 2 years ago
Just answered my own question. It turns out my original render was too large. Once I scaled it down I was able to load it into Kiri:Moto just fine
Question 3 years ago on Introduction
Hey, I am trying to use this project to create a 3D map of a river. Could you elaborate some more on what the different values in your code mean?
Thanks!
Reply 3 years ago
"$fn = 50;" describes the resolution. More specifically this is a system variable "$", defining the facets "f", and the number of them "n" that will be generated.
"convexity = 5" should work for a river the same as a lake.
Both of these values are described in detail in this manual. If something doesn't make sense, send me another message and I'll do my best. I'd also love to see what you make!
https://en.wikibooks.org/wiki/OpenSCAD_User_Manual...
Reply 3 years ago
Here are some of the projects I did using this code! Works great
Reply 3 years ago
Thanks! I'll post a picture when it's finished
6 years ago
Great idea! Great idea! I am going to do this for my parents for their next gift. I had the idea looking at yours to do it in blue plastic, then fill the lake with a clear epoxy or resin (maybe even put a small fishing related thingy in there), then paint the remaining surface another color! Such a creative idea, thank you!
Reply 6 years ago
I hope you post a picture of that. I'd love to see it.