Get Started with Nimbus BCI
Build your first brain-computer interface application in just a few steps. This guide will take you from setup to running inference on neural data in under 10 minutes.Choose Your SDK:This page covers the Julia SDK (NimbusSDK.jl). If you’re using Python, see the Python SDK Quickstart instead.
- 🐍 Python SDK: sklearn-compatible, works with MNE-Python, fully local → Python Quickstart
- ⚡ Julia SDK: RxInfer.jl-based, maximum performance, requires API key → Continue below
Prerequisites
Before you begin, make sure you have:- Julia 1.9+ installed on your system
- Basic understanding of EEG data and BCI concepts
- Preprocessed features (CSP, bandpower, etc.) - see preprocessing requirements
Step 1: Get Your API Key
Request API Access
Contact us at [email protected] to request your API key. Include your use case and expected volume.
API keys are typically issued within 24 hours. Include details about your BCI application, expected data volume, and timeline in your request.
Step 2: Install NimbusSDK.jl
NimbusSDK.jl is now available in the public Julia General Registry:What changed? NimbusSDK.jl is now a public wrapper package. No more private registry setup! Just
Pkg.add("NimbusSDK") and then install the core with your API key.Step 3: Your First BCI Inference
Create a new Julia script and run your first BCI inference:Required Format for Features
NimbusSDK expects features in a specific format:- Dimensions:
(n_features × n_samples × n_trials) - Feature types: CSP (recommended), bandpower, ERP amplitudes
- Preprocessing: Must be applied before using SDK
Critical: You must preprocess your EEG data before using NimbusSDK. The SDK does NOT process raw EEG - it requires extracted features. See Preprocessing Guide for details.
Step 4: Training Your Own Model
Train a custom RxLDA model on your labeled data:Step 5: Streaming Inference
For real-time applications, use streaming inference:Available Models
NimbusSDK includes three Bayesian inference models:Bayesian LDA (RxLDA)
API Name:RxLDAModelMathematical Model: Pooled Gaussian Classifier (PGC)
- Shared covariance across classes
- Fast inference and training
- Best for well-separated classes
- Typical training time: 10-30 seconds (50 iterations, 100 trials)
Bayesian GMM (RxGMM)
API Name:RxGMMModelMathematical Model: Heteroscedastic Gaussian Classifier (HGC)
- Class-specific covariances
- More flexible, handles overlapping distributions
- Better for complex class structures
- Slightly slower than Bayesian LDA
Bayesian MPR (RxPolya)
API Name:RxPolyaModelMathematical Model: Bayesian Multinomial Probit Regression
- Continuous transition mapping to latent space
- Most flexible for complex multinomial tasks
- Works in (K-1) dimensional space
- Ideal for advanced BCI applications
All models use RxInfer.jl for efficient variational Bayesian inference with reactive message passing.
Next Steps
Now that you have NimbusSDK running, explore these advanced features:Julia SDK Reference
Complete SDK documentation with all functions and types
Feature Normalization
Critical guide for cross-session BCI performance (+15-30% accuracy)
Bayesian LDA (RxLDA)
Learn about the Bayesian LDA model in detail
Bayesian GMM (RxGMM)
Learn about the Bayesian GMM model in detail
Bayesian MPR (RxPolya)
Learn about the Bayesian MPR (Multinomial Probit Regression) model
Preprocessing Guide
Critical guide on preparing your EEG data
Batch Processing
Process multiple trials efficiently
Streaming Inference
Real-time chunk-by-chunk processing
Common Use Cases
Motor Imagery BCI
Control devices with imagined movements using CSP features
P300 Speller
Communication interfaces using event-related potentials
SSVEP Control
High-speed visual BCI with steady-state responses
Neurofeedback
Real-time brain state monitoring and training
Troubleshooting
Common Issues
Common Issues
API Key Issues:
- Ensure your API key is set correctly
- Contact [email protected] if your key isn’t working
- Features must be in shape:
(n_features × n_samples × n_trials) - Ensure you’ve applied preprocessing (filtering, artifact removal, feature extraction)
- No NaN or Inf values in data
- Check that you have a valid model name
- Ensure your internet connection is working (for pre-trained models)
- Verify API key is authenticated
Getting Help
Getting Help
Need assistance? We’re here to help:
- Email: [email protected] for technical support
- Documentation: Browse our comprehensive guides
- Examples: Check out working code samples in the SDK
- API Documentation: See Julia SDK Reference
- Your Julia version and OS
- The exact error message
- A minimal code example that reproduces the issue
- Your data shape and preprocessing steps