Introduction: Simulating Water Drops on Wood

About: My name is Brian Oltrogge, I am an architect, educator, digital sculptor, fabricator, and DIY enthusiast.
When I designed and built my own CNC, this is exactly the type of project I had in mind.  A chance to play with forms and test ideas, bringing things to life that would otherwise just live in my sketchbook.

In this Instructable I am going to show you how I simulated water drops in Photoshop for shape generation in Rhino 3D and eventual output to my DIY CNC.  This technique could also be applied to any 3 dimensional artwork that you can generate using light and dark to define object depth. 

I am using water drops to show the advanced ability using layers to simulate the interaction of waves with each other resulting in a very believable final model.

The software used:

Photoshop
Rhino 3D
RhinoCAM
Mach3

Step 1: - 23 Setting Up the Simulation in Photoshop

Step 1:  To begin you will need to find a source image of water drops so that you can study the relationship of the wave spacing and intensity.  You might find one that is better than the one I used.

Step 2: Bring that image into Photoshop and draw vertical lines at the peaks and valleys of the waves.

Step 3: Select the Gradient Tool.

Step 4: Click on the window in the options bar that shows the active gradient ramp. This opens the Gradient Editor Dialogue box.

Step 5: Click underneath the gradient bar to add more color swatches.  Add as many swatches as you have peak and valley lines.

Step 6:  Expand the window horizontally until the gradient bar spans these vertical lines representing the peaks and valleys.  Arrange the newly created swatches inline with your reference marks.

Step 7: We will now define the colors of these swatches keeping in mind the visual reference of the source water drop image.  We will be defining the depth of the waves based on white to black gradient, so we want to start with a base color of 50% on the CMYK scale.  Double click on the swatch to open the color picker dialogue box.

The values I used were the following from left to right.

10 | 60 | 10 | 70 | 20| 70 | 25 | 60 | 45 | 55 | 50

another way to look at this to get an idea of relative amplitude of the waves...

+40 | -20 | +40 | -30 | +30 | -20 | +25 | -10 | +5 | -5 | 0

If the rings are a long way from the center, the first value might be 50 (flat) and the swatches would slide farther to the right on the scale and remain relatively unchanged.

Step 8:  We will now set a transparency ramp for the new gradient.  Click above the gradient scale to create a new swatch and move it toward the end of the scale.  You should now have 3 swatches above the scale. Set the two on the left to black (opaque) the far right one to white (transparent) this will end the gradient when it reaches the edge of our ripples.

Step 9:  Click on New to add the newly created gradient to the list of Presets.

Step 10:  Now you will need to create a new Photoshop document.  Click File>New and in the New Document Dialogue box, input a width of 10000 pixels and a height of 5000 pixels.  And make sure that it is RGB color.  Rhino will not read a CMYK formatted document.

Step 11:  Insert a new layer in the layer control box.

Step 12:  Using the grid and guide lines, make a box in the middle of document select it with the rectangular marquee tool.  You could do this image full bleed, but I prefer to have a little elbow room when moving things around.

Step 13:  Set the color to 0% C 0% M 0% Y 50% K and bucket fill the rectangle.

Step 14:  Insert new Layer.

Step 15:  Select the Gradient Tool, choose Radial Gradient in the Options Bar and make sure your custom preset is selected.

Step 16:  Click in the center of the document and drag away from the center, releasing near the edge of the field of grey.

Step 17:  Now you should have what looks like a target.  We now need to set the Opacity and Fill values to 50% so layers will mix when overlaid.

Step 18:  Select the move tool and while holding down ALT, drag another copy of the layer made in Step 16.  Note the interference produced.  Also note that where two light area cross, the image gets lighter and where two dark areas cross, the image gets darker.

Step 19:  Make more copies and scale and compose as much as you like.

Step 20:  When you are done, select the field (or part of it) and select Edit>Copy Merged.

Step 21:  Go to File>New.  The values should already be automatically set for what is on the clipboard. Make sure it is RGB mode and Click OK

Step 22:  Go to Image>Auto Contrast.  This takes the whitest area and makes it white and the darkest area and make it black.

Step 23:  Save this image.

Now that we have the final image, we are ready to bring it into Rhino and use the gradients to define 3 dimensional geometry for rendering or to make an actual object.


Additional Bonus:

(If you wanted to do a 3D laser engraving of this image, you are already done as most laser cutters support raster engraving.)


Step 2: 4 - 32 Converting Flat Image to Surface in Rhino 3D

