CAD-Recode: Het omgekeerd engineeren van CAD-code vanuit puntenwolken
CAD-Recode: Reverse Engineering CAD Code from Point Clouds
December 18, 2024
Auteurs: Danila Rukhovich, Elona Dupont, Dimitrios Mallis, Kseniya Cherenkova, Anis Kacem, Djamila Aouada
cs.AI
Samenvatting
Computer-Ondersteund Ontwerp (CAD) modellen worden typisch geconstrueerd door sequentieel parametrische schetsen te tekenen en CAD-operaties toe te passen om een 3D-model te verkrijgen. Het probleem van omgekeerde engineering van 3D CAD bestaat uit het reconstrueren van de schets- en CAD-operatiesequenties van 3D representaties zoals puntenwolken. In dit artikel pakken we deze uitdaging aan door middel van nieuwe bijdragen op drie niveaus: CAD-sequentie representatie, netwerkontwerp en dataset. In het bijzonder stellen we CAD schets-extrude sequenties voor als Python code. Het voorgestelde CAD-Recode vertaalt een puntenwolk naar Python code die, wanneer uitgevoerd, het CAD-model reconstrueert. Door gebruik te maken van de blootstelling van vooraf getrainde Grote Taalmodellen (LLM's) aan Python code, maken we gebruik van een relatief klein LLM als decoder voor CAD-Recode en combineren we het met een lichtgewicht puntenwolkprojector. CAD-Recode wordt uitsluitend getraind op een voorgestelde synthetische dataset van één miljoen diverse CAD-sequenties. CAD-Recode presteert aanzienlijk beter dan bestaande methoden over drie datasets en vereist minder invoerpunten. Opmerkelijk is dat het 10 keer lagere gemiddelde Chamfer-afstand bereikt dan state-of-the-art methoden op de DeepCAD en Fusion360 datasets. Bovendien tonen we aan dat onze CAD Python code uitvoer interpreteerbaar is door standaard LLM's, waardoor CAD bewerking en CAD-specifieke vraagbeantwoording vanuit puntenwolken mogelijk is.
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.