Skip to content

BaumSebastian/DDACS

Repository files navigation

Deep Drawing and Cutting Simulations (DDACS) Dataset

License: MIT Python 3.10+ Documentation DaRUS Repository DOI Paper

A Python package for accessing and processing the Deep Drawing and Cutting Simulations (DDACS) Dataset. It includes a CLI for downloading datasets from DaRUS and a Python API for accessing simulation data with metadata.

Read the full documentation

Thickness Distribution Example

Simulation with the tool geometries and various additional information like sheet metal thinning, stress and strain.

Table of Contents

Installation

pip install ddacs

For PyTorch integration, install PyTorch first following the official instructions for your CUDA version.

Download Dataset

Download the dataset using the ddacs CLI:

# Download full dataset (requires ~1TB storage)
ddacs download

# Download small test set for quick demos (requires ~50GB storage)
ddacs download --small

# Show dataset info and available versions
ddacs info

Important: The full dataset is approximately 1TB in size. Ensure you have sufficient storage space. The download may take several hours depending on your internet connection.

Options:

Flag Description
VERSION Dataset version to download (default: 2.0)
--small Download small test set for demos
--out ./path Custom output directory (default: ./data)
--no-extract Skip extraction of zip files
--keep-zip Keep zip files after extraction
-y, --yes Skip confirmation prompt

Basic Usage

from ddacs import iter_ddacs, count_available_simulations
import h5py
import numpy as np

# Path to DDACS dataset
data_dir = "./data"

# Count available simulations
count = count_available_simulations(data_dir)
print(f"Available simulations: {count}")

# Iterate over samples (skip_missing=True for partial downloads)
for sim_id, metadata, h5_path in iter_ddacs(data_dir, skip_missing=True):
    with h5py.File(h5_path, "r") as f:
        displacement = np.array(f["OP10"]["blank"]["node_displacement"])
        print(f"ID={sim_id}, shape={displacement.shape}")
    break

PyTorch Integration

from ddacs.pytorch import DDACSDataset
from torch.utils.data import DataLoader

# Path to DDACS dataset
data_dir = "./data"

dataset = DDACSDataset(data_dir)
dataloader = DataLoader(dataset, batch_size=4, shuffle=True)

for sim_ids, metadata_batch, h5_paths in dataloader:
    # Your training code here
    break

For more examples, see the full documentation and notebooks/dataset_demo.ipynb.

Citation

If you use this dataset or code in your research, please cite both the dataset and the paper:

@dataset{baum2025ddacs,
  title={Deep Drawing and Cutting Simulations Dataset},
  subtitle={FEM Simulations of a deep drawn and cut dual phase steel part},
  author={Baum, Sebastian and Heinzelmann, Pascal},
  year={2025},
  version={2.0},
  publisher={DaRUS},
  doi={10.18419/DARUS-4801},
  license={CC BY 4.0},
  url={https://doi.org/10.18419/DARUS-4801}
}

@article{heinzelmann2025benchmark,
  title={A Comprehensive Benchmark Dataset for Sheet Metal Forming: Advancing Machine Learning and Surrogate Modelling in Process Simulations},
  author={Heinzelmann, Pascal and Baum, Sebastian and Riedmüller, Kim Rouven and Liewald, Mathias and Weyrich, Michael},
  journal={MATEC Web of Conferences},
  volume={408},
  year={2025},
  pages={01090},
  doi={10.1051/matecconf/202540801090},
  url={https://www.matec-conferences.org/articles/matecconf/abs/2025/02/matecconf_iddrg2025_01090/matecconf_iddrg2025_01090.html}
}

Development

git clone https://github.com/BaumSebastian/DDACS.git
cd DDACS
pip install -e ".[dev]"
pre-commit install  # Setup code formatting hooks
pytest              # Run tests