The internet is full of repositories for 3D models that can be freely downloaded and 3D printed, so when a maker needs a certain shape for a specific application, it’s often easier to download a premade model than it is to design one from scratch. Countless hours are saved thanks to the sharing of 3D models. But what happens when an available model is very close to being the right shape but is just barely off in one dimension or another? Generally, that’s when we realize it’s time to start from scratch as STL files (Standard Tessellation Language: the 3D mesh format used in 3D printing) aren’t easily modifiable beyond simple scaling. An MIT research team is trying to change that with their program that reverse engineers complex models into simpler constituent parts that can be modified individually before they’re recombined.
“We have tons of mesh models, but comparatively few CAD files behind them,” remarked Tao Du, a PhD student in the Computational Fabrication group of MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL). “If users want to reproduce the design at home and customize it a little, then this technique could be useful.”
Their script uses “program synthesis” and crawls over a model, detecting primitive shapes (spheres, cuboids, cylinders, and donuts) as well as their location, orientation, and dimensions. It then makes those parameters editable. In short, the process converts a triangular mesh into a parametric model. Du elaborates, “At a high level, the problem is reverse engineering a triangle mesh into a simple tree. Ideally, if you want to customize an object, it would be best to have access to the original shapes — what their dimensions are and how they’re combined. But once you combine everything into a triangle mesh, you have nothing but a list of triangles to work with, and that information is lost. Once we recover the metadata, it’s easier for other people to modify designs.”
The team ran 50 different models of varying complexity through their system and found that it could reverse engineer models comprised of up to 100 primitive shapes. Currently, the program can detect only the four primitive shapes listed earlier, but the team is working to expand that list as well as the operators that dictate how primitive shapes can modify each other.
Such a tool will be incredibly useful for modifying open source models and breaking complex parts down into pieces that are easier to 3D print. But the potential for abuse is also apparent; this is the equivalent of a lockpick for 3D IP (intellectual property) pirates. The easiest way to skirt around IP law is to make enough apparent changes to a model that it looks unique, and it’s a very subjective legal arena. Pirates still often have to design the model from scratch to make those changes, meaning they have to reverse engineer the parts on their own. With this tool, they could skip the most difficult and time-consuming aspects of their digital swashbuckling.
As these tools become more available, more people will use them, and most of them without any nefarious intent; they’ll just want to customize something to make it work better for themselves. If someone wants to buy that customized version, then we re-enter a legal grey area. For this reason and others like it, many makers have advocated for looking at IP law with a new lens that factors in the modern accessibility of customization. 3D printing is a disruptive force, and its wake is already being felt in the courts.