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

plugin_api.v1

PluginBase, metadata, facade types

brain_deer.plugin_api

plugins_host

Discovery, allowlist, load lifecycle

brain_deer.plugins_host

sdk

Templates and helpers for authors

brain_deer.sdk

commands

Command definitions and registry

brain_deer.commands

application

App services, event bus, brain_deer_api

brain_deer.application

Core layers

Package

Role

Module

domain

Domain models and logic

brain_deer.domain

infrastructure.io

NIfTI, DICOM, meshes, volume proxy

brain_deer.infrastructure.io

infrastructure.bids

BIDS layout, mapping, session helpers

brain_deer.infrastructure.bids

warp

Warp fields, RBF, session, apply

brain_deer.warp

surface

Surfaces, tracts, projection

brain_deer.surface

rendering

VTK scene, LOD, planes, tracts

brain_deer.rendering

presentation

Qt panels, main window, Sims mode

brain_deer.presentation

views

View adapters and geometry

brain_deer.views

app

Launch, CLI, startup

brain_deer.app

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.