Skip to main content
Use these recipes after installation and preprocessing are complete. Python examples lead with PersonalizerBrainState; classical heads remain available for research CV and Julia.

Personalizer (frozen encoder)

Wrap any encode(X) → Z, personalize online, consume BrainState.
Already have CSP / bandpower features? Use Personalizer(encoder=None, head="lda"|...) — same app surface. Full contract: Personalizer.

Motor imagery

Motor imagery workflows usually use CSP or bandpower features from 8–30 Hz EEG — or embeddings from a frozen trunk.
Default head is LDA (Personalizer(head="lda")). Try head="qda" when class covariances differ substantially.

P300 detection

P300 examples usually use ERP amplitude features from a post-stimulus time window.

Streaming

Streaming uses short feature chunks and aggregates chunk predictions into a trial decision. Bridge to BrainState for apps.
For frozen-encoder product apps, prefer Personalizer (batch predictBrainState) over a raw streaming session. API detail: Python Streaming Inference, Streaming inference configuration.

Calibration and normalization

Estimate normalization parameters from calibration or training data only, then reuse them for test and deployment data.
See Feature Normalization for cross-session details.

Diagnostics

Run diagnostics when confidence is unexpectedly low or accuracy drops across sessions.
For Python trial-level quality checks, see the Python SDK API Reference and BrainState gates.

Choosing a starting point

Full comparison: Model Specification.

Next read

Personalizer

Encoder contract and BrainState

Python SDK Quickstart

First Python workflow from install to inference

Advanced Applications

Higher-level deployment patterns

Error Handling

Production safeguards and failure modes