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

PDF52December 19, 2024