Using E-Graphs for CAD Parameter Inference release_5if7unyr35baxnpzbah6rjmr5i

by Chandrakana Nandi, Adam Anderson, Max Willsey, James R. Wilcox, Eva Darulova, Dan Grossman, Zachary Tatlock

Released as a article .

2019  

Abstract

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% on average, and exposes the underlying structure for 81% of the models.
In text/plain format

Archived Files and Locations

application/pdf  944.9 kB
file_c6notylnwfb6tkcsptww6jzrd4
arxiv.org (repository)
web.archive.org (webarchive)
Read Archived PDF
Preserved and Accessible
Type  article
Stage   submitted
Date   2019-09-26
Version   v1
Language   en ?
arXiv  1909.12252v1
Work Entity
access all versions, variants, and formats of this works (eg, pre-prints)
Catalog Record
Revision: 004c9ea6-a0f0-4d80-be3e-df7823459377
API URL: JSON