Real Deep Drawing and Cutting (RDDAC) Dataset
Measured point clouds of one experiment after deep drawing (OP10, left) and cutting (OP20, right), colored by the deviation from the matching DDACS simulation.
A large-scale experimental dataset of 9,000 physical deep-drawing and cutting experiments — the real-world counterpart to the DDACS FEM simulations. Each experiment forms a modified quadratic cup from DP600 dual-phase steel (deep drawing in OP10, cutting in OP20) and records press force signals, sheet-thickness and oil-film traverses, and high-resolution 3D laser scans of the part after each operation. Use it to quantify the simulation-to-reality gap, train models on real process data, or validate DDACS-trained surrogates against physical measurements.
| Experiments | 9,000 |
| Total size | ~87 GB (HDF5, lossless) |
| Process steps per experiment | 2 (OP10 deep drawing, OP20 cutting) |
| Parameter space | 2 geometries x 3 blankholder forces x 3 oil types (18 categories) |
| Repetitions | up to 500 per category |
| Train / val / test | 7,200 / 900 / 900 (predefined, seed 42) |
| Matching simulations | DDACS rddac.zip (~9 GB), fetched by rddac download |
Documentation · Dataset DOI · Paper
Try the ~174 MB teaser (18 experiments, manifest, parameter table, runnable tutorials): Kaggle · Hugging Face · Zenodo
A Croissant-native Python package for accessing the RDDAC Dataset ships with this repo: one CLI for the download and the reference preprocessing, one Python module for access, torch-free streaming and numpy export, plotting helpers, and an optional PyTorch IterableDataset for training. Its public surface mirrors the ddacs package one to one, so code written for the simulations ports by swapping the import.
Table of Contents
- What's new in 1.1
- Installation
- Download the dataset
- Preprocess the dataset
- Basic usage
- PyTorch integration
- Tutorials
- Version compatibility
- Citation
- Development
- License
What's new in 1.1
1.1 adds the reference preprocessing. The published files stay raw by design; rddac preprocess derives an ML-ready layer next to them:
force,sheet,oil: fixed-shape, cleaned tables (forming-window force curves, error-masked thickness and dropout-free oil-film profiles).pointcloud: calibrated scans, cleaned of fins by a random-forest classifier, aligned to the matching DDACS simulation (needs the[preprocessing]extra and the simulations).- Every parameter is adjustable via TOML and stamped into the output; the same Croissant views stream both layers.
See Preprocessing for what each stage does and the changelog for the details.
Installation
pip install rddac
The PyTorch adapter is an optional extra. For hardware-specific PyTorch builds (CUDA, ROCm, MPS), install PyTorch first from pytorch.org, then install the extra:
pip install 'rddac[torch]'
The pointcloud stage of rddac preprocess needs scipy and scikit-learn:
pip install 'rddac[preprocessing]'
Download the dataset
# Small sample bundle (~174 MB): manifest, CSV, and one experiment per category.
rddac download --small -y
# Full release (~87 GB), including the matching DDACS simulations (~9 GB).
rddac download
# Real measurements only (skip the simulations).
rddac download --no-sim
# Show available versions on DaRUS.
rddac info
Files land in ./data by default. The same path is the default for rddac.load(data_dir=...), rddac preprocess --data-dir and RDDACDataset(data_dir=...), so no further configuration is needed.
All options (--files, --out, --extract, --remove-zip, --quiet, the global --token) are documented in the CLI reference.
By default zip files are kept on disk and are not extracted; mlcroissant reads HDF5 members in place. Pass --extract --remove-zip to switch to a loose-HDF5 layout instead; see the Loose HDF5 recipe.
Preprocess the dataset
rddac preprocess # all modalities (pointcloud needs the simulations)
rddac preprocess oil force sheet # a subset, e.g. on the small bundle
Output lands in ./data/processed, raw files are never modified, and re-runs only fill in what is missing. All options (--ids, --split, --workers, --overwrite, --config) are documented in the CLI reference; what each stage does and how to replace one with your own algorithm is in the preprocessing documentation.
Basic usage
rddac.load parses the Croissant manifest; rddac.open_h5 opens a single experiment in memory and returns an h5py.File.
import rddac
# Load the dataset manifest. Lists every published RecordSet.
ds = rddac.load(data_dir="./data")
print([rs.id for rs in ds.metadata.record_sets])
# Open one experiment by id.
with rddac.open_h5(0, data_dir="./data") as f:
force = f["force/data"][:] # (n, 8): time, load cells, temp, position, total force
sheet = f["sheet_thickness/data"][:] # (n, 2): sensor position, thickness
z10 = f["pointcloud/op10/z"][:] # (6400000,) flat scan buffer
The same views stream the processed layer: pass data_dir="./data/processed" and source="./data/metadata.json" to rddac.streaming.iter_view. For custom RecordSets see Build your own view; for scans, point clouds, force curves and traverses see Visualization.
PyTorch integration
RDDACDataset is a torch.utils.data.IterableDataset over a Croissant view. It builds an id -> local zip index at construction time and silently skips experiments whose zip is missing, so partial downloads stream fine. Raw tables vary in length per experiment, so batch the processed layer, where every record has a fixed shape:
from rddac.pytorch import RDDACDataset
from torch.utils.data import DataLoader
ds = RDDACDataset(view="force-curve", data_dir="./data/processed", source="./data/metadata.json")
loader = DataLoader(ds, batch_size=16, num_workers=0)
for batch in loader:
force = batch["force_data"] # (16, 600, 8) after `rddac preprocess force`
# ... training step ...
break
For filtering, train / val / test splits, shuffling, and the partial-download story, see PyTorch training.
Tutorials
The tutorials walk through the package end to end. Each one is published on Read the Docs as a tutorial page and shipped as an executable notebook under notebooks/. See notebooks/README.md for prerequisites and run instructions.
Version compatibility
The rddac package major version tracks the DaRUS dataset major version. The pairing is enforced by the Croissant manifest bundled with each release: a mismatched package version will fail to resolve the field map.
| Package | DaRUS dataset |
|---|---|
rddac 1.x |
v1.0 and any future v1.x updates (current) |
Pin the package major to the dataset major you target, for example pip install 'rddac~=1.0' to stay on the v1 line.
Citation
@dataset{baum2026rddac,
title={Real Deep Drawing and Cutting Dataset},
author={Baum, Sebastian and Heinzelmann, Pascal},
year={2026},
publisher={DaRUS},
doi={10.18419/DARUS-5589}
}
@article{baum2026deviation,
title={Statistical Analysis of Simulation to Reality Deviation in Deep Drawing with a Benchmark Dataset},
author={Baum, Sebastian and Heinzelmann, Pascal and Clau{\ss}, P. and others},
journal={Transactions of the Indian Institute of Metals},
volume={79},
pages={176},
year={2026},
doi={10.1007/s12666-026-03870-5}
}
Development
git clone https://github.com/BaumSebastian/RDDAC.git
cd RDDAC
pip install -e ".[dev,torch]"
pre-commit install # set up code formatting hooks
pytest # run the full test suite (PyTorch tests skip without the torch extra)
License
The dataset on DaRUS is licensed under CC BY 4.0. The rddac software is licensed under the MIT License, see LICENSE.
Data files bundled with the package are not MIT: the fin labels (rddac/_preprocess/labels/, human annotations of the dataset), the scanner calibration (calibration.json) and the simulation parameter table (sim_params.csv) are data derived from RDDAC/DDACS and are licensed CC BY 4.0 like the dataset (see rddac/_preprocess/labels/LICENSE).
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rddac-1.1.0.tar.gz.
File metadata
- Download URL: rddac-1.1.0.tar.gz
- Upload date:
- Size: 534.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eecbd35cb58a31fc7ca9dc29e8893c014bff5f4799144ee81976418b70d0e28f
|
|
| MD5 |
7c3bc6b33d24668d53493a0d4c70a83c
|
|
| BLAKE2b-256 |
e3aa4590e42ee69f3751e70fbfaeae8dfb283f31d22e5bc0728e3e154de3cb9c
|
Provenance
The following attestation bundles were made for rddac-1.1.0.tar.gz:
Publisher:
publish.yml on BaumSebastian/RDDAC
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rddac-1.1.0.tar.gz -
Subject digest:
eecbd35cb58a31fc7ca9dc29e8893c014bff5f4799144ee81976418b70d0e28f - Sigstore transparency entry: 2628791175
- Sigstore integration time:
-
Permalink:
BaumSebastian/RDDAC@9c745137a7fb5707570626c44fbbe897984effd7 -
Branch / Tag:
refs/tags/1.1.0 - Owner: https://github.com/BaumSebastian
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9c745137a7fb5707570626c44fbbe897984effd7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file rddac-1.1.0-py3-none-any.whl.
File metadata
- Download URL: rddac-1.1.0-py3-none-any.whl
- Upload date:
- Size: 557.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
634711c5a85f64f0965d543f92d0ac9e7e1d1db19b5a77a8e898d17b3cc3e76a
|
|
| MD5 |
24ce57cf0329e3522d11782493808aa4
|
|
| BLAKE2b-256 |
221d0cca92ca38ec31e284ea2e79aff9d698bf0f025f5bacc9a4dd7954f34315
|
Provenance
The following attestation bundles were made for rddac-1.1.0-py3-none-any.whl:
Publisher:
publish.yml on BaumSebastian/RDDAC
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rddac-1.1.0-py3-none-any.whl -
Subject digest:
634711c5a85f64f0965d543f92d0ac9e7e1d1db19b5a77a8e898d17b3cc3e76a - Sigstore transparency entry: 2628791184
- Sigstore integration time:
-
Permalink:
BaumSebastian/RDDAC@9c745137a7fb5707570626c44fbbe897984effd7 -
Branch / Tag:
refs/tags/1.1.0 - Owner: https://github.com/BaumSebastian
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9c745137a7fb5707570626c44fbbe897984effd7 -
Trigger Event:
push
-
Statement type: