I recently purchased a new 3D printer so I could design and print my own 3D printed terrain pieces. I found myself limited by the tools available for free when I wanted to create something more than basic shapes, so I figured out a way to easily get complex shapes. I have chosen the OpenLOCK™ system, but this technique will work with any 3D printed terrain system (just adjust the dimensions of the source image).

Note: You can find all of my designs on Thingiverse. I also keep them on github.

Specifically, this tile can be downloaded here.

First, you need to create a gray scale image. Start with a black background. Anything in black will be at the far back of the textured surface. White will be at the very front. Shades of gray will be in-between.

So, given this image (and the technique described below):

Source image for a 3D wall tile (created with GIMP)

I will get this wall tile:

Resulting 3D Object
The actual 3D printed object from the above image

Notice that the edges of the "pipes" are a gradient from light to dark and that the resulting model has a rounded edge where that line was drawn. Also notice that where there were black lines on the pipes, there are indentations.

Note: the dimensions for the source image for the wall tile is 50.8mm wide by 43mm tall.

The magic trick in all of this is to use an online Lithophane generator to create our textured surface. We simply make sure that the settings are as follows:

Image to Lithophane settings for 3D Printed tile texture

Once we have the settings, we simply use the image from above and it generates a 3D image for us:

The resulting lithophane of our texture image

Simply click the Download button to get an STL file with the texture defined.

Next, we open Tinkercad to put together our terrain tile wall. Create a new project in Tinkercad and give it a name.

Before we continue, visit the Printable Scenery website and download the tessellation templates (free). Unzip the templates to a folder on your computer.

Then, back in Tinkercad, click the Import button and import the A-Wall template (found in the Primary-Walls subfolder).

Blank A-Wall template loaded into Tinkercad

Now, we need to import the STL file generated by the lithophane generator. Click the Import button again and import the STL file from your browser's download location. This will take some time as this is a complex texture.

Tinkercad workspace with OpenLOCK template and lithophane texture loaded

Notice that the lithophane texture is the wrong size. This is easily fixed. Click the Ruler button on the top-right of Tinkercad and then click on the textured surface.

The dimensions of the textured surface

The dimensions that we're interested in are the numbers by the long blue lines. In this case, it is 100.0mm wide by 84.67mm long. We need to change that to 50.8mm wide by 43.01mm (this was the size that GIMP made it when I created the image).

Resized textured surface

Now, we need to rotate this 90° so it is parallel with the vertical surface of the wall template.

Rotated 90°

Next, we need to move it so that it is flush against the wall template with the back wall of the textured template just below the surface of the wall template.

This is where we need to change the Snap Grid unit to 0.1mm (on the bottom-right side of the work surface in Tinkercad).

Change the Snap Grid to 0.1mm

I find that changing the workplane to various surfaces and using the arrow keys on the keyboard is the best way to place an object with precision. Using the mouse can be frustrating as you constantly overshoot. Learn to work with the Workplane feature and your life will be a lot easier.

The texture rests perfectly on the surface of the wall template

Now, I need to change my workplane and adjust the depth of the texture.

Selecting a surface for your workplane
Using the left side of the wall template as the workplane surface

Notice that the texture's background is now just under the surface of the template wall

Let's check the other side of the wall to make sure it's positioned correctly.

The opposite side of the wall looks good

OK, you could create a separate image for the back side and import that, but for the sake of speed, I'm going to simply mirror this texture on the back.

Click on the textured surface to select it. Then hit CTRL+C and then CTRL+V to copy and paste it. Readjust it so that it is perfectly aligned with the original. Press the M key to flip the texture on its Y axis (front to back flip).

Copied texture flipped front to back

Next, we need to move it along the Y axis so that it is flush with the back wall of the template.

Place the textured surface copy on the back wall

We're almost finished. We just need to drag the selection box around the entire thing and press CTRL+G to group them together into a single object. This could take some time depending on the complexity of the textures. The outlines of the objects will turn red while it is working.

Everything combined into a single object

To finish, click the Export button and download the STL file.

Select The selected shape and click the STL button

Open the STL in your slicer and check the overhangs. You should aim to create images that have darker shades of gray, as those will not have the possibility of creating overhangs.

Once you have it adjusted in your slicer, print it out and see your new tile. Mine are averaging around 1.5 hours each to print on an Ender 3 Pro at 10% infill, no supports, and a skirt for build plate adhesion.

As you can see, creating complex shapes on a 3D printed terrain tile is easy to do with nothing but free tools.

If you find yourself using this technique a lot, please consider becoming a patron of Mark Durbin, the creator of the Image to Lithophane Generator. He has a $1 per month level and a $25 per month level. Also, consider donating to the GIMP project. I have done both because I believe in supporting the creators of the software tools that I use regularly.

Here is a YouTube video that I created to cover this process. Please forgive the quality of the video, I'm still new at creating videos. I was excited that I figured out this technique and I wanted to share it with the community.

My YouTube video covering this process