BCILattice User Manual
Complete guide to every module, from installation to publishing your first pipeline.
Overview
BCILattice is a professional desktop application for brain-computer interface (BCI) and neuroscience research. It provides a complete offline workflow, multi-modal signal import, preprocessing, paradigm design, machine learning pipeline construction, experiment tracking, and report generation, in a single application for Windows, macOS, and Linux.
BCILattice runs entirely locally. All signal processing and ML training happens on your machine. Internet access is only required for cloud sync, community pipeline downloads, and the AI assistant feature.
| Specification | Value |
|---|---|
| Supported modalities | EEG · fNIRS · EMG |
| Platforms | Windows 10/11 · macOS 12+ · Linux (Ubuntu 20.04+) |
| Python version (bundled) | 3.10 – 3.11 |
| Database | PostgreSQL 14+ (local, installed by the installer) |
| GPU support | NVIDIA CUDA · Apple Silicon Metal |
| Session format | .bcinexus ZIP archive |
Installation
BCILattice ships as a single installer (~800 MB) that bundles Python 3.10, all dependencies, PostgreSQL, and the BCILattice application itself. No separate Python installation is required.
Windows
- Download BCILattice-Setup.exe from bcinexus.io/download.
- Run the installer. Accept the license agreement.
- Choose install location (default:
C:\Program Files\BCILattice\). - BCILattice installs PostgreSQL locally, allow it when prompted by Windows Firewall.
- Click Install and wait ~3 minutes for completion.
- Launch BCILattice from the Start Menu or desktop shortcut.
- Check the status bar at the bottom: Server: Running confirms the local FastAPI backend started successfully.
macOS
- Download BCILattice.dmg.
- Open the DMG and drag BCILattice.app to your Applications folder.
- On first launch: right-click → Open (required for macOS Gatekeeper the first time only).
- Allow BCILattice through the macOS Firewall when prompted (for the local backend server).
- Apple Silicon (M1/M2/M3) is natively supported, PyTorch uses Metal acceleration automatically.
Linux
chmod +x BCILattice-installer.AppImage
./BCILattice-installer.AppImageThe AppImage bundles all dependencies and runs on any modern Linux distribution (glibc 2.31+). No root access required.
BCINexus Account
BCILattice works fully offline. A BCINexus account is optional but gives you cloud backup, access to 340+ community pipelines, and team collaboration (Lab+ plans).
- Click Sign In / Create Account in the BCILattice top-right corner.
- Or register at bcinexus.io/register.
- Verify your email address, then return to BCILattice and sign in.
Your sign-in is remembered automatically. You remain signed in across sessions until you explicitly sign out.
Dashboard
The Dashboard is the home screen shown when BCILattice opens. It displays:
- Recent Sessions, your last 10 sessions with quick-open links.
- Quick Stats, total experiments run, pipelines saved, and subjects processed.
- Community Highlights, trending pipelines from BCINexus (requires internet).
- Status Bar, server status, active training jobs, and sync state.
From the Dashboard you can create a new session, open an existing session file, or jump directly to any module via the left sidebar.
Data Manager
The Data Manager is where you import, preview, and organise your datasets. All data stays local until you explicitly sync to BCINexus cloud.
Importing Files
Single file import:
- Click Data Manager in the left sidebar.
- Click Import Files → select your EEG/fNIRS/EMG file.
- BCILattice previews the file: raw signal on the left, file metadata on the right.
- Confirm the label column if this is a supervised learning dataset.
- Click Add to Session.
Multi-subject folder import:
- Click Import Folder.
- Select the root folder containing your subject directories.
- Set folder depth (1–5 levels) matching your directory structure.
- BCILattice scans recursively and lists all compatible files.
- Set session name and label configuration, then click Import All.
Supported Formats
| Modality | Formats |
|---|---|
| EEG | EDF · BDF · GDF · FIF · VHDR · SET · CNT · CSV · XLSX |
| fNIRS | SNIRF · FIF · TXT · CSV · XLSX |
| EMG | EDF · BDF · GDF · FIF · TXT · CSV |
Custom EEG device formats can be supported via a custom MNE reader. Enterprise customers can request custom reader development.
Preprocessing
The Preprocessing module applies signal conditioning to your imported data before feature extraction and ML training. Preprocessing is non-destructive, the original files are never modified.
EEG Pipeline
| Setting | Recommended Starting Values | Notes |
|---|---|---|
| Bandpass filter | Low: 0.5 Hz · High: 40 Hz | Removes DC drift and high-frequency noise |
| Notch filter | 50 Hz (Europe) or 60 Hz (USA) | Removes power-line interference |
| Re-referencing | CAR (Common Average Reference) | Reduces shared noise across channels |
| Resampling | 250 Hz (if original > 500 Hz) | Reduces data size and training time |
Click Preview to see a before/after signal comparison before applying. Click Apply to Session to persist.
The Preprocessing module includes a Custom Python Code Editor where you can inject your own MNE or NumPy/SciPy code at any pipeline stage. Existing MNE scripts can be ported with minimal modification.
fNIRS Pipeline
Enable the full fNIRS pipeline with a single toggle:
- TDDR, Temporal Derivative Distribution Repair (motion artifact removal)
- Optical Density, raw intensity → optical density conversion
- Beer-Lambert Law, OD → HbO/HbR (haemoglobin) concentration
EMG Pipeline
- Full-wave rectification, absolute value of the signal
- Envelope extraction, low-pass filtered rectified signal
NeuralFlow Designer
NeuralFlow is BCILattice's visual timeline-based paradigm designer. You arrange experiment blocks left-to-right on a canvas to define the temporal sequence of a BCI experiment, rest periods, motor imagery tasks, cues, feedback, and trial markers.
Canvas & Blocks
The block palette on the left contains 28 block types organised into six categories:
| Category | Blocks |
|---|---|
| State | Rest, Activity |
| Motor Imagery | MI Left Hand, MI Right Hand, MI Feet, MI Tongue |
| Motor Action | Walk, Run, Grip, Jump |
| Cognitive | Attention, Memory, Relaxation, Math Task, Visual Search, Mental Rotation |
| Cue / Feedback | Visual Cue, Auditory Cue, Tactile Cue, Olfactory Cue, Visual Feedback, Auditory Feedback, Haptic Feedback |
| Control / Utility | Start Trial (-1), End Trial (-2), Marker LSL/TTL (-3), Fixed Time, Loop Block (-4) |
Each block has three editable properties: Label (display name), Label Code(integer marker sent to EEG hardware), and Duration (epoch length in seconds). Special control blocks have reserved codes that cannot be changed.
The Loop Block is a container that repeats a set of sub-blocks. Configure the total repeat count and add sub-block rows (each with their own per-sub-block repeat). Duration is computed automatically from sub-block sum × repeat.
Compile & Export
- Click Compile in the top toolbar.
- BCILattice validates the paradigm, errors appear in the inspector panel.
- Click Export → choose format:
| Format | Extension | Use case |
|---|---|---|
| NeuralFlow Binary | .nflow | Fastest load for BCILattice sessions |
| JSON | .json | Human-readable, version-control friendly |
| CSV | .csv | Flat table of blocks with labels, codes, durations |
ML Suite
The ML Suite is a visual node-graph pipeline builder. Drag blocks from the left panel onto the canvas, connect output ports to input ports, then Compile and Train. All training runs on your local CPU or GPU , no cloud compute is used.
Pipeline Canvas
The block catalog contains 5,400+ blocks across 24+ categories:
- BCI EEG Models, ATCNet, EEGNet, DeepConvNet, EEGConformer, ShallowConvNet
- Sequence Models, LSTM, GRU, BiLSTM, TCN, MambaSSM
- Transformer Models, EEGTransformer, BrainBERT, PatchTST, ViTEEG
- Edge Models, MobileEEGNet, QuantizedEEGNet, TinyEEGNet
- ML Ensemble, Random Forest, Gradient Boosting, AdaBoost, Bagging
- ML Linear, Logistic Regression, SVM, LDA, Ridge, Lasso
- Feature Selection, RFE, SelectKBest, VarianceThreshold, RFECV
- Dimensionality Reduction, PCA, ICA, NMF, UMAP, t-SNE
- Evaluation, accuracy_score, f1_score, roc_auc_score, confusion_matrix
- Model Interpretation, SHAP explainers (63 blocks)
- Signal Processing (MNE), 273 MNE classes and functions
- Deep Learning Models, 3,376 torchvision models
Custom built-in blocks: Channel Selection, Custom Labels, Signal Projection (GAF/MTF/RP), Input Block, Output Block, Loop Block, and Custom Code.
Training
- Click the Workflow Designer tab, assign subjects and sessions to the pipeline.
- Click Compile (Ctrl+Shift+B / Cmd+Shift+B).
- Click Train.
- The Batch Training Dashboard opens with live progress bars per subject.
- Per-subject accuracy, F1, and AUC appear as training completes.
BCILattice automatically detects NVIDIA GPUs (CUDA) and Apple Silicon (Metal) and uses them for PyTorch training. It falls back to CPU automatically.
Model Export
Available on the Researcher plan and above. Supported formats:
| Format | Extension | Target |
|---|---|---|
| PyTorch | .pt | Python / server inference |
| ONNX | .onnx | Cross-platform runtime (TensorRT, OpenVINO) |
| TFLite | .tflite | Mobile (Android / iOS) |
| MATLAB | .mat | MATLAB workspace integration |
Exported models support edge deployment on Raspberry Pi, NVIDIA Jetson, and similar hardware.
Experiment Hub
The Experiment Hub automatically saves every training run as a versioned experiment. Each run is labelled v1, v2, v3, … and stores the full configuration alongside results.
- Click any experiment row to see per-subject accuracy, F1, and AUC.
- Select two experiments and click Compare for a side-by-side view.
- Right-click → Restore to roll back: choose which components to restore (Preprocessing / MLFlow / Workflow / Results).
- Right-click → Publish to BCINexus to share your pipeline with the community.
Reports
The Reports module generates a standalone document summarising your full experiment session.
- Click Reports in the left sidebar.
- Click Generate Report.
- Choose HTML or PDF format.
- The report includes: session metadata, Data Manager summary, preprocessing configuration, NeuralFlow paradigm, and per-subject training results.
HTML reports are fully standalone (no external dependencies) and can be emailed directly. Keyboard shortcut: Ctrl+R / Cmd+R.
Teams & Collaboration
Available on the Lab plan and above.
- Team Workspace, shared dataset library, projects, and pipelines accessible to all team members.
- Roles, Owner, Admin, Member, Viewer with granular permissions.
- SHA-256 Integrity, checksums computed on upload and verified on download to detect corruption.
- Activity Feed, timestamped log of all dataset and project changes.
- Real-time Collaboration, see teammates' active sessions and shared pipeline edits.
- Team size, up to 5 members on Lab; larger teams on Institution with a seat count defined per contract.
Each team member trains locally on their own machine, cloud sync handles sharing datasets and sessions, not compute.
AI Research Assistant
The AI Research Assistant (BYOK, Bring Your Own Key) integrates GPT-4o, Gemini, or Claude directly into BCILattice. Configure your API key in Settings → AI Chat.
- Ask questions about your pipeline results in natural language.
- Get preprocessing recommendations based on your signal quality.
- Summarise experiment comparisons across multiple runs.
- Generate Python code snippets for custom preprocessing steps.
Analysis Suite
The Analysis Suite provides 17 statistical time-series features computed per channel and epoch:
| Feature | Description |
|---|---|
| Mean | Arithmetic mean of signal values |
| Variance | Signal variance (spread) |
| Kurtosis | Tailedness of the signal distribution |
| Skewness | Asymmetry of the signal distribution |
| Max / Min / Range | Signal amplitude bounds |
| Standard Deviation | RMS deviation from mean |
| Entropy | Signal complexity / information content |
| Median | Median value (robust to outliers) |
| Zero-Crossing Rate | Number of zero crossings per second |
| Energy | Sum of squared signal values |
| RMS | Root mean square amplitude |
| Hjorth Activity | Signal power (variance) |
| Hjorth Mobility | Mean frequency approximation |
| Hjorth Complexity | Frequency variation measure |
| Power Spectral Density (PSD) | Frequency-domain power distribution |
Keyboard Shortcuts
| Action | Windows / Linux | macOS |
|---|---|---|
| New session | Ctrl+N | Cmd+N |
| Save session | Ctrl+S | Cmd+S |
| Open session | Ctrl+O | Cmd+O |
| Export session | Ctrl+E | Cmd+E |
| NeuralFlow compile | Ctrl+B | Cmd+B |
| ML Suite compile | Ctrl+Shift+B | Cmd+Shift+B |
| Generate report | Ctrl+R | Cmd+R |
Troubleshooting
| Problem | Solution |
|---|---|
| "Server: Not Running" | The local backend failed to start. Check if another process is using the required port, then restart BCILattice. |
| File import fails "unsupported format" | Verify the file is not corrupted by opening in another tool. Check the extension matches the actual format. Try converting to EDF using your acquisition software. |
| Training is very slow | GPU is not detected. Check View → System Info. Install CUDA toolkit matching your NVIDIA driver. BCILattice falls back to CPU automatically. |
| NeuralFlow compile error: "incompatible port type" | A block output type doesn't match the connected input. Check the colour-coded port type indicators. Review block documentation in the inspector panel. |
| Cloud sync fails | Check internet connection and BCINexus account sign-in status. Verify at status.bcinexus.io. Re-authenticate in Settings → Account. |