Skip to main content
0.6 ships paradigm factories and portable profiles so you can go from calibration epochs to a deployable Personalizer without owning a deep trunk — and warm-start day 2 without raw EEG. Requires pip install nimbus-bci[riemann] for Riemann / P300 geometry paths.

Choose a path

Portable profiles

Day-2 warm-start (profile + partial_fit with n≈40) beats frozen day-1 in the locked readout (+1.03 pp, CI [+0.11, +2.33], 0/9 no-regret). Re-attach the same encoder on from_profile / load. Also: Personalizer.save / load for the full artifact layout.

Motor imagery

Quick factory

Session recipe (geometry gateway)

Optional BALD cal shrink: calibrate_mi_bald(...)do not default it for production cal-time claims (EP-CAL-TIME NO-GO).

P300

Claim framing for BNCI2014_008: parity + delivered ITR, not accuracy superiority.

Session-bundle trust contract

MISessionBundle / P300SessionBundle joblib sidecars are pickle payloads:
  • load(..., trusted=True) is required
  • save records sidecar_sha256; load verifies before unpickle
  • Tampered sidecars are refused even with trusted=True
  • Riemann .npz path never unpickles

Embedding transforms (brief)

Full guide: Embedding transforms.

Gate calibration

Default decision gates accept 7–78% of trials across trunks. Pin the accept rate:

Next read

Encoder contract

wrap, sfreq, save/load, profiles

BrainState

strict / permissive gates

Migration to 0.6

Breaking changes from 0.5

Basic examples

Compact MI / P300 recipes