Skip to main content
Production-ready Bayesian BCI inference with Bayesian LDA, Bayesian GMM, and Bayesian Softmax models Nimbus provides fast, probabilistic inference for Brain-Computer Interface applications in Python and Julia. The SDKs deliver sub-20ms inference latency with full uncertainty quantification through Bayesian LDA, Bayesian GMM, and Bayesian Softmax/MPR implementations. Choose your SDK:
  • 🐍 Python SDK (nimbus-bci): sklearn-compatible classifiers with MNE-Python integration
  • Julia SDK (NimbusSDK.jl): Built on RxInfer.jl for maximum performance

Why Nimbus BCI

Brain-Computer Interfaces face unique challenges: noisy neural signals, inherent uncertainty, real-time requirements, and the need for explainability in medical applications. Current BCI Challenges:
  • High Latency: Standard processing takes 200ms+ for trial classification
  • No Uncertainty Quantification: Deterministic outputs without confidence measures
  • Limited Adaptability: Cannot handle changing brain states or signal quality
  • Black Box Models: Deep learning lacks explainability for FDA approval
Nimbus Solution:
  • Fast Inference: 10-20ms per trial with Bayesian models
  • Uncertainty Quantification: Full posterior distributions, not just point estimates
  • Training & Calibration: Subject-specific personalization in minutes
  • Explainable: White-box probabilistic models for medical compliance
  • Production-Ready: Batch and streaming modes, quality assessment, performance tracking

Core Features

Implemented Models

Both SDKs provide three production-ready Bayesian models:

BCI Paradigms Supported

Motor Imagery

2-4 class classification
  • Left/right hand
  • Hands/feet/tongue
  • 70-90% accuracy
  • RxLDA recommended

P300

Binary classification
  • Target/non-target
  • Speller applications
  • 80-95% accuracy
  • RxGMM recommended

SSVEP

Multi-class frequency
  • 2-6 target frequencies
  • High accuracy (85-98%)
  • Works with both models

Quick Example

from nimbus_bci import NimbusLDA
import numpy as np

# 1. Create and fit classifier
clf = NimbusLDA()
clf.fit(X_train, y_train)

# 2. Predict with uncertainty
predictions = clf.predict(X_test)
probabilities = clf.predict_proba(X_test)

# 3. Works with sklearn pipelines
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler

pipe = make_pipeline(StandardScaler(), NimbusLDA())
pipe.fit(X_train, y_train)

# 4. Online learning
clf.partial_fit(X_new, y_new)

Use Cases

SDK Architecture

EEG Hardware → Preprocessing → Nimbus SDK → Application
   (LSL/BrainFlow)  (MNE/EEGLAB)  (Python/Julia)  (Your Code)
Key Design:
  • Local Inference: All processing on your machine (Python SDK is fully local)
  • Privacy: Your EEG data never leaves your computer
  • Speed: No network latency, consistent <20ms performance
  • Offline Capable: Python SDK works completely offline
Julia SDK API Role:
  • Authentication and licensing
  • Pre-trained model distribution
  • Optional analytics logging

Getting Started

1

Install Python SDK

pip install nimbus-bci
2

Preprocess EEG

Use MNE-Python to extract features (CSP, bandpower, ERP)
3

Train & Predict

Use sklearn-compatible API to train models and make predictions
4

Deploy

Integrate with sklearn pipelines, streaming inference, or real-time applications

Documentation

Performance

MetricRxLDARxGMMBayesian MPR
Inference Latency10-15ms15-25ms15-25ms
Training Time10-30s15-40s15-40s
Calibration Time5-15s8-20s8-20s
Memory UsageLowModerateModerate
Accuracy70-90% (MI)80-95% (P300)70-85% (Complex)
All measurements on standard CPU (no GPU required).

Technology Stack

Python SDK:
  • Core: Python 3.10+, NumPy, JAX, NumPyro
  • Integration: scikit-learn pipelines, MNE-Python
  • Models: NimbusLDA, NimbusGMM, NimbusSoftmax (Polya-Gamma VI)
Julia SDK:
  • Core: Julia 1.9+
  • Inference Engine: RxInfer.jl - Reactive message passing
  • Models: RxLDAModel, RxGMMModel, RxPolyaModel
Common:
  • Preprocessing: MNE-Python, EEGLAB, BrainFlow
  • API: TypeScript/Vercel serverless (Julia SDK authentication)

What’s Included

Python SDK (nimbus-bci):
  • ✅ sklearn-compatible classifiers: NimbusLDA, NimbusGMM, NimbusSoftmax
  • ✅ MNE-Python integration for EEG preprocessing
  • ✅ Streaming inference for real-time BCI
  • ✅ Online learning with partial_fit()
  • ✅ Comprehensive metrics and diagnostics
Julia SDK (NimbusSDK.jl):
  • ✅ RxInfer.jl-based models: RxLDAModel, RxGMMModel, RxPolyaModel
  • ✅ Pre-trained model distribution
  • ✅ Batch and streaming inference
  • ✅ Training and calibration
  • ✅ Quality assessment and ITR calculation

Support

License

Python SDK (nimbus-bci): Proprietary license with free evaluation and academic tiers. See Python SDK Installation for details. Julia SDK (NimbusSDK.jl): Commercial software with tiered licensing:
  • Free: 10K monthly inferences, basic models
  • Research: 50K monthly inferences, all features
  • Commercial: 500K monthly inferences, priority support
  • Enterprise: Unlimited, custom models, on-premise deployment
Contact [email protected] for licensing information.
Built with ❤️ for the neurotechnology community Nimbus BCI Engine - Bringing Bayesian inference to Brain-Computer Interfaces