Good Papers
ACM Transactions on Graphics 20183D generationMassachusetts Institute of Techn

InverseCSG

InverseCSG reverse-engineers 3D mesh construction procedures as compact CSG programs via geometric processing coupled with program synthesis, outperforming prior methods in compactness, speed, and scalability.

Tao Du, Jeevana Priya Inala, Yewen Pu, Andrew Spielberg, Adriana Schulz, Daniela L. Rus, Armando Solar-Lezama, Wojciech Matusik

Published Nov 28, 2018126 citationsPaper ↗

75%
OverallHighly rated
?
OverallHighly ratedVote to see the score
Readers
–

Only vote on papers you've read. Sign in to vote.

AI panel10/21reviewers recommend it
lenient 3/5
medium 5/11
strict 2/5
AI panel?Vote to see what the 20 AI reviewers said

Abstract

While computer-aided design is a major part of many modern manufacturing pipelines, the design files typically generated describe raw geometry. Lost in this representation is the procedure by which these designs were generated. In this paper, we present a method for reverse-engineering the process by which 3D models may have been generated, in the language of constructive solid geometry (CSG). Observing that CSG is a formal grammar, we formulate this inverse CSG problem as a program synthesis problem. Our solution is an algorithm that couples geometric processing with state-of-the-art program synthesis techniques. In this scheme, geometric processing is used to convert the mixed discrete and continuous domain of CSG trees to a pure discrete domain where modern program synthesizers excel. We demonstrate the efficiency and scalability of our algorithm on several different examples, including those with over 100 primitive parts. We show that our algorithm is able to find simple programs which are close to the ground truth, and demonstrate our method's applicability in mesh re-editing. Finally, we compare our method to prior state-of-the-art. We demonstrate that our algorithm dominates previous methods in terms of resulting CSG compactness and runtime, and can handle far more complex input meshes than any previous method.