Introduction: Image Relief in Water

About: Michael Koehle is the CNC shop assistant at Autodesk Pier 9. His background is in engineering and in art. He combines these to make work using drawing, painting, CNC, 3D printing, and laser cutting.

Have you noticed how water gets darker as it gets deeper, but shallow water is more transparent? I've worked at controlling that phenomenon to make images. This is done by creating a relief based on an image's intensity, and machining this relief into a lightly colored material. The dark areas will be carved deeper; the lights will be shallow. Then we’ll fill the relief with tinted water. The deeper the relief, the more water, making darker shades. The less water, the more the white material is visible.

This project was a collaboration with the artist Tressa Pack ( Tressa's photos possess a stillness and depth that I very much wanted this piece to have.


  • an image
  • ArtCAM
  • DMS 5-axis CNC
  • A sheet of Corian
  • water and dye

Step 1: Image Prepping

Light doesn’t attenuate linearly in water (or any substance really). This means you can’t just scale intensity with depth. For example, if your water appears black beginning at 1” deep, at 1/2" deep it won’t be true neutral, but much darker. True neutral might happen closer to 1/4" deep. The relationship between intensity and depth is governed by this exponential equation:

Simple Frames

Which looks like this:

Simple Frames

You can try to mimic this effect by modifying the curves in photoshop, or by feeding your intensity values into the above equation to get your depths. More about this is in this Instructable (which also includes some code):

Last step for image prep is that you might want to add a wall around your print, to enclose the water. This can be done by simply drawing a white border around the entire image.

Step 2: Image to Relief

Now we need to convert the image into a three dimensional relief, based on the intensity of the image (also called a height map or displacement map). There are many ways to do this:

  • Blender:
  • Processing:
  • Octave:

For this instructable, I’m using Autodesk software called ArtCAM, which among other things, handles really well machining reliefs based on images. In other workflows, anything bigger than around 1000 pixels on one side starts to get unwieldy, at least by other CAM programs I’ve used. ArtCAM is able to handle much larger images. I think this is because it doesn’t bother converting the image into a meshed model, but performs its calculations on a point cloud.

If using ArtCAM, the generation of this model is pretty straightforward. Load the image into the software, and choose your dimensions. For my piece, the size I want to machine at is 28x42”x.2” deep.

Step 3: CAM and CNC

I used ArtCAM for generating toolpaths. I roughed using a 1/2” ball mill, then finish with a 1/4" ball mill. The stepover for the finishing was .035”. Although not really equivalent, I tend to think of stepover in terms of pixel size. 1/.035 is about 28 dpi. I then used a 3/8 end mill in a profile pass to cut the material from the stock. Careful on this part! I ruined one sheet of material because my profile pass was too tight, ruining the wall that was intended to enclose the water.

The total machining time was about 8 hours.

Step 4: Just Add Water

Add some ink to water. I used a small, 3d printed prototype to figure out the correct ratio. Pour the water into your relief, and watch the image magically appear.