Step 24:  Open Rhino

Step 25:  Go to Surface>Heightfield from Image.  Navigate to Image saved in Step 23 and Select.

Step 26:  In the Top viewport, input the location for the start corner and type 12” for the length of the side.  This is arbitrary, as we can scale it later.

Step 27:  In the Heightfield Dialogue box enter at least 200 X 200 for sample points and 1 for the depth.

Step 28:  Select the resulting suface and go to Analyze>Bounding Box and hit enter.  This will draw a box around the furthest points of the surface you created.

Step 30:  Using this bounding box, we will use Transform>Scale>Scale 1D to make the vertical height of the waves more appropriate.  I chose a depth of 1/8”.

Step 31:  Draw the stock (what you are milling out of) with the top face of the lower left hand corner at 0,0,0 and place your rippled surface within the stock.

Step 32:  Draw a rectangle on the top of the stock that represents where you want to cut the piece out when it is done doing the surfacing.

We are now done setting up the CAD file for CAM processing.  We have defined our stock, positioned it relative to the origin and placed the geometry within the stock.  In the next steps we will choreograph the machine movements that will transfer our design from Bits to Atoms...


Step 3: 3 - 55 Writing the Toolpath and Exporting G-code

Step 33:  Export to CAM software.  If using Mastercam I have found that IGES is the best format.  If you are using RhinoCAM like I do, you don't have to leave Rhino and can begin writing your tool paths.

Step 34:  Open the Machining Operations dialogue box from the RhinoCAM menu

Step 35:  Select the 3 dimensional representation of the stock and click on the orange stock box in the Setup Menu on the MOps window and select Stock from Selection.

Step 36:  Hide the 3D representation of the stock or turn off the layer containing it.

Step 37:  Make sure the appropriate machine and post is selected based on your hardware.

Step 38:  Go to the Create Tab and go to the 2.5D menu.  With the 2D cutout profile selected, choose Profiling.  This brings up the profiling operations dialogue box.

Step 39:  First we need to tell RhinoCAM what tool your machine is holding. Select the tool from the list, or make your own.  Click on New Tool and input the appropriate values.

Step 40:  Click Save Edits to Tool.

Step 41:  Go to the Feeds and Speeds Tab.  These values will vary by the type of material you are cutting and machine capabilities.  The diagram on the right shows what these values correspond to and after some experience you will have an idea of what these values should be.

Step 42:  Go to the Clearance Tab.  This is how high above the stock or part the machine with travel when it is not cutting.  I usually go with 1/2” above the stock.

Step 43:  Go to Cut Parameters Tab.   All I changed here was to turn on the box for Use Inside/Outside for Closed Curves and checked the box, Outside.

Step 44:  Go to Cut Levels Tab.  My stock is .25” thick.  I chose the Total Depth to be .28” and my Depth/Cut to be .1”  This means the machine will cut two passes at .1 and the final pass at .08”

Step 45:  Go to Advanced Cut Parameters Tab.  Check the box next to Use Bridges.  This will keep your part attached to the overall stock and keep the part steady while it is being cut.  I made my bridges .1” X .2” and used only two of them.

Step 46:  Click Generate and view the results in the viewport window.

Step 47:  Now we will select Parallel Finishing from the 3D Operations menu.

Step 48:  Most of our settings will already be save from our last toolpath.  On the Cut Parameters Tab, change the Intol and Outtol to .0001.  This is only necessary because of the extremely subtle detail in the water drop geometry.   This setting tells RhinoCAM how close it needs to stick to the part geometry.

Step 49:  Change the Stepover to 12% of the Tool Diameter. This is about 1/32”.

Step 50:  Click Generate and view the results in the viewport window.

Step 51:  Go to the Simulate Tab in the Mops Dialogue Box.  Note the ghost of the stock returns.  Select the Mop Set 1, click on the play button to watch the simulation of both of the toolpaths.

Step 52:  If everything looks correct, Right click on the Set and select Post.  This will write the NC code for the machine.

Step 53:  Open the file you generated in Mach3.  File>Load G-code

Step 54:  Zero the machine to the stock based on where you set 0,0,0 in Rhino.  If you don't have a CNC machine you can go to http://www.grunblau.com/CNCBMO.htm  to get information on how to build one : )  Then continue to step 55

Step 55:  Turn on Router, click Cycle Start and watch the chips fly!

Make It Real Challenge

Participated in the
Make It Real Challenge