Now It’s Easy Reverse-Engineer 3D Models
Researchers at MIT have developed a new way of editing CAD models. Described in the paper, InverseCSG: Automatic Conversion of 3D Models to CSG Trees, this method makes it easier and time-effective to customize 3D models and recover their metadata. If coupled with 3D printing, the researchers believe this method could become a powerful tool for reverse engineering, and other on demand manufacturing requirements.
The findings of the research were presented at the SIGGRAPH Asia 2018, a computer graphics and interactive technology exhibition in December last year.
Making a mesh
A 3D model can be built from scratch by assembling basic shapes such as a cube, cylinder, and torus, etc. These are known as geometric primitives, and the method of combining them in CAD software: constructive solid geometry (CSG).
The primitive shapes and their assembly in the design stage are the metadata of a 3D model. Once the model is finalized all these separate shapes are combined to form a single body 3D model, usually stored in a file format like an .stl for 3D printing, or .obj, as a mesh of triangular tessellation, with a set of rules, including the relationship of the vertices to each other.
From here though, customizing a 3D model can prove challenging. No information from the parametric design stage exists anymore, and what remains is the triangle mesh of hundreds or thousands of different faces. As Tao Du, co-author of the research paper and PhD at MIT, explains, “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.”
Automated reverse engineering
The MIT researchers have designed an algorithm that takes a triangular mesh model as input and converts it into primitive shapes, a feat achieved within minutes. “We have tons of mesh models, but comparatively few CAD files behind them,” adds Du, “If users want to reproduce the design at home and customize it a little, then this technique could be useful.”
To test the algorithm, fifty 3D models were used, ranging from simple to complex in geometry. As a result, “By intelligently converting a mixed, over-constrained search problem into a discrete, compact form, we presented a parallelizable search algorithm that solved examples in the dataset,” the paper concludes.
“Further, we demonstrated the robustness of our algorithm by solving examples not describable by our grammar. Finally, since our method returns parameterized CSG programs, it provides a powerful means for end-users to edit and understand the structure of 3D meshes.”