Theory vault
Everything these pages leave out — the mathematics, the papers, the design decisions, and an honest record of what does not work yet — lives in the project's Obsidian vault. It is rendered as a website and deployed beside this one:
What is in it
The vault is a map of content with about a hundred notes. A few entry points:
| start at | for |
|---|---|
| Map of Content | the whole map, in reading order |
| Lux as a Parametric Lens | why a factor is not a layer, in terms of code you already use |
| The Linear Gaussian Chain | the localisation tutorial's graph, worked through properly |
| Related Julia Projects | where this sits next to Turing, RxInfer, ModelingToolkit and Catlab — and when to use those instead |
| Motivating Examples | six problem domains with the same shape |
Each package here also has implementation notes sitting beside its source — messages.md beside messages.jl, and so on — recording the difficulties each file ran into and what it does not do. Those are in the vault too, under Implementation.
Two kinds of documentation, on purpose
These pages describe the code: what each package does and how to call it. The vault describes why, and it is deliberately not summarised here — a docstring is the wrong place for a derivation, and a derivation is the wrong place for a signature.
When a docstring on this site cites something in double brackets, like [[Bethe Free Energy]], that is a link into the vault.
Reading it in Obsidian
The vault is the repository itself. Clone it, open the root folder in Obsidian, and start from vault/Start Here.md. The Inline TikZ community plugin renders the diagrams (the website compiles these to SVG itself).
The general category theory the vault builds on (parametric lenses, Markov categories, Bayesian lenses, statistical games) is in the CT-ML wiki, and each vault note links to the pages it uses.