Get Started with NimbusSDK.jl (Julia SDK)
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 NimbusLDA model on your labeled data:Step 5: Streaming Inference
For real-time applications, use streaming inference:Available Models
NimbusSDK includes Bayesian inference models for different BCI scenarios:Bayesian LDA (NimbusLDA)
API Name:NimbusLDAMathematical 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 QDA (NimbusQDA)
API Name:NimbusQDAMathematical Model: Heteroscedastic Gaussian Classifier (HGC)
- Class-specific covariances
- More flexible, handles overlapping distributions
- Better for complex class structures
- Slightly slower than Bayesian LDA
NimbusProbit (Julia only)
API Name:NimbusProbitMathematical 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 (NimbusLDA)
Learn about the Bayesian LDA model in detail
Bayesian QDA (NimbusQDA)
Learn about the Bayesian QDA model in detail
NimbusProbit
Learn about NimbusProbit in detail
Bayesian STS (NimbusSTS)
Adaptive model for non-stationary data (Python SDK only)
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