Learning From Design Procedure To Generate CAD Programs for Data Augmentation
Organizations: Toyota Research Institute Pittsburgh, PA 15213
Abstract
Large Language Models (LLMs) have demonstrated impressive capabilities in a wide range of code generation tasks. However, generating code for certain domains remains challenging. One such domain is Computer-Aided Design (CAD) program, where the goal is to produce scripted parametric models that define object geometry for precise design and manufacturing applications. A key challenge in LLM-based CAD program generation is the limited geometric complexity of generated shapes compared to those found in real-world industrial designs. This shortfall is in part due to the lack of diversity in the available CAD program training data. To address this, we propose a novel data augmentation paradigm that prompts an LLM to generate CAD programs conditioned on a reference surface program and a modeling procedure - an idea inspired by practices in industrial design. By varying the reference surface using a collection of organic shapes, our method enriches the geometric distribution of generated CAD models. In particular, it introduces edges and faces defined by spline-based curvature, which are typically missing or underrepresented in existing open-source CAD program datasets. Experiments show that our method produces CAD samples with significantly greater geometric diversity and a higher resemblance to industry-grade CAD designs in terms of the proportion of organic shape primitives. This enhancement makes our CAD data augmentation approach a useful tool for training LLMs and other deep learning models in CAD generation.
Figures & tables
| Bracket Data | Industry | DeepCAD-b | GenCAD* | CAD-MLLM* | Ours |
|---|---|---|---|---|---|
| avg. #lines (STEP) | 10099 | 1783 | 991 | 2402 | 4494 |
| avg. #faces | 82.91 | 21.48 | 12.55 | 28.65 | 26.57 |
| avg. #curves | 259.4 | 50.30 | 27.86 | 69.26 | 67.57 |
| w/ B-Spline faces | 100% | 0% | 0% | 0% | 77% |
| w/ B-Spline curves | 100% | 1% | 1% | 1% | 89% |
| B-Spline Ratio | 0.5352 | 0.0004 | 0.0009 | 0.0008 | 0.2217 |
| Approach | Ours(-RT) | Ours(-R) | Ours |
|---|---|---|---|
| avg. #lines (STEP) | 1225 | 2992 | 4494 |
| avg. #faces | 14.86 | 34.56 | 26.57 |
| avg. #curves | 35.17 | 75.89 | 67.57 |
| w/ B-Spline faces | 2% | 18% | 77% |
| w/ B-Spline curves | 6% | 27% | 89% |
| B-Spline Ratio | 0.0085 | 0.0478 | 0.2217 |
| Approach | Ours(-RT) | Ours(-R) | Ours |
| require > 5 iterations | 12% | 18% | 21% |
Synthetic Data Augmentation
Synthetic data augmentation creates or modifies training examples to improve learning when real data are scarce, imbalanced, costly, or sensitive.
See all 453 papers