Skip to content

Featured Projects ¶

DEMOS develops and supports an open ecosystem of interoperable tools for statistical modeling, inference, and the long-term preservation of scientific models. The projects featured here cover complementary parts of this ecosystem, from common formats and modeling languages to independent inference engines.

Standardization, formats and languages ¶

HS³ — High Energy Physics Statistics Serialization Standard ¶

HS³ is an implementation-independent format for publishing statistical models used in high-energy physics. It represents likelihoods, datasets, functions, and their relationships in a portable, machine-readable form, enabling the same model to be inspected and evaluated with different software stacks.

Documentation Source code Paper

FlatPPL ¶

FlatPPL is a developing probabilistic programming language for expressing statistical models independently of a particular inference implementation. Its flat, explicit model representation is designed to make models easy to exchange, inspect, transform, and execute with different backends, complementing the serialization-oriented approach of HS³.

Design Source code Examples

Inference engines ¶

ROOT / RooFit ¶

RooFit is ROOT's toolkit for constructing and evaluating statistical models and performing likelihood-based inference. Its HS³ integration can import and export RooWorkspaces as portable JSON or YAML documents, providing a bridge between established RooFit analyses and other HS³-compatible software.

HS³ documentation API reference Source code

Combine ¶

Combine is the statistical analysis and combination framework widely used by the CMS experiment. Through its RooFit-based model representation and the developing HS³ support for Combine-specific model components, Combine workspaces can participate in standardized model exchange, preservation, and cross-framework validation.

Documentation Source code Paper

BAT.jl ¶

BAT.jl is a Julia toolkit for Bayesian inference, providing algorithms for posterior sampling, optimization, and numerical integration. Together with the Julia implementation of HS³, it enables portable statistical models to be evaluated in a high-performance Julia environment and compared with results from other inference engines.

Documentation Source code HS³ integration

pyHS3 ¶

pyHS3 is a pure-Python implementation of HS³ that turns serialized models into executable computational graphs. It uses tensor operations and automatic differentiation to evaluate likelihoods and perform statistical inference, offering an independent Python backend for testing interoperability and working with published HS³ models.

Documentation Source code Python package