API map by layer¶
The full API reference is generated by sphinx-autoapi from
src/brain_deer (see the API Reference tree in the sidebar). This page is the
curated map: which package to open first, and how layers depend on each
other.
Dependencies point downward — presentation and plugins call into application/infrastructure, never the reverse.
app / presentation / plugins
↓
application (API, events, ports) ← commands
↓
domain · warp · surface
↓
infrastructure (io, bids)
↓
rendering (VTK) · plugin_api / sdk
Stable extension surface¶
Start here if you are writing a plugin or scripting against a running session:
Package |
Role |
Module |
|---|---|---|
|
|
|
|
Discovery, allowlist, load lifecycle |
|
|
Templates and helpers for authors |
|
|
Command definitions and registry |
|
|
App services, event bus, |
Core layers¶
Package |
Role |
Module |
|---|---|---|
|
Domain models and logic |
|
|
NIfTI, DICOM, meshes, volume proxy |
|
|
BIDS layout, mapping, session helpers |
|
|
Warp fields, RBF, session, apply |
|
|
Surfaces, tracts, projection |
|
|
VTK scene, LOD, planes, tracts |
|
|
Qt panels, main window, Sims mode |
|
|
View adapters and geometry |
|
|
Launch, CLI, startup |
Bundled plugins¶
Plugins live under brain_deer.plugins.<id> with the usual plugin.py +
widget.py split. Browse brain_deer.plugins in the API reference.
Notable packages: warpdrive, roi_studio, atlas_browser_2,
braindeer_x_blender, braindeer_ai, laminosaurus, …
(Unity bridge sources are excluded from AutoAPI.)
How to read the generated pages¶
Prefer public methods on
PluginBase/ the app facade over private_helpers in presentation or rendering.Module pages list members that have docstrings (undocumented private noise is filtered out of the default AutoAPI options).
For narrative “how this subsystem fits together”, use the Subsystems in detail guides — then jump into AutoAPI for signatures.