InverseCSG: automatic conversion of 3D models to CSG trees

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.

[1]  Ligang Liu,et al.  3D Shape Segmentation and Labeling via Extreme Learning Machine , 2014, Comput. Graph. Forum.

[2]  Dong-Ming Yan,et al.  Variational mesh segmentation via quadric surface fitting , 2012, Comput. Aided Des..

[3]  Kazuhiro Saitou,et al.  Optimization of Constructive Solid Geometry Via a Tree-Based Multi-objective Genetic Algorithm , 2004, GECCO.

[4]  Sai-Kit Yeung,et al.  Interchangeable components for hands-on assembly based modelling , 2016, ACM Trans. Graph..

[5]  Dong-Ming Yan,et al.  Computational network design from functional specifications , 2015, ACM Trans. Graph..

[6]  Peter Wonka,et al.  Procedural Design of Exterior Lighting for Buildings with Complex Constraints , 2014, ACM Trans. Graph..

[7]  Wojciech Matusik,et al.  Fab forms , 2015, ACM Trans. Graph..

[8]  Armando Solar-Lezama,et al.  Program synthesis by sketching , 2008 .

[9]  Jovan Popović,et al.  Bounded biharmonic weights for real-time deformation , 2011, SIGGRAPH 2011.

[10]  Kun Zhou,et al.  Dynamic furniture modeling through assembly instructions , 2016, ACM Trans. Graph..

[11]  Vadim Shapiro A Convex Deficiency Tree Algorithm for Curved Polygons , 2001, Int. J. Comput. Geom. Appl..

[12]  Vadim Shapiro,et al.  Separation for boundary to CSG conversion , 1993, TOGS.

[13]  Daniel Cohen-Or,et al.  Meta-representation of shape families , 2014, ACM Trans. Graph..

[14]  Daniel Weiss,et al.  Geometry-based structural optimization on CAD specification trees , 2009 .

[15]  Wojciech Matusik,et al.  AutoConnect , 2015, ACM Trans. Graph..

[16]  J. Wang,et al.  Constructing 3D CSG Models from 3D Raw Point Clouds , 2018, Comput. Graph. Forum.

[17]  Lubin Fan,et al.  A Probabilistic Model for Exteriors of Residential Buildings , 2016, ACM Trans. Graph..

[18]  Daniel Cohen-Or,et al.  Component‐wise Controllers for Structure‐Preserving Shape Manipulation , 2011, Comput. Graph. Forum.

[19]  Marco Attene,et al.  Hierarchical mesh segmentation based on fitting primitives , 2006, The Visual Computer.

[20]  N. Mitra,et al.  GlobFit: consistently fitting primitives by discovering global relations , 2011, SIGGRAPH 2011.

[21]  Leonidas J. Guibas,et al.  Learning Shape Abstractions by Assembling Volumetric Primitives , 2016, 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).

[22]  Hao Zhang,et al.  Deformation-driven shape correspondence via shape recognition , 2017, ACM Trans. Graph..

[23]  José M. F. Moura,et al.  Spiral: A Generator for Platform-Adapted Libraries of Signal Processing Alogorithms , 2004, Int. J. High Perform. Comput. Appl..

[24]  Sumit Gulwani,et al.  Spreadsheet data manipulation using examples , 2012, CACM.

[25]  Subhransu Maji,et al.  CSGNet: Neural Shape Parser for Constructive Solid Geometry , 2017, 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.

[26]  Sumit Gulwani,et al.  Program Synthesis , 2017, Software Systems Safety.

[27]  Hans-Peter Seidel,et al.  An algebraic model for parameterized shape editing , 2012, ACM Trans. Graph..

[28]  Leif Kobbelt,et al.  Structure Recovery via Hybrid Variational Surface Approximation , 2005, Comput. Graph. Forum.

[29]  Steve Marschner,et al.  Matching Real Fabrics with Micro-Appearance Models , 2015, ACM Trans. Graph..

[30]  Alexander M. Bronstein,et al.  Supervised learning of bag‐of‐features shape descriptors using sparse coding , 2014, Comput. Graph. Forum.

[31]  Peng Song,et al.  Computational interlocking furniture assembly , 2015, ACM Trans. Graph..

