Researchers at MIT have developed a practical method of reverse engineering 3D models.
The problem they’re trying to overcome is the loss of design information when a 3D design is converted to a 3D model.
For those confused about what these elements might be, let me explain. 3D models are almost always first developed in a 3D CAD tool. These software tools allow a creator to easily use virtual solid objects and other techniques to quickly assemble a complete 3D design.
This design is editable, as the original components are represented in the CAD tool. A hole of diameter X could easily be changed to diameter Y in seconds, for example.
But then to actually make use of this design, it must be exported to a formal 3D model. Most often this is in .STL format, which is essentially a giant pile of triangles in 3D space that form a “skin” over the outside of the object. For fine details, many triangles, perhaps tens of thousands, may be required.
At that point, it is effectively impossible to significantly change the object’s design, because it is just zillions of triangles. Changing one doesn’t do much: imagine the number of triangle changes required to implement to diameter X->Y change mentioned above!
Now MIT researchers have developed what they call “Program Synthesis”, which apparently can take as input .STL files and decompose them into primitive solid objects that could be manipulated by a CAD system. In other words, reverse engineering the design.
“Essentially, to build CAD models, designers assemble individual shapes into a final object; the researchers’ method does the reverse, disassembling the CAD models into individual shapes that can be edited. As input, the system takes a 3-D triangle mesh and first determines the individual shapes that make it up. Program synthesis crawls through the shapes, trying to figure out how the shapes were put together and assembled into the final model. In doing so, it breaks down the mesh into a tree of nodes that represent the primitive shapes and other nodes detailing the steps for how those shapes fit together. The final shapes contain editable parameters for users to tweak that can be reuploaded to the mesh.”
This is quite a development, as it theoretically would unleash the capability to modify in a practical way any of the millions of publicly available .STL files worldwide.
That could be good news for those who wish to do so, but perhaps very, very bad news for some 3D designers.
The problem is that with .STL files there is effectively no security; if you have the file, you can make the object. That’s not good for manufacturers who need to protect their proprietary aircraft component, for example.
Some designers have fewer concerns and release their .STL files to the public for use, but do so with the knowledge that “at least it can’t be modified”.
Now that’s changed with “Program Synthesis”. If this system is made publicly available, then any .STL file could be modified, and possibly claimed as a new design by the usurper.
This development could drop a dark cloud over thousands of generous designers who have for many years provided useful .STL files to the public in repositories like Thingiverse, MyMiniFactory or YouMagine.
I’ve often feared this capability could develop for just this reason, and now it seems to have happened.