CAD-Recode: Ingegneria inversa del codice CAD da nuvole di punti
CAD-Recode: Reverse Engineering CAD Code from Point Clouds
December 18, 2024
Autori: Danila Rukhovich, Elona Dupont, Dimitrios Mallis, Kseniya Cherenkova, Anis Kacem, Djamila Aouada
cs.AI
Abstract
I modelli di progettazione assistita dal computer (CAD) sono tipicamente costruiti disegnando sequenzialmente schizzi parametrici e applicando operazioni CAD per ottenere un modello 3D. Il problema dell'ingegneria inversa CAD 3D consiste nel ricostruire le sequenze di schizzi e operazioni CAD dalle rappresentazioni 3D come nuvole di punti. In questo articolo, affrontiamo questa sfida attraverso nuovi contributi su tre livelli: rappresentazione della sequenza CAD, progettazione della rete e insieme di dati. In particolare, rappresentiamo le sequenze di schizzi estrusi CAD come codice Python. Il CAD-Recode proposto traduce una nuvola di punti in codice Python che, una volta eseguito, ricostruisce il modello CAD. Sfruttando l'esposizione dei Large Language Models (LLM) pre-addestrati al codice Python, utilizziamo un LLM relativamente piccolo come decodificatore per il CAD-Recode e lo combiniamo con un proiettore leggero per nuvole di punti. Il CAD-Recode è addestrato esclusivamente su un insieme di dati sintetici proposto di un milione di sequenze CAD diverse. Il CAD-Recode supera significativamente i metodi esistenti su tre insiemi di dati richiedendo meno punti di input. In particolare, raggiunge un valore medio di distanza di Chamfer 10 volte inferiore rispetto ai metodi all'avanguardia sui dataset DeepCAD e Fusion360. Inoltre, dimostriamo che il nostro codice Python CAD prodotto è interpretabile dai LLM pronti all'uso, consentendo la modifica CAD e la risposta a domande specifiche su CAD dalle nuvole di punti.
English
Computer-Aided Design (CAD) models are typically constructed by sequentially
drawing parametric sketches and applying CAD operations to obtain a 3D model.
The problem of 3D CAD reverse engineering consists of reconstructing the sketch
and CAD operation sequences from 3D representations such as point clouds. In
this paper, we address this challenge through novel contributions across three
levels: CAD sequence representation, network design, and dataset. In
particular, we represent CAD sketch-extrude sequences as Python code. The
proposed CAD-Recode translates a point cloud into Python code that, when
executed, reconstructs the CAD model. Taking advantage of the exposure of
pre-trained Large Language Models (LLMs) to Python code, we leverage a
relatively small LLM as a decoder for CAD-Recode and combine it with a
lightweight point cloud projector. CAD-Recode is trained solely on a proposed
synthetic dataset of one million diverse CAD sequences. CAD-Recode
significantly outperforms existing methods across three datasets while
requiring fewer input points. Notably, it achieves 10 times lower mean Chamfer
distance than state-of-the-art methods on DeepCAD and Fusion360 datasets.
Furthermore, we show that our CAD Python code output is interpretable by
off-the-shelf LLMs, enabling CAD editing and CAD-specific question answering
from point clouds.Summary
AI-Generated Summary