Skip to main content

Reference physics datasets for MechanicsDSL parameter estimation and inverse problem benchmarking

Project description

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.

Project details


Download files

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

Source Distribution

mechanicsdsl_datasets-0.1.0.tar.gz (248.7 kB view details)

Uploaded Source

Built Distribution

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

mechanicsdsl_datasets-0.1.0-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file mechanicsdsl_datasets-0.1.0.tar.gz.

File metadata

  • Download URL: mechanicsdsl_datasets-0.1.0.tar.gz
  • Upload date:
  • Size: 248.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mechanicsdsl_datasets-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0c6a7335699a02d4ae5592cbdad2c9b24696b1af0abf5580ee14f4051bfbd19a
MD5 5ed2b4b3f312756cd3b5cd0d5e72d878
BLAKE2b-256 1080f5fac17aeeefe6f53a6f6dfada602eccff31623cf68c66ed53ae14b9c77f

See more details on using hashes here.

Provenance

The following attestation bundles were made for mechanicsdsl_datasets-0.1.0.tar.gz:

Publisher: publish-pypi.yml on MechanicsDSL/mechanicsdsl-datasets

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

File details

Details for the file mechanicsdsl_datasets-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mechanicsdsl_datasets-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e9b6a5a33e26f1aa90c3019a0350bc33e7cc9145c1199ba581f5ae14a3267dd3
MD5 c25aa11d2d86aff158c9a8666297182b
BLAKE2b-256 a125de937c4e46388e066d4e3c36ab000539776c2565189562c78cf8b93c0518

See more details on using hashes here.

Provenance

The following attestation bundles were made for mechanicsdsl_datasets-0.1.0-py3-none-any.whl:

Publisher: publish-pypi.yml on MechanicsDSL/mechanicsdsl-datasets

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page