The course
A complete, free, open-source active-inference curriculum: 11 chapters, 39 sessions, 435 minutes of guided work end to end. Every session is written four times over, so a ten-year-old and a mathematician walk the same corridor.
active_inference/apps/workbench_web/lib/workbench_web/book/sessions.ex and active_inference/apps/workbench_web/lib/workbench_web/book/chapters.ex, read at commit c2c9c7246251— and the build fails if the parse disagrees with the modules’ own declared totals, so a shortened course cannot ship quietly. What this page cannot claim: that a Workbench is running anywhere right now (this is a static export, not a probe), or that the minute figures measure anyone’s reading — they are the course’s own declared session lengths. The curriculum is built around the textbook Active Inference(Parr, Pezzulo & Friston, 2022, MIT Press). The book is not redistributed here; the course pairs its own sessions, labs, quizzes and narration with the reader’s own copy.Four ways through every session
Every session exists in four registers. Pick one, switch at any moment — the corridor is the same corridor, only the voice changes. This is how one syllabus serves a child and a mathematician without lying to either.
- kid
- second person, grade-5 vocabulary, one concrete image
- real
- plain English, grade-8 vocabulary, one analogy
- equation
- the math in Unicode, tied to the labelled equation
- derivation
- formal voice — proof sketch or citation
The syllabus
Chapter 0 is the preface — it is part of the 11-chapter count above, not extra to it.
0. Preface
preface · 1 session · 6 min · this chapter is the preface
Why this book exists — and how to read it.
- Orientation — how to use this suite — 6 min
1. Overview
theory · 3 sessions · 26 min
Perception, action, learning — one loop, one theory.
- What Active Inference claims — 10 min
- Perception and action — one loop — 10 min
- Why one theory — and what this book covers — 6 min
2. The Low Road to Active Inference
theory · 4 sessions · 46 min
From Bayes' rule to variational free energy — the minimal machinery.
- Inference as Bayes' rule — 12 min
- Why free energy — bounding surprise — 12 min
- Variational free energy, decomposed — 10 min
- Action as sampling from a prior — 12 min
3. The High Road to Active Inference
theory · 4 sessions · 42 min
Expected Free Energy: the value of a plan, as a bill with two lines.
- Expected Free Energy — scoring a plan — 12 min
- Epistemic vs pragmatic value — 12 min
- The softmax policy — 8 min
- What makes an agent 'active' — 10 min
4. The Generative Models of Active Inference
theory · 5 sessions · 57 min
Every belief, every action, every thought — inside one generative model.
- Why generative models — the engine of AIF — 10 min
- A as emission — observation model — 8 min
- Expected Free Energy — your first look — 12 min
- A full discrete MDP — 12 min
- Build your first agent — 15 min
5. Message Passing and Neurobiology
theory · 4 sessions · 48 min
The cortex as a factor graph — and the neuromodulators as precision knobs.
- Factor graphs and message passing — 12 min
- Predictive coding in hierarchy — 12 min
- Precision, neuromodulation, and ACh/NA/DA/5-HT — 12 min
- Anatomy of belief updating — 12 min
6. A Recipe for Designing Active Inference Models
practice · 3 sessions · 32 min
Ship your first agent — what's hidden, what's seen, what costs what.
- What's hidden, what's seen, what costs what — 10 min
- Fill in A, B, C, D — 12 min
- Ship your agent — run, glass, iterate — 10 min
7. Active Inference in Discrete Time
practice · 5 sessions · 61 min
POMDPs in full colour — message passing, Dirichlet learning, hierarchy.
- Discrete time — a refresher — 8 min
- Eq. 4.13 message passing, unpacked — 14 min
- Dirichlet learning of A and B — 12 min
- Hierarchical discrete AIF — 12 min
- A worked discrete example — 15 min
8. Active Inference in Continuous Time
practice · 4 sessions · 51 min
Motion of the mode is the mode of the motion.
- Generalised coordinates — motion of the mode — 12 min
- Eq. 4.19 — the quadratic free energy — 14 min
- Action on sensors — u̇ = −∂F/∂u — 10 min
- Open sandbox — play with the forge and tower — 15 min
9. Model-Based Data Analysis
practice · 3 sessions · 36 min
Fit an Active Inference model to real data — and know when to trust it.
- Fitting AIF models to data — 12 min
- Bayesian model comparison — 12 min
- A worked case study — 12 min
10. Active Inference as a Unified Theory of Sentient Behavior
practice · 3 sessions · 30 min
Where the theory goes — and where it bends.
- One machine — perception, action, learning — 12 min
- Where the theory bends — 10 min
- Where to go next — 8 min
Run the whole Workbench yourself
The deep surfaces of this course — the visual model builder at /builder, the glass inspection views, the tutor — are a Phoenix/LiveView application. A static site cannot embed a live BEAM process, and this one does not pretend to; those surfaces are run locally instead. One command, no account:
# from repo root ./scripts/start_suite.sh # macOS / Linux / Git-Bash ./scripts/start_suite.ps1 # Windows PowerShell
And to stop it:
./scripts/stop_suite.sh ./scripts/stop_suite.ps1
Said plainly rather than discovered later: the launcher boots more than the Workbench. It also starts the optional local services behind the narrator and the tutor’s help drawer, and none of them is required — the same RUN_LOCAL.md documents, service by service, how the app degrades when each is absent. First-run setup (dependencies, content sync) lives in that file too, and is deliberately not re-typed here, where it would rot.
The source is fully public at the pinned commit this whole page was parsed from: TheORCHESTRATEActiveInferenceWorkbench @ c2c9c7246251.
And some of the course needs no BEAM at all: the learning labs are standalone simulations that run in the browser, and those run right here. (Seven of them, by RUN_LOCAL.md’s own count at c2c9c7246251 — that figure is quoted from the source, not measured by this page.)
This course is one door of the estate. The hallway lists the rest, each with the state it is honestly in and the commit its numbers were read from.