[32]  Mathieu Desbrun,et al.  Variational shape approximation , 2004, SIGGRAPH 2004.

[33]  Adam Chlipala,et al.  Fiat: Deductive Synthesis of Abstract Data Types in a Proof Assistant , 2015, POPL.

[34]  Jun Li,et al.  GRASS: Generative Recursive Autoencoders for Shape Structures , 2017 .

[35]  Rajeev Alur,et al.  TRANSIT: specifying protocols with concolic snippets , 2013, PLDI.

[36]  Daniel Cohen-Or,et al.  3-Sweep , 2013, ACM Trans. Graph..

[37]  Daniel G. Aliaga,et al.  Interactive sketching of urban procedural models , 2016, ACM Trans. Graph..

[38]  Ye Duan,et al.  A primitive-based 3D segmentation algorithm for mechanical CAD models , 2017, Comput. Aided Geom. Des..

[39]  Matthias Nießner,et al.  SemanticPaint , 2015, ACM Trans. Graph..

[40]  Alexander A. Pasko,et al.  An evolutionary approach to the extraction of object construction trees from 3D point clouds , 2016, Comput. Aided Des..

[41]  Alec Jacobson,et al.  Thingi10K: A Dataset of 10, 000 3D-Printing Models , 2016, ArXiv.

[42]  Radomír Mech,et al.  Metropolis procedural modeling , 2011, TOGS.

[43]  Dong-Ming Yan,et al.  Inverse procedural modeling of facade layouts , 2013, ACM Trans. Graph..

[44]  Pat Hanrahan,et al.  Controlling procedural modeling programs with stochastically-ordered sequential Monte Carlo , 2015, ACM Trans. Graph..

[45]  Josef Hoschek,et al.  Handbook of Computer Aided Geometric Design , 2002 .

[46]  Suzanne F. Buchele,et al.  Binary space partitioning tree and constructive solid geometry representations for objects bounded by curved surfaces , 2001, CCCG.

[47]  Vadim Shapiro,et al.  Construction and optimization of CSG representations , 1991, Comput. Aided Des..

[48]  Rajeev Alur,et al.  Syntax-guided synthesis , 2013, FMCAD 2013.

[49]  Yin Yang,et al.  Interactive mechanism modeling from multi-view images , 2016, ACM Trans. Graph..

[50]  Siddhartha Chaudhuri,et al.  A probabilistic model for component-based shape synthesis , 2012, ACM Trans. Graph..

[51]  Jie Xu,et al.  Interactive design space exploration and optimization for CAD models , 2017, ACM Trans. Graph..

[52]  Sanjit A. Seshia,et al.  Combinatorial sketching for finite programs , 2006, ASPLOS XII.

[53]  Sumit Gulwani,et al.  Automating string processing in spreadsheets using input-output examples , 2011, POPL '11.

[54]  Donald S. Fussell,et al.  Three-dimensional binary space partitioning tree and constructive solid geometry tree construction from algebraic boundary representations , 1999 .

[55]  Alexander Aiken,et al.  Stochastic optimization of floating-point programs with tunable precision , 2014, PLDI.

[56]  Stephen DiVerdi,et al.  Learning part-based templates from large collections of 3D shapes , 2013, ACM Trans. Graph..

[57]  Jaakko Lehtinen,et al.  Online motion synthesis using sequential Monte Carlo , 2014, ACM Trans. Graph..

[58]  Aristides A. G. Requicha,et al.  Solid modeling and beyond , 1992, IEEE Computer Graphics and Applications.

[59]  Leonidas J. Guibas,et al.  Probabilistic reasoning for assembly-based 3D modeling , 2011, SIGGRAPH 2011.

[60]  Richard H. Crawford,et al.  Three-dimensional halfspace constructive solid geometry tree construction from implicit boundary representations , 2004, Comput. Aided Des..

[61]  Rastislav Bodík,et al.  Synthesis of biological models from mutation experiments , 2013, POPL.

[62]  Paolo Papotti,et al.  Synthesizing Entity Matching Rules by Examples , 2017, Proc. VLDB Endow..

[63]  Reinhard Klein,et al.  Efficient RANSAC for Point‐Cloud Shape Detection , 2007, Comput. Graph. Forum.