Skip to main content
Get started with nimbus-bci: wrap any frozen encoder, personalize with a Bayesian head, and consume BrainState outputs.
Time to complete: ~10 minutesThis guide covers installation, Personalizer (product path), classical heads, and online updates. Deeper topics link out below.

Prerequisites

Before you begin:
nimbus-bci expects embeddings or preprocessed features, not raw EEG. Plug a frozen trunk via wrap(), or extract CSP / bandpower with MNE-Python.

1

Install nimbus-bci

Install from PyPI:
For MNE-Python integration:
Verify installation:
2

Personalizer (product path)

Wrap a frozen encoder and adapt online:
Prefer factories: for_deployment (strict gating), for_research (permissive + knobs), for_features (no trunk). Full contract: Personalizer & Middleware.
3

Classical features (optional)

Already have CSP / bandpower vectors? Use a head directly or Personalizer.for_features:
4

sklearn pipeline

Use nimbus-bci with sklearn pipelines:
Heads are sklearn-compatible. Use them with Pipeline, GridSearchCV, and cross_val_score. See sklearn Integration.
5

Online updates

Update with new labeled trials via adapt / partial_fit, and optionally gate with recommend_adapt:
Trial rejection (BrainState.rejected / need_more_data) is a different gate from adapt recommendations. Presets are strict / permissive (0.6 rename). See BrainState and Migration to 0.6.

Available heads

Continue with

Personalizer & Middleware

Encoder contract, adapt helper, BrainState

Active Learning

CalibrationSession and label-efficient calibration

Streaming Inference

Chunk-by-chunk real-time processing

MNE Integration

Epochs → features or frozen encoder

sklearn Integration

Pipelines, CV, and GridSearch

API Reference

Full symbol reference

Quickstart FAQ

Not directly. Expect embeddings or preprocessed features (CSP, bandpower, ERP). See Preprocessing Requirements.
Start with NimbusLDA (default Personalizer head). Try NimbusQDA for overlapping distributions, and NimbusSTS for non-stationary sessions.
Optional extra: pip install nimbus-bci[riemann], then Personalizer.for_riemann(...), Personalizer.for_p300(...), or make_riemann_nimbus_pipeline(...). See sklearn Integration and the API reference.

Support