|Keuka Lake (Google Earth)||Computed STL solid model||Finished product|
It started when L. spotted an article in ReadyMade about FluidForms, a company which makes customized “Fluid Earth bowls” out of wood. You go to their Web site, select a geographic area of interest, and their computers carve a scale model of that terrain out of a slab of wood. In theory you can use it as a bowl for your vegetables.
“That’s easy,” I decided. We had recently acquired a 3-axis CNC router at work, and although I didn’t yet know how to use it, I figured it would be simple enough. We were slated to visit New York’s Finger Lakes region in a couple of weeks, so an obvious first project would be a gift which shows the terrain near her family’s lake house. Now, for the data.
Google Earth was the logical starting point, since everyone knows how to use it. Unfortunately, it is also a closed-source commercial program. They make it very easy to put data into it, but for various reasons it is very difficult to get data back out. NASA offers a similar application called World Wind which solves the openness problem, but the full feature set is only available on the Microsoft Windows version. What to do?
The solution was provided by the US Geological Survey, which operates a Web service called The National Map Seamless Server. The USGS provides a variety of georeferenced data products free of charge. These are normally divided up into rectangular quadrangles which do not necessarily cover the entire area of interest. But the Seamless Server can quietly stitch together multiple maps. You simply select the area of interest, choose the data products you need, and download them.
FluidForms, like Google Earth, relies on worldwide elevation data from February 2000′s Shuttle Radar Topography Mission. NASA calculated the height at every point on the Earth’s surface using space-based radar interferometry. Because it is based on radar reflections, it is not tremendously accurate—it can’t discern between dense treetops and the ground, for example—but it does cover most of the Earth at 30 meter resolution. But because I’m modeling locations in the United States, the USGS offers me a better choice: the National Elevation Dataset. The NED is derived from a variety of sources, including traditional surveying, and is largely hand-checked for accuracy. It is available in ridiculously high resolutions (presently 10 meters, with 3 meters coming soon). As a result, even little streams and creeks are visible. Perfect!
The next step was to find a program to convert downloaded elevation datasets into 3D solid models in a format that could be understood by computerized manufacturing tools like 3D printers and CNC routers. I quickly discovered that no such program exists, so I wrote one. The chosen DEM data format (GeoTIFF) as basically a grid of floating-point altitude values georeferenced to the UTM coordinate system. Had I been interested in a larger area, I would have had to “unwrap” the Mercator projection onto a spherical or elliptical surface, but because the lake is relatively small, I decided to forego the extra math. The program simply applies the proper scaling factors and adjusts the Z-height to reflect the desired minimum thickness of the wood. The solid model output is in STL format, which is basically a giant mesh of interconnected triangles in 3D space. Each triangle is described by 3 vertices and a unit normal vector to tell the computer which side is the outer surface. For simplicity, I turned the entire X-Y grid into triangles. The program connects the triangulated surface with yet more triangles which describe the sides and bottom of the finished product. Done.
Unfortunately, in my zeal for detail, I discovered that STL files with more than one million triangles can choke even a powerful computer. Ideally I would reduce the number triangles in non-detailed areas, but such algorithms are beyond my skill level. I’m just an electrical engineer here. I wound up reducing the resolution of the whole area.
With the STL solid model complete, all that was left was to generate toolpaths—the actual motions that the CNC router will follow while carving. Fortunately, the router comes with CAM software to accomplish this task.
For our first piece, we laminated 3 pieces of Baltic Birch plywood with PVA glue. The outer dimensions are 16 x 14.5 inches. The carving takes about 3 hours: a first pass with a 1/2″ diameter mill roughs the wood down to the approximate shape, then a final pass with a 1/8″ ball-end mill creates the final surface. After about an hour of sanding and a couple coats of Danish oil, the bowl was done. Success!