Topographical Lake 3D Print

7,919

55

14

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.

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.

Outside Contest 2016

Participated in the
Outside Contest 2016

Summer Fun Contest 2016

Participated in the
Summer Fun Contest 2016

Be the First to Share

    Recommendations

    • Big and Small Contest

      Big and Small Contest
    • Make It Bridge

      Make It Bridge
    • For the Home Contest

      For the Home Contest

    14 Comments

    0
    D'ArcyM
    D'ArcyM

    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?

    0
    D'ArcyM
    D'ArcyM

    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!

    0
    24Eng
    24Eng

    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.

    0
    D'ArcyM
    D'ArcyM

    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! :-)

    0
    24Eng
    24Eng

    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.

    0
    D'ArcyM
    D'ArcyM

    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?

    0
    24Eng
    24Eng

    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.

    0
    D'ArcyM
    D'ArcyM

    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

    0
    gracie9814
    gracie9814

    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!

    0
    24Eng
    24Eng

    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...

    0
    gracie9814
    gracie9814

    Reply 3 years ago

    Here are some of the projects I did using this code! Works great

    Modeling process.pngprintedSFUlake.jpg
    0
    gracie9814
    gracie9814

    Reply 3 years ago

    Thanks! I'll post a picture when it's finished

    0
    cupduckstapler
    cupduckstapler

    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!

    0
    24Eng
    24Eng

    Reply 6 years ago

    I hope you post a picture of that. I'd love to see it.