Skip to main content

MechanicsDSL Logo

mechanicsdsl-datasets

Reference datasets for physics parameter estimation and inverse problem benchmarking.

PyPI 3 Datasets Formats MIT License Core Package


Install

pip install mechanicsdsl-datasets

Or clone for direct access to raw CSV/HDF5 files:

git clone https://github.com/MechanicsDSL/mechanicsdsl-datasets

Available Datasets

Dataset System Observations Rate Noise σ Ground Truth
pendulum_synthetic Simple pendulum 1,001 100 Hz 0.010 rad m=1.0, l=0.5, g=9.81
double_pendulum_synthetic Double pendulum (near-periodic) 501 100 Hz 0.005 rad m=1.0, l=1.0, g=9.81
coupled_oscillators_synthetic Coupled pendulums (3 beat periods) 2,001 100 Hz 0.005 rad m=1.0, l=1.0, k=0.5

All datasets include clean trajectories, Gaussian-noisy observations, HDF5 with embedded metadata, and paired estimation/validation scripts.


Quick Start (pip install)

import mechanicsdsl_datasets as mds

# Load a dataset
dataset = mds.load("pendulum_synthetic")
print(dataset.ground_truth)    # {'m': 1.0, 'l': 0.5, 'g': 9.81}
print(dataset.t.shape)         # (1001,)
print(dataset.theta_noisy[:5]) # noisy observations

# Run built-in validation
dataset.validate()             # confirms forward simulation matches clean data

Quick Start (raw files)

import pandas as pd
import json

data = pd.read_csv("datasets/pendulum_synthetic/data.csv")
meta = json.load(open("datasets/pendulum_synthetic/metadata.json"))

t         = data["t_s"].values
theta_obs = data["theta_rad_noisy"].values
truth     = meta["ground_truth"]   # {'m': 1.0, 'l': 0.5, 'g': 9.81}

Repository Structure

mechanicsdsl-datasets/
├── datasets/
│   ├── pendulum_synthetic/
│   │   ├── README.md, data.csv, data.hdf5, metadata.json
│   │   └── examples/  estimate_scipy.py, validate_forward.py
│   ├── double_pendulum_synthetic/
│   │   ├── README.md, data.csv, data.hdf5, metadata.json
│   │   └── examples/  estimate_scipy.py, validate_forward.py
│   └── coupled_oscillators_synthetic/
│       ├── README.md, data.csv, data.hdf5, metadata.json
│       └── examples/  estimate_normal_modes.py, validate_forward.py
├── docs/
│   ├── schema.md           # metadata.json schema reference
│   └── estimation_guide.md # least-squares, MCMC, FFT methods
├── scripts/
│   ├── generate_all.py     # regenerate all synthetic datasets
│   └── validate_all.py     # run all validate_forward.py scripts
└── tests/
    └── test_datasets.py    # schema, row count, NaN, noise std checks

Estimation Examples

Each dataset ships with working estimation scripts:

# Estimate pendulum length from noisy observations
cd datasets/pendulum_synthetic
python examples/estimate_scipy.py
# Estimated: l = 0.4998 m  (ground truth: 0.5000 m)

# Identify normal mode frequencies via FFT
cd datasets/coupled_oscillators_synthetic
python examples/estimate_normal_modes.py
# omega1 = 3.1321 rad/s, omega2 = 3.2636 rad/s, k = 0.500 N/m

Testing

pip install pytest h5py numpy scipy pandas
pytest tests/ -v

Contributing

See CONTRIBUTING.md. Experimental datasets with real sensor data especially welcome.

Citation

@dataset{mechanicsdsl_datasets2026,
  author = {Parsons, Noah},
  title  = {{MechanicsDSL Physics Datasets}},
  year   = {2026},
  doi    = {10.5281/zenodo.17771040},
  url    = {https://github.com/MechanicsDSL/mechanicsdsl-datasets}
}

License

MIT License — see LICENSE.

Metadata

Release files for mechanicsdsl-datasets 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mechanicsdsl-datasets 0.1.0
File Size Uploaded
mechanicsdsl_datasets-0.1.0.tar.gz 248.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mechanicsdsl-datasets 0.1.0
File Interpreter ABI Platform
mechanicsdsl_datasets-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 255.9 kB

Release files / mechanicsdsl_datasets-0.1.0.tar.gz

Download URL mechanicsdsl_datasets-0.1.0.tar.gz
Size 248.7 kB
Tags Source
SHA-256 checksum
How to use checksums
0c6a7335699a02d4ae5592cbdad2c9b24696b1af0abf5580ee14f4051bfbd19a
BLAKE2b-256 checksum
How to use checksums
1080f5fac17aeeefe6f53a6f6dfada602eccff31623cf68c66ed53ae14b9c77f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 14, 2026.

Transparency log

Release files / mechanicsdsl_datasets-0.1.0-py3-none-any.whl

Download URL mechanicsdsl_datasets-0.1.0-py3-none-any.whl
Size 7.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e9b6a5a33e26f1aa90c3019a0350bc33e7cc9145c1199ba581f5ae14a3267dd3
BLAKE2b-256 checksum
How to use checksums
a125de937c4e46388e066d4e3c36ab000539776c2565189562c78cf8b93c0518
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release 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