Using E-Graphs for CAD Parameter Inference

09/26/2019
by   Chandrakana Nandi, et al.
0

Computational fabrication is increasingly popular among end-users and makers in the form of 3D printing and laser cutting. Using Computer-Aided Design (CAD) tools to construct models from scratch is a significant barrier to entry for new users, so many online repositories provide ready-to-print though difficult-to-edit triangle meshes of popular designs. Recent work has proposed program synthesis techniques to automatically decompile triangle meshes to easier-to-edit Constructive Solid Geometry (CSG) designs. While these synthesized CSG designs simplify editing some models, they are flat, i.e., they do not contain loops or other forms of parameterization, which makes editing designs with repeated structure challenging. This paper presents an algorithm for lifting CSG designs to CAD programs, preserving equivalence to the original CSGs but parameterizing over repetitive structures. Our technique takes as input a flat CSG and infers parameters that capture the latent structure of the CSG using an equality-graph based rewrite mechanism combined with constraint solvers for inferring arithmetic operations. Our algorithm synthesizes CAD programs with (possibly nested) loops and arithmetic expressions including trigonometric functions. We implemented our algorithm in a tool called tool and evaluated it by running it on 16 designs collected from popular model-sharing websites and found that it reduces code size by 64 models.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset