This is how to create a 5-axis CNC cut photo, a project in collaboration with James Yett, using the same methods as the 3d printed photo (https://www.instructables.com/id/3d-printed-photo/).
The concept works on the basis of a diffuse reflection on a surface from a single light source http://en.wikipedia.org/wiki/Diffuse_reflection . When a surface is oriented so that it reflects the light source towards your eye, it appears to be a brighter color. When the light is reflected away, it appears darker.
If the surface texture is fairly rough you will have a more diffuse reflection and most of the brightness of the light is scattered. This works best with a darker material since a lighter color will absorb less light and the light source will be less visible. If the surface is polished, you will get more specular reflection and the light source will appear brighter, allowing for a lighter color material.
To create the oriented surfaces, I used Autodesk's Dynamo which is a free graphical programming environment for Vasari or Revit (get Vasari for free at www.autodeskvasari.com and Dynamo at www.dynamobim.org). You will also need Solidworks with HSMworks (www.hsmworks.com) to generate the 5-axis toolpaths.
Start by downloading and installing Vasari and Dynamo. When you first start up Vasari, on the left it will say Projects and Families. Click the button that says "New Conceptual Mass". Open the default "mass.rft" template. In Vasari under the "Add-Ins" tab, click the button for Dynamo.
In the Dynamo window, open the file (provided below) cnccutphoto.dyn.
You will see the graphical program to create the image. An image is read by it's rgb pixel values in a list. The rgb values are translated into greyscale values. These values are translated into a range for -x to x for our surface rotation. A grid is created matching the number of pixels in the image and a circle is created at each grid point. Then each circle is rotated based on its corresponding greyscale value. That circle is extruded as a surface for Solidworks to reference its shape and normal.
At the far left of the Dynamo file is all the parameters to create your image.
The first box "File Path" is where you will open the image file you want to create. Make sure the image is square, has good contrast in greyscale, and the pixel number is even (30, 50, 100 etc.). I used a photo of myself.
Next choose your image size. This is measured in millimeters from the center of circle to circle.
Choose your pixel number. This needs to be the same number of pixels in your image or evenly divisible.
The "Max Rotation" parameter is the maximum rotation of the surface for a black or white value. 15 degrees is a good place to start.
"Overlap" sets the radius or the circles. It's best to have each circle overlapping each other completely or not at all.
"Thickness" will set the extrusion distance for each circle. This will be the depth of your cut (1mm is good).
Lastly, the file will need to be exported as a SAT. Set the last "File Path" to where you would like it to save and remember to keep the extension as ".sat". Every time you click run, a new file will be written to that path.