Navigation: README | Quick Start | Content Authoring | Architecture
Complete catalog of all courses managed by the Active Inference Institute publishing pipeline. Every course listed here has a corresponding entry in COURSE_REGISTRY.
| Category | Courses | Description |
|---|---|---|
| Core | 1 consolidated + 4 legacy individual | The primary Active Inference textbook |
| Level-Adapted | 6 | Same curriculum adapted for different audiences |
| Domain-Specific | 7 | Active Inference applied to specific fields |
| Supplementary | 1 | Skills tracks that support the courses |
| Archive | 1 | 38 playlists / ~821 YouTube video transcripts |
The primary consolidated course combining all four units of the Active Inference textbook. This is the recommended course for full rendering.
| Field | Value |
|---|---|
| Registry ID | active-inference |
| Display name | Active Inference (Core) |
| Path | course_development/active_inference/ |
| Structure | 4 units x 8 modules = 32 modules |
| Content files | module.md, questions.md, practice_quiz.md, lab.md |
| Static dirs | 04_computer_science/src/active_inference, 04_computer_science/tests, resources |
| Unit | Directory | Topic | Modules |
|---|---|---|---|
| 1 | 01_philosophy/ |
Philosophy of Active Inference | 8 |
| 2 | 02_cognitive_science/ |
Cognitive Science of Active Inference | 8 |
| 3 | 03_math/ |
Mathematics of Active Inference | 8 |
| 4 | 04_computer_science/ |
Computer Science of Active Inference | 8 |
| # | Philosophy | Cognitive Science | Mathematics | Computer Science |
|---|---|---|---|---|
| 1 | Systems | Systems | Systems | Systems |
| 2 | Agents | Agents | Agents | Agents |
| 3 | Perception | Perception | Perception | Perception |
| 4 | Cognition | Cognition | Cognition | Cognition |
| 5 | Action | Action | Action | Action |
| 6 | Learning | Learning | Learning | Learning |
| 7 | Communication | Communication | Communication | Communication |
| 8 | Planning | Planning | Planning | Planning |
Each module covers the same topic from a different disciplinary perspective, enabling cross-course comparison.
Modules link to their counterparts via README files:
| [Philosophy](../../01_philosophy/01_systems/) | Boundaries, Markov Blankets |
| [Cognitive Science](../../02_cognitive_science/01_systems/) | Neural Assemblies |
| [Mathematics](../../03_math/01_systems/) | Matrices, Probability |
| [Computer Science](../../04_computer_science/01_systems/) | Generative Models || Resource | Path | Description |
|---|---|---|
| Notation Table | resources/notation_table.md |
Symbol definitions used across all units |
| Glossary | resources/glossary.md |
Term definitions |
| References | resources/references.md |
Bibliographic citations |
# Render the full consolidated core course
uv run python scripts/generate_all_outputs.py --course active-inference --formats txt,mdThese entries allow rendering individual units separately. They are deprecated in favor of active-inference:
| ID | Unit | Path |
|---|---|---|
ai-philosophy |
Philosophy | course_development/active_inference/01_philosophy |
ai-cognitive-science |
Cognitive Science | course_development/active_inference/02_cognitive_science |
ai-math |
Mathematics | course_development/active_inference/03_math |
ai-computer-science |
Computer Science | course_development/active_inference/04_computer_science |
# Render only the philosophy unit
uv run python scripts/generate_all_outputs.py --course ai-philosophy --formats txt,mdThese courses adapt the Active Inference curriculum for different educational levels and audiences. Each uses the same 4-unit x 8-module structure with content tailored for its audience.
| ID | Display Name | Audience | Path |
|---|---|---|---|
ai-es |
Elementary School | Ages 6-10 | course_development/active_inference_es/ |
ai-family |
Family | Multi-generational, ages 5+ | course_development/active_inference_family/ |
ai-ms |
Middle School | Ages 11-13 | course_development/active_inference_ms/ |
ai-hs |
High School | Ages 14-18 | course_development/active_inference_hs/ |
ai-101 |
College Introductory | Undergraduate | course_development/active_inference_101/ |
ai-401 |
Advanced PhD Seminar | Graduate/PhD | course_development/active_inference_401/ |
All level-adapted courses share:
- Unit/module glob:
[0-9][0-9]_*at both unit and module level - Content files:
module.md,questions.md,practice_quiz.md,lab.md - Syllabus:
syllabus.mdper unit
| Level | Language | Depth | Lab Style |
|---|---|---|---|
| Elementary | Simple, concrete metaphors | Introductory concepts | Hands-on activities |
| Family | Accessible, multi-age | Shared exploration | Group activities |
| Middle School | Age-appropriate academic | Foundational | Guided experiments |
| High School | Academic with scaffolding | Intermediate | Structured labs |
| College 101 | University-level prose | Standard textbook depth | Research-oriented |
| Advanced 401 | Graduate-level academic | Full mathematical rigor | Research proposals |
# Render all level-adapted courses
for course in ai-es ai-family ai-ms ai-hs ai-101 ai-401; do
uv run python scripts/generate_all_outputs.py --course $course --formats txt,md
doneThese courses apply Active Inference to specific professional and research domains.
| ID | Display Name | Focus Area | Path |
|---|---|---|---|
ai-embodied |
Embodied Active Inference | Robotics, morphological computation, sensorimotor coupling | course_development/domains/active_inference_embodied/ |
ai-organizations |
Organizations | Management, governance, collective intelligence | course_development/domains/active_inference_organizations/ |
ai-robotics |
Robotics Applications | Practical robotics implementations | course_development/domains/active_inference_robotics/ |
ai-crochet |
Active Inference & Crochet | Fiber arts, stitch patterns, morphological computation through craft | course_development/domains/active_inference_crochet/ |
ai-inventions |
Active Inference & Inventions | Creative engineering, design thinking, innovation processes | course_development/domains/active_inference_inventions/ |
ai-metallurgy |
Active Inference & Metallurgy | Materials science, alloy design, phase transformations | course_development/domains/active_inference_metallurgy/ |
ai-comedy |
Active Inference & Comedy | Comedic structure, timing dynamics, crowd reading, improvisation | course_development/domains/active_inference_comedy/ |
Same 4-unit x 8-module pattern, adapted for domain context:
- Unit/module glob:
[0-9][0-9]_* - Content files:
module.md,questions.md,practice_quiz.md,lab.md - Syllabus:
syllabus.md
# Render a domain course
uv run python scripts/generate_all_outputs.py --course ai-embodied --formats txt,mdA supplementary skills track that teaches Generalized Notation Notation (GNN) using five verbatim exemplars from the GNN v5.0.3 exemplar corpus. This is not one of the 14 spiral courses and is not counted in the 464-module total.
| Field | Value |
|---|---|
| Registry ID | gnn |
| Display name | GNN Syntax Track |
| Path | course_development/gnn/ |
| Structure | 1 lesson module (01_gnn_syntax/) + 5 exemplar models |
| Module glob | [0-9][0-9]_* |
| Content files | module.md, questions.md, practice_quiz.md, lab.md |
| Syllabus | README.md (track overview) |
| Source pin | GNN v5.0.3, commit 8f293d9ba810e6eda5c09842d9c7ed9ffa5f92c1 |
The lesson walks through the Static Perception Model section by section, computes its perception update, and runs the GNN pipeline over the shipped exemplars. See course_development/gnn/README.md for the level mapping and provenance.
# Render the track
uv run python scripts/generate_all_outputs.py --course gnn --formats txt,mdAn archive of transcripts from the Active Inference Institute YouTube channel (38 playlists, ~821 videos per playlist metadata).
| Field | Value |
|---|---|
| Registry ID | youtube |
| Display name | YouTube Transcripts |
| Path | course_development/youtube/ |
| Unit glob | * (playlist directories) |
| Module glob | [0-9][0-9]_* (video directories within playlists) |
| Content files | module.md only |
The YouTube archive has a dedicated multi-stage pipeline:
- Enumerate playlists from the channel
- Scaffold course directory structures per playlist
- Transcribe videos (auto-captions, then Whisper fallback)
- Render through the standard batch processing pipeline
# List playlists
uv run python scripts/render_youtube_courses.py --list-playlists
# Scaffold and render a single playlist
uv run python scripts/render_youtube_courses.py --course active-inference-textbook-group --formats txt,md
# Full archive render
uv run python scripts/render_youtube_courses.py --formats txt,mdSee YOUTUBE.md for the full YouTube processing guide.
Every Active Inference module (across all course types) contains:
| File | Purpose | Rendering Category | Output Formats |
|---|---|---|---|
module.md |
Main lecture content | lecture-content/ |
PDF, HTML, DOCX, TXT, MD, MP3 |
questions.md |
20 study questions | study-guides/ |
PDF, HTML, DOCX, TXT, MD, MP3 |
practice_quiz.md |
7 MC + 3 FR quiz | study-guides/ |
PDF, HTML, DOCX, TXT, MD, MP3 |
lab.md |
Lab protocol/activity | lab-protocols/ |
PDF, HTML, DOCX, TXT, MD, MP3 |
dashboard.html |
Interactive dashboard | (copied as-is) | HTML |
README.md |
Module overview & navigation | (not rendered) | -- |
AGENTS.md |
Agent/contributor guidelines | (not rendered) | -- |
Each dashboard.html is a standalone interactive page with:
- Concept cards with expandable detail sections
- Self-assessment quiz with scoring
- Study checklist with progress tracking
- Module navigation links
- Dark theme UI
All courses are registered in COURSE_REGISTRY inside software/src/batch_processing/config.py. Key fields:
| Field | Type | Description |
|---|---|---|
rel_path |
str |
Path from repo root to course directory |
display_name |
str |
Human-readable name for logs/CLI |
module_glob |
str |
Glob pattern for module directories |
unit_glob |
str |
Glob pattern for unit directories (multi-level courses) |
content_files |
list[str] |
Files to render per module |
syllabus_location |
str |
Where to find the syllabus |
static_dirs |
list[str] |
Additional directories to copy during publish |
- Add an entry to
COURSE_REGISTRYinsoftware/src/batch_processing/config.py - Create the directory structure under
course_development/ - Add the course to
publish.tomlat the repo root - Run:
uv run python scripts/generate_all_outputs.py --course YOUR_ID --dry-run
# List all registered course IDs
uv run python -c "from src.batch_processing.config import COURSE_REGISTRY; print('\n'.join(COURSE_REGISTRY.keys()))"
# Count modules for a course
uv run python -c "
from pathlib import Path
from src.batch_processing.utils import find_modules_for_course
from src.batch_processing.config import COURSE_REGISTRY
reg = COURSE_REGISTRY['active-inference']
modules = find_modules_for_course(Path(reg['rel_path']), 'active-inference')
print(f'{len(modules)} modules')
"
# Dry-run preview for all enabled courses
python publish.py --dry-runLast Updated: 2026-08-02