+++ title = "A Very Digital Artifact" slug = "a-very-digital-artifact" date = "2022-11-11" [taxonomies] tags = ["3dprinting", "CAD", "GIS", "CNC", "art", "sundries", "proclamation"] +++ ![A plywood slab carved with CNC into a topographic representation of California][main_image] # A birthday wish Last summer, I wanted to get my wife something nice for her birthday. For many years, she had expressed an occasional and casual desire for a topographic carving of the state of California, where we live, and I thought it might be something I could figure out how to get her. In the end, after many dozens of hours of work, five weeks, and several hundred dollars paid to a professional CNC machine shop, I had the artifact shown in the picture above. This is the story of its creation. # First steps Before you ask, I did not do a ton of research before embarking on this. As I write this, about six months later, it only now occurred to me to do a basic search for an actual physical thing I could buy, and luckily it seems that CNC-carved wooden relief maps of the whole state are not trivially easy to come by, so, *phew!* No, my first step was to see if there were any shops in the area that could carve something out of nice plywood, about a week before the intended recipient's birthday. I found one that was less than ten minutes away, and filled out their web contact form. They had a field for material, and I said, "some nice plywood between 0.75 and 1.0 inches thick or similar" (I didn't know exactly what was available and wanted to give broad acceptable parameters), and under "project description", I wrote, > A relief map of California, carved from wood. Height exaggerated enough to visibly discern the Santa Monica mountains. I can provide an STL file if needed. For some [incorrect] reason that I only later examined, I just sort of assumed that the shop would have a library of shapes available for instantiating into whatever material medium you might need. But just in case, I included that hedge about being able to provide an STL file. Needless to say, that was a bluff. ![the programmer's creed: we do these things not because they are easy, but because we thought they were going to be easy -- from twitter user @unoservix, 2016-08-05][programmers_creed] *
me, every time
* Also needless to say, my bluff was called almost immediately, and I had the following exchange with the shop: > *CNC Shop*: STL can work but I can’t manipulate it, which could save some money. If possible can it >be exported to an .igs or .iges or .stp format? > > *Me*: Yeah, STP should be no problem. Can you give a rough estimate of the cost for 1x2-foot relief carving? > > *Shop*: Without seeing the drawings, I can’t give even a close price but in the past they range from >a few hundred dollars to several thousand dollars. > > *Me*: That's totally fair! I'll get you some files in a few days. "I'll get you some files in a few days," was an even harder lean into the bluff; my next communication with the shop was nearly four weeks later. But that's getting ahead of things. # Meshes and solid bodies First off, let's talk about file formats and how to represent shapes with a computer.[^math-computers] I said I could provide an *STL file*. [STL](https://en.wikipedia.org/wiki/STL_(file_format)) is a pretty bare-bones format that describes the outside surface of a shape as a set of many, many triangles, each of which is described by three 3D points, forming a "mesh" in the shape of the thing you're modeling. This format is popular with 3D printers, which is how I became familiar with it. This format is simple to implement and easy for a computer to read, but if you have a model in that format that you need to manipulate, like you want to merge it with another shape, you won't have a good time. In order to actually do things like change the shape of the model, it needs to be converted into a CAD program's native representation of a "solid body", which is pretty much what it sounds like: a shape made of a finite volume of "stuff", and NOT just an infinitesimally thin shell enclosing an empty volume, which is what the STL mesh is. In order for the CAD program to convert a mesh into a solid body, the mesh must be *manifold*, meaning, no missing faces (triangles), and with a clearly-defined interior and exterior (all triangles are facing in one direction relative to their interior). When there are no missing faces, it's called "water tight". You can still have "holes" in a mesh, like if you have a model of a donut, but the surface of the donut can't have any missing faces. The CNC shop had requested a model in a format called [ST**P**](https://www.fastradius.com/resources/everything-you-need-to-know-about-step-files/). `.stp` is the extension for a "STEP" file; STEP is supposed to be short for "standard for the exchange of product data", so someone was playing pretty fast and loose with their initialisms, but I digress. The main thing about STEP files is that CAD programs can really easily convert them into their native internal solid body representation, which allows easy manipulation. But so far, I had nothing at all. Time to get some data and see if I can turn it into a model. # Public data ## From space? ## Thanks, California state! ## In Australia, it's pronounced "g'dal" ## Give it a good smear # Test prints # Final cut # Thanks [main_image]: PXL_20220723_214758454.jpg "A plywood slab carved with CNC into a topographic representation of California" [programmers_creed]: programmers_creed.jpg "jfk overlaid with the programmer's creed: we do these things not because they are easy, but because we thought they were going to be easy" [^math-computers]: I'm pretty sure this is more "represent shapes with math" than with a computer, but the computer is just helping us do the math and it's more relatable.