GenCAD
No description available
Install / Use
/learn @ferdous-alam/GenCADREADME
<p align="center">
<h1 align="center">GenCAD</h1>
<h4 align="center">Image-conditioned Computer-Aided Design Generation with Transformer-based Contrastive Representation and Diffusion Priors</h4>
</p>
<p align="center">
<a href="https://openreview.net/pdf?id=e817c1wEZ6">
<img src="https://img.shields.io/badge/Paper-TMLR%202025-4b44ce.svg">
</a>
<a href="https://arxiv.org/abs/2409.16294">
<img src="https://img.shields.io/badge/arXiv-2409.16294-b31b1b.svg">
</a>
<a href="https://gencad.github.io/">
<img src="https://img.shields.io/badge/Project%20Page-Link-blue">
</a>
</p>
<p align="center"> <img src="assets/fig_10.png" alt="GenCAD Demo" width="700"/> </p>
<p align="center"> <img src="assets/fig_10.png" alt="GenCAD Demo" width="700"/> </p>
📁 Dataset
Download from here and place it in the data/ directory.
📦 Pretrained Models
Download from here and place them in data/ckpt/.
🔧 Setup Options
First download the checkpoints and the dataset and put them in their respective directories.
Option 1: Docker (Recommended)
-
Clone the repo:
git clone https://github.com/ferdous-alam/GenCAD cd GenCAD -
Build the Docker image:
docker build -t gencad:latest . -
Run a script, for example training CSR:
docker run -it gencad:latest conda run -n gencad_env python train_gencad.py csr -name test -gpu 0 -
For headless visualization (inference):
First, enter the container with GPU access and mount the appropriate folders:
docker run --gpus all \ -v $(pwd)/data/images:/app/data/images \ -v $(pwd)/assets:/app/assets \ -v $(pwd)/results:/app/results \ -it gencad:latest /bin/bashThen inside the container, run:
xvfb-run --server-args="-screen 0 2048x2048x24" python inference_gencad.py -image_path data/images -export_img
Option 2: Manual (conda + pip)
-
Create and activate a virtual environment with GPU support:
conda create -n gencad_env python=3.10 -y conda activate gencad_env -
Install
pythonocc-coreusing conda:conda install -c conda-forge pythonocc-core=7.9.0 -
Install the rest via pip:
pip install -r requirements.txt -
Now run training or inference:
python train_gencad.py csr -name test -gpu 0
🚀 Training
CSR Model
python train_gencad.py csr -name test -gpu 0
Optional checkpoint:
python train_gencad.py csr -name test -gpu 0 -ckpt "model/ckpt/ae_ckpt_epoch1000.pth"
CCIP Model
python train_gencad.py ccip -name test -gpu 0 -cad_ckpt "model/ckpt/ae_ckpt_epoch1000.pth"
Diffusion Prior
python train_gencad.py dp -name test -gpu 0 -cad_emb 'data/embeddings/cad_embeddings.h5' -img_emb 'data/embeddings/sketch_embeddings.h5'
🧪 Inference
For headless systems (e.g. servers):
xvfb-run python inference_gencad.py
🖼 STL Visualization
Convert STL to PNG:
python stl2img.py -src path/to/stl/files -dst path/to/save/images
📊 Evaluation
Coming soon.
