Latest version CI Test coverage Github MIT Go

So what is the ‘stochadex’ project?

It’s a simulation engine written in Go which can be used to sample from, and learn computational models for, a whole ‘Pokédex’ of possible real-world systems entirely in YAML.

The framework abstracts away the machinery that sampling algorithms have in common behind a single configurable interface; so a whole simulation, the analysis and inference layered on top of it can be stated as pure configuration.

This simulation engine is designed based on the simulation software fundamentals described in this collection of blog posts.

When to use it

The stochadex fits best when you want stochastic simulation, online inference and simulation-based decision-making over one composable primitive and you want a whole run to be a single config file.

The model, its wiring, the run mode, the data in/out and any inference or optimisation on top are all data: one YAML file, run by one prebuilt binary, with no Go toolchain anywhere in the loop. Maths outside the built-in catalogue can be written as expressions in the same file, so Go is only for genuinely new primitives.

Other declarative formats are narrower (SBML, Modelica) or are languages with their own compilers (Stan, GAML). However, you should probably reach for something else when:

Install

Four ways in, depending on whether you’re writing YAML, running it as a pipeline step, letting an agent write it for you, or writing Go.

As a CLI → describe a whole run in one YAML file and execute it with a prebuilt binary. A config that names no Go anywhere runs in-process, so no Go toolchain is needed. See running from a config file.

curl -L "https://github.com/umbralcalc/stochadex/releases/latest/download/stochadex-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')" -o stochadex
chmod +x stochadex

As a container → the same YAML surface, with every integration already built in (Arrow, Postgres, S3, DuckDB, accelerated BLAS) and nothing to install. See running from a config file.

docker pull ghcr.io/umbralcalc/stochadex:latest

As a Claude Code plugin → installs an authoring skill next to your agent, so you can describe a system in plain language and get a running, validated simulation. It drives the same CLI.

claude plugin marketplace add umbralcalc/stochadex
claude plugin install stochadex@stochadex

As a Go library → implement the Iteration interface to add a primitive the catalogue doesn’t have, or embed the engine in your own service. Start with the quickstart.

go get github.com/umbralcalc/stochadex

Integrations

Integration What it does Where

Load state history into a simulation and write output back over database/sql. Point it at any Postgres-wire database. read · write

Build simulation output directly as Apache Arrow for columnar interchange (Polars / pandas / Parquet). Opt-in module. read · write

Land the Arrow output in DuckDB for SQL analytics, zero-copy. Opt-in module. write

Read and write runs to Amazon S3 or any S3-compatible store (MinIO, Cloudflare R2, Ceph). Opt-in module. read · write

Run a frozen ONNX model trained upstream in Python (with sklearn, XGBoost or a small neural net). Opt-in module. run