by Steven Sciandra
Development Engineer, 3D Systems - Geomagic Solutions
People like shiny things; we all know that. And technically-minded people like technically shiny things. We also know that different people see different things, even when they are looking at the same thing.
Case in point: We recently received a couple of Cube 3D printers to take a look at and get familiar with, etc. The Cube 3D printer is a 3D printer that anyone can use to print out custom items such as toys, jewelry, mugs, etc., and it's supported by the cubify.com web site, where you can download designs or buy 3D prints. But while printing pretty custom jewelry is all well and good, I was seeing the technical details. I was more interested in investigating and understanding the following:
- What software format does it use?
- What should I print first to explore the above?
Off I go, geeking out
To answer the above questions, I decided to print the Stanford Bunny, a classic 3D model that can be used to test many graphics algorithms such polygonal simplification, compression, and surface smoothing and servers as a benchmarking for 3D modeling algorithms. (I got that from Wikipedia).
From my perspective in development, I was most interested in the STL file format and how it works. Most CAD and 3D modeling packages can produce a text-based .stl file, containing a text representation of a 3D model by list vertex information x, y and z for each triangle in the model. A single triangle in .stl will look like the following:
facet normal 0.8122427343086 0.5101974818760 -0.2827724704604
vertex 38.0982011600000 32.0786014200000 58.9726008500000
vertex 37.2748002400000 32.6444022400000 57.6283000400000
vertex 37.5229008500000 33.0267995600000 59.0308979200000
- Normals are perpendicular lines to the face of the triangle
- Vertex is the corner point of a polygon
Although the above format has held up for more than three decades, one major drawback of the .stl format is that an .stl file only describes the surface of a three dimensional object. Expression of color, materials and texture, and other CAD model attributes are not supported. Wouldn't it be great if something on the horizon that did just that?
Enter AMF (aka STL2)
Questions like this are not exclusive to me, and that's why the Additive Manufucturing Format (AMF) is being developed. AMF is an open standard for describing objects for additive manufacturing processes such as 3D printing. (Again, wikipedia.) AMF supports those other attributes of a model that we seek, such as color, texture, material and print constellations ( physical print layout ), in a standard XML format.
Much work has been done in this area, including the drafting of the AMF standard doc, reference code and an AMF-ready application that imports the properly formatted AMF/XML formatted files.
For more information on the AMF standard see http://amf.wikispaces.com/.
Bunny is printed!
Okay, back to our bunny. After reading up on the Stanford Bunny (and its 69,451 triangles), loading the model into 3D Geomagic Studio 2012 and generally just experimenting with the model, I had a 3D-printed bunny in my hands. The printer was very simple to use and fun to tinker with. I was gaining an understanding of STL, and easy 3D printing - just what my developer-nerd brain was pursuing.
To finish up the 3D print, I had to remove the bunny from the printing plate with water, and as I was at the kitchen sink, Angie from Accounting walked in and said,"Oh how cute, a little bunny wabbit! Just in time for Easter! What other colors do you have? Can I get a couple?"
Polygonal Easter decoration. Go figure.
Boom. There it was. It dawned on me: The little bunny rabbit was more than the classic Stanford 3D model used by 3D modelers to test their algorithms. As I was looking at the 3D printer and the resulting 3D-printed bunny from a technical point of view, a fellow employee was looking at it from an aesthetic point of view: a timely holiday decoration!
Wow. I'm not sure I would've made the connection, given my head was buried in sea of vertices and normals, but Angie did. Even as a developer of software, I have never before been so struck by the realization of how different people view the same thing from vastly different pespectives and views. This is a lesson all of us can take back to our development work and just hold in the back of our minds: What I might regard as a great new feature in our software might not have the same result when viewed by someone from a different perspective.
There. Simple lesson over. Not very long after this epiphany, our 3D Geomagic office in RTP was hopping with colorful 3D printed bunny rabbits.