Customising CAD

MIT researchers have devised a technique that ‘reverse engineers’ complex 3D computer-aided design (CAD) models, making them far easier for users to customise for manufacturing and 3D printing applications.

The MIT system applies a technique called ‘program synthesis’ to break down CAD models into their primitive shapes, such as spheres and cuboids. Their method disassembles CAD models into individual shapes that can be edited.

As input, the system takes a 3D triangle mesh and determines the individual shapes that make it up. Program synthesis then determines 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.

“Ideally, if you want to customise an object, it would be best to have access to the original shapes — what their dimensions are and how they’re combined,” said Tao Du, a PhD student in the Computational Fabrication group of MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL). “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 process could be useful in manufacturing or when combined with 3D printing software, Du added. This is especially important in the age of design sharing, where amateur 3D printer users upload 3D print models to websites for online communities to download and modify. Uploads are mostly triangle meshes, because meshes are far more universally accepted across platforms than the original CSG-based CAD files.

Currently, the system only handles four primitive shapes — spheres, cylinders, cuboids, and tori (doughnut shapes). Next, the researchers aim to increase its complexity to handle more shapes and modifiers.