Projects

FlatPPL

A probabilistic programming language built with physics use cases as first-class concerns. A FlatPPL program describes a DAG encoding a model: a likelihood, a posterior density, or a random sample. It deliberately does not encode analyses or algorithms, and hooks into a host language for those instead.

FlatPPL is in early development, and we are looking for collaborators. The work lives across several repositories under the FlatPPL organisation. It came out of my work on model serialisation. If you are interested in getting involved, email me or Oliver Schulz.

BAT.jl

The Bayesian Analysis Toolkit in Julia: sampling, integration, and parameter inference for physics models. Separate from the model serialisation work, and the other half of what I do day to day.

Julia packages

Tools for sampling, random numbers, and tree models. Some are public, others are still taking shape.

PureRNGs.jl

Counter-based random numbers with explicit state: each draw returns the next generator without changing the original. Philox and Threefry generators support CPU and GPU arrays, with the same interface for both. Randomness you can pass around without wondering what else changed it. Not public yet.

LinearTrees.jl

Decision trees with linear models along their paths, and gradient-boosted ensembles of those trees. For data with both smooth trends and abrupt changes. Supports regression, classification, categorical features, and weighted fitting.

Source · Documentation

EnsembleMCMC.jl

Ensemble Markov chain Monte Carlo with stretch, differential-evolution, and snooker moves. A group of interacting walkers explores a target using its log density, with no gradients required. Supports move mixtures, threaded evaluation, and sampling that can stop and resume.

Source · Documentation

ImportanceSamplers.jl

Importance sampling in Julia, with proposal distributions and log weights kept explicit. Work in progress, with CPU sampling and GPU support for a subset of proposals and transforms. Not public yet.

This site

Markdown in, website out.