Skip to content

About

Benchmarking Surrogates for coupled ODE systems.

Topics

Resources

Contributing

Stars

6 stars

Watchers

1 watching

Forks

Repository files navigation

CODES Benchmark

codecov Static Badge Static Badge DOI All Contributors Code style: Ruff

🎉 Accepted to the ML4PS workshop @ NeurIPS 2024

Benchmark coupled ODE surrogate models on curated datasets with reproducible training, evaluation, and visualization pipelines. CODES helps you answer: Which surrogate architecture fits my data, accuracy target, and runtime budget?

What you get

  • Baseline surrogates (MultiONet, FullyConnected, LatentNeuralODE, LatentPoly) with configurable hyperparameters
  • Rich datasets spanning chemistry, astrophysics, and dynamical systems
  • Optional studies for interpolation/extrapolation, sparse data regimes, uncertainty estimation, and batch scaling
  • Automated reporting: accuracy tables, resource usage, gradient analyses, and dozens of diagnostic plots

Two-minute quickstart

uv (recommended)

git clone https://github.com/AstroAI-Lab/CODES-Benchmark.git
cd CODES-Benchmark
uv sync                       # creates .venv from pyproject/uv.lock
source .venv/bin/activate
uv run python run_training.py --config configs/train_eval/config_minimal.yaml
uv run python run_eval.py --config configs/train_eval/config_minimal.yaml

pip alternative

git clone https://github.com/AstroAI-Lab/CODES-Benchmark.git
cd CODES-Benchmark
python -m venv .venv && source .venv/bin/activate
pip install -e .
pip install -r requirements.txt
python run_training.py --config configs/train_eval/config_minimal.yaml
python run_eval.py --config configs/train_eval/config_minimal.yaml

Outputs land in trained/<training_id>, results/<training_id>, and plots/<training_id>. The configs/ folder contains ready-to-use templates (train_eval/config_minimal.yaml, config_full.yaml, etc.). Copy a file there and adjust datasets/surrogates/modalities before running the CLIs.

Documentation

The GitHub Pages site now hosts the narrative guides, configuration reference, and interactive notebooks alongside the generated API docs.

Repository map

Path Purpose
configs/ Ready-to-edit benchmark configs (train_eval/, tuning/, etc.)
datasets/ Bundled datasets + download helper (data_sources.yaml)
codes/ Python package with surrogates, training, tuning, and benchmarking utilities
run_training.py, run_eval.py, run_tuning.py CLI entry points for the main workflows
run_finetuning.py Optional: finetune trained surrogates for autoregressive rollout
docs/ Sphinx project powering the GitHub Pages site (guides, tutorials, API reference)
test/ Unit and integration tests

Versions

CODES follows semantic versioning. CHANGELOG.md lists the changes in each release, including every change that affects benchmark results. Saved models and metrics record the CODES version and commit that produced them.

Development builds for the next release use 0.3.0.dev0. When using an unreleased build, record the git commit as well as the package version.

Citation & Publications using CODES

If you use CODES in your research, please cite the archived software release you used. CODES 0.2.0 is archived on Zenodo; you can export its citation there or use GitHub's Cite this repository button, which reads CITATION.cff. Include the version used in your methods. The DOI badge above links to all archived versions.

If you use the astrochemical datasets or analysis presented in Janssen, Branca & Buck (2026), please also cite that paper, listed below.

Related works using CODES

Robin Janssen, Immanuel Sulzer, Tobias Buck
CODES: Benchmarking Coupled ODE Surrogates
NeurIPS ML4PS Workshop, 2024
Initial publication of the CODES framework.
arXiv | bib

Robin Janssen, Lorenzo Branca, Tobias Buck
Systematic selection of surrogate models for nonequilibrium chemistry
Astronomy & Astrophysics, 2026
Extensive application of CODES to four challenging astrochemical datasets, demonstrating practical model selection strategies for stiff chemical ODE systems.
arXiv | bib

Contributing

Contribution guidelines are documented in CONTRIBUTING.md.

In short: open or pick an issue, make your changes in a branch, and submit a pull request with tests/docs updates as needed.

Contributors

Robin Janssen
Robin Janssen

💻 🖋 🔣 📖 🎨 💡 🤔 🚇 🚧 🔬 👀 🔧 ⚠️ 📢 📓
Tobias Buck
Tobias Buck

🤔 🚇 📆 🔬 👀 📢 🧑‍🏫
Lorenzo Branca
Lorenzo Branca

🔣 🤔 🔬 ⚠️ 📢
Immanuel Sulzer
Immanuel Sulzer

💻 🖋 🔣 🎨 📖 🚇 📓
Gianluca Möschter
Gianluca Möschter

💻 🔣 🔬 📖 ⚠️ 📓

About

Benchmarking Surrogates for coupled ODE systems.

Topics

Resources

Contributing

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages