Differentiable 3D CAD Programs for Bidirectional Editing

by   Dan Cascaval, et al.

Modern CAD tools represent 3D designs not only as geometry, but also as a program composed of geometric operations, each of which depends on a set of parameters. Program representations enable meaningful and controlled shape variations via parameter changes. However, achieving desired modifications solely through parameter editing is challenging when CAD models have not been explicitly authored to expose select degrees of freedom in advance. We introduce a novel bidirectional editing system for 3D CAD programs. In addition to editing the CAD program, users can directly manipulate 3D geometry and our system infers parameter updates to keep both representations in sync. We formulate inverse edits as a set of constrained optimization objectives, returning plausible updates to program parameters that both match user intent and maintain program validity. Our approach implements an automatically differentiable domain-specific language for CAD programs, providing derivatives for this optimization to be performed quickly on any expressed program. Our system enables rapid, interactive exploration of a constrained 3D design space by allowing users to manipulate the program and geometry interchangeably during design iteration. While our approach is not designed to optimize across changes in geometric topology, we show it is expressive and performant enough for users to produce a diverse set of design variants, even when the CAD program contains a large number of parameters.


page 1

page 2

page 3

page 4


Zero-shot CAD Program Re-Parameterization for Interactive Manipulation

Parametric CAD models encode entire families of shapes that should, in p...

Towards computing complete parameter ranges in parametric modeling

In parametric design, the geometric model is edited by changing relevant...

Using E-Graphs for CAD Parameter Inference

Computational fabrication is increasingly popular among end-users and ma...

ShapeMOD: Macro Operation Discovery for 3D Shape Programs

A popular way to create detailed yet easily controllable 3D shapes is vi...

Fabrication-Aware Reverse Engineering for Carpentry

We propose a novel method to generate fabrication blueprints from images...

Synthesizing Structured CAD Models with Equality Saturation and Inverse Transformations

Recent program synthesis techniques help users customize CAD models(e.g....

GarmentCode: Programming Parametric Sewing Patterns

Garment modeling is an essential task of the global apparel industry and...

Please sign up or login with your details

Forgot password? Click here to reset