Skip to main content

Deep Drawing and Cutting Simulations (DDACS) Dataset

Code License: MIT Dataset License: CC BY 4.0 Python 3.10+ Documentation DaRUS Repository DOI Paper

Simulation overview

Simulation with the tool geometries showing sheet metal thinning, stress, and strain.

A large-scale dataset and benchmark for training AI models that replace computationally expensive FEA simulations in industrial sheet metal manufacturing. Each simulation models a two-stage stamping process (deep drawing in OP10 and cutting with elastic recovery in OP20) for a cup geometry parameterised by 8 input dimensions. Train ML surrogates that predict mesh deformation, stress, strain, and springback in seconds instead of the minutes-to-hours a CAE solver would take.

Simulations 32,466
Total size ~640 GB (HDF5, lossless)
Process steps per sim 2 (OP10 deep drawing, OP20 cutting)
Input parameters 8 (4 geometric + 4 process)
Train / val / test 25,973 / 3,246 / 3,247 (predefined)
Mesh-node states ~2.1 B across all sims, timesteps, components

Documentation · Dataset DOI · Paper

Try the 22 MB teaser (one full simulation, manifest, parameter table, runnable tutorials): Kaggle · Hugging Face · Zenodo

A Croissant-native Python package for accessing the DDACS Dataset ships with this repo: one CLI for the download, one Python module for access, and an optional PyTorch IterableDataset for training.

Table of Contents

What's new in v3

v3 is a major release because the dataset itself now ships with a Croissant 1.1 manifest (metadata.json). The manifest is the single source of truth for the dataset schema: every HDF5 field, every CSV column, the SIM-KAx simulation provenance, and a set of task-specific views are declared once and consumed by both the package and external Croissant tools.

The Python surface was rewritten around it:

  • ddacs.load(data_dir) parses the manifest and exposes published RecordSets (process-parameters, field-map, simulation-provenance, plus task views such as springback-minimal, springback-prediction, forming-snapshot, cutting-view).
  • ddacs.open_h5(sim_id, data_dir) reads any simulation by id without needing the zip extracted.
  • ddacs.add_view(ds, name, fields) appends a custom view to the in-memory dataset.
  • ddacs.streaming.iter_view / export_to_numpy / load_export iterate any view without PyTorch and materialise it as .npy memmap shards; ddacs.plot_mesh / plot_point_cloud / plot_vectors / plot_2d_projection plot the results.
  • DDACSDataset(view=...) streams records of any view (published or custom) with worker-shard / DDP-safe partitioning, manifest-driven filtering, and graceful skip on partial downloads.
  • The CLI default flipped to keep zips intact (mlcroissant reads HDF5 members in place); --extract and --remove-zip opt in to the loose-HDF5 layout.

The v2 helpers (iter_ddacs, count_available_simulations, the data extraction utilities) are removed. See the tutorials for the migration path.

Installation

pip install ddacs

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 'ddacs[torch]'

Download the dataset

# Small sample bundle (22 MB): manifest, CSV, and one simulation.
ddacs download --small -y

# Full release.
ddacs download

# Show available versions on DaRUS.
ddacs info

Files land in ./data by default. The same path is the default for ddacs.load(data_dir=...) and DDACSDataset(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 for the matching iteration pattern.

Basic usage

ddacs.load parses the Croissant manifest; ddacs.open_h5 opens a single simulation in memory and returns an h5py.File.

import ddacs

# Load the dataset manifest. Lists every published RecordSet.
ds = ddacs.load(data_dir="./data")
print([rs.id for rs in ds.metadata.record_sets])

# Open one simulation. OP10 carries the blank and the three tools.
with ddacs.open_h5(258864, data_dir="./data") as f:
    blank_thickness = f["OP10/blank/element_shell_thickness"][-1]
    print("final-timestep thickness:", blank_thickness.shape)

For custom RecordSets and slicing the field map, see Build your own view. For mesh / point-cloud / vector plotting, see Visualization.

PyTorch integration

DDACSDataset is a torch.utils.data.IterableDataset over a Croissant view. It builds a sim_id -> local zip index at construction time and silently skips simulations whose zip is missing, so partial downloads stream cleanly.

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

ds = DDACSDataset(view="springback-minimal", data_dir="./data")
loader = DataLoader(ds, batch_size=16, num_workers=0)

for batch in loader:
    forming    = batch["op10_blank_node_displacement_forming"]
    springback = batch["op10_blank_node_displacement_springback"]
    # ... 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/ that reproduces every page. See notebooks/README.md for prerequisites and run instructions.

Version compatibility

The ddacs 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
ddacs 3.x v3.0 and any future v3.x updates (current)
ddacs 2.x v1.0 and v2.0

Pin the package major to the dataset major you target, for example pip install 'ddacs~=3.0' to stay on the v3 line.

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={3.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 Riedmueller, 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,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 ddacs software is licensed under the MIT License, see LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ddacs-3.2.3.tar.gz (50.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ddacs-3.2.3-py3-none-any.whl (40.3 kB view details)

Uploaded Python 3

File details

Details for the file ddacs-3.2.3.tar.gz.

File metadata

  • Download URL: ddacs-3.2.3.tar.gz
  • Upload date:
  • Size: 50.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ddacs-3.2.3.tar.gz
Algorithm Hash digest
SHA256 c53c2a91263973b7e8a4eef0b21e549ac14820f40d461baf20b605e72b5ac243
MD5 64bb70f72983804149b46e6b4f06243f
BLAKE2b-256 081904774eca5ba945977462450cd5b976b92a5115c6eca3f950c696579a0443

See more details on using hashes here.

Provenance

The following attestation bundles were made for ddacs-3.2.3.tar.gz:

Publisher: publish.yml on BaumSebastian/DDACS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ddacs-3.2.3-py3-none-any.whl.

File metadata

  • Download URL: ddacs-3.2.3-py3-none-any.whl
  • Upload date:
  • Size: 40.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ddacs-3.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 02d068aa1463c9d86b28b6cea39d249e375ffde51c0cf527fe6f3aaa19cf5f77
MD5 42e9b295aafd1ef0c95d295a3b9a7fe5
BLAKE2b-256 8a36b56826ccf1843a041e37c38740c53176662fc96c08be26295001a326e907

See more details on using hashes here.

Provenance

The following attestation bundles were made for ddacs-3.2.3-py3-none-any.whl:

Publisher: publish.yml on BaumSebastian/DDACS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

3.2.3 This release

2 files

3.2.2

2 files

3.2.1

2 files

3.2.0

2 files

3.1.5

2 files

3.1.3

2 files

3.1.0

2 files

3.0.0

2 files

2.1.1

2 files

2.1.0

2 files

2.0.2

2 files

2.0.1

2 files

2.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page