Synthesizing structured CAD models with equality saturation and inverse transformations
Proceedings of the 41st ACM SIGPLAN Conference on Programming Language …, 2020•dl.acm.org
Recent program synthesis techniques help users customize CAD models (eg, for 3D
printing) by decompiling low-level triangle meshes to Constructive Solid Geometry (CSG)
expressions. Without loops or functions, editing CSG can require many coordinated
changes, and existing mesh decompilers use heuristics that can obfuscate high-level
structure. This paper proposes a second decompilation stage to robustly" shrink"
unstructured CSG expressions into more editable programs with map and fold operators. We …
printing) by decompiling low-level triangle meshes to Constructive Solid Geometry (CSG)
expressions. Without loops or functions, editing CSG can require many coordinated
changes, and existing mesh decompilers use heuristics that can obfuscate high-level
structure. This paper proposes a second decompilation stage to robustly" shrink"
unstructured CSG expressions into more editable programs with map and fold operators. We …
Recent program synthesis techniques help users customize CAD models(e.g., for 3D printing) by decompiling low-level triangle meshes to Constructive Solid Geometry (CSG) expressions. Without loops or functions, editing CSG can require many coordinated changes, and existing mesh decompilers use heuristics that can obfuscate high-level structure.
This paper proposes a second decompilation stage to robustly "shrink" unstructured CSG expressions into more editable programs with map and fold operators. We present Szalinski, a tool that uses Equality Saturation with semantics-preserving CAD rewrites to efficiently search for smaller equivalent programs. Szalinski relies on inverse transformations, a novel way for solvers to speculatively add equivalences to an E-graph. We qualitatively evaluate Szalinski in case studies, show how it composes with an existing mesh decompiler, and demonstrate that Szalinski can shrink large models in seconds.
ACM Digital Library