BCI software, compared by the job it does

Some BCI tools run a live system, some are libraries you program against, and some carry an offline study from recording to result. Most labs need more than one.

"BCI software" covers very different things. A real-time BCI framework acquires the signal, runs a decoder and drives feedback with tight timing. A decoding library gives you algorithms to call from your own code. A research application organises a whole offline study (preprocessing, training, evaluation, reporting) around those algorithms.

Picking the wrong category is the usual mistake: trying to run a closed-loop experiment in an analysis tool, or writing a full study pipeline from scratch around a library. The table below sorts the well-known options by category.

The landscape

ToolCategoryStrongest at
OpenViBEReal-time frameworkDesigning and running online BCI scenarios graphically, with an acquisition server for many amplifiers.
BCI2000Real-time frameworkA long-established general-purpose system for running BCI experiments, widely used in clinical research.
MNE-PythonLibraryScriptable EEG/MEG/fNIRS analysis with excellent source-space support.
pyRiemannLibraryRiemannian geometry classifiers for covariance matrices.
MOABBLibraryStandard public BCI datasets and reproducible benchmark protocols.
BraindecodeLibraryDeep learning for EEG in PyTorch: ShallowFBCSPNet, Deep4Net, EEGNet and training utilities.
BCILatticeResearch applicationThe offline study end to end without code: import, analysis, model training, evaluation guardrails, reports and publication.

How to choose

  • You need a live closed-loop experiment today

    Use OpenViBE or BCI2000. BCILattice's live streaming is in beta and not yet validated against physical acquisition hardware.

  • You write Python and want full control

    MNE-Python with scikit-learn, pyRiemann and Braindecode. You will build the evaluation yourself.

  • You want to benchmark against public datasets

    MOABB defines the protocols. BCINexus hosts benchmarks and a dataset library as well.

  • You want the offline study done properly, without code

    BCILattice. Grouped splits, nested search and a results validation tab are part of the pipeline.

They fit together

BCILattice is built on the same Python scientific stack (MNE, NumPy, SciPy, scikit-learn, PyTorch), pyRiemann ships with it, and Braindecode and MOABB are on its free curated extension shelf, so a lab can use the libraries directly and run the same methods inside a project. Recordings from a real-time framework import as files (EDF, BDF, GDF, FIF, VHDR, SET, CNT and tabular formats).

Questions

What software is used for brain-computer interfaces?

Real-time frameworks such as OpenViBE and BCI2000 run live BCIs. Python libraries such as MNE-Python, pyRiemann, MOABB and Braindecode provide analysis and decoding algorithms. Research applications such as BCILattice organise complete offline studies without code.

What is the difference between OpenViBE and BCI2000?

Both are real-time BCI frameworks. OpenViBE emphasises graphical scenario design, and BCI2000 is a modular general-purpose system with a long history in clinical BCI research. The better fit depends on your amplifier support and lab experience.

Is there free BCI software?

Yes. OpenViBE, BCI2000 (for research and education), MNE-Python, pyRiemann, MOABB and Braindecode are free. BCILattice has a free plan with the full analysis suite, though it is not open source.

Can BCILattice run a real-time BCI?

Not as a validated closed-loop system yet. Live streaming via Lab Streaming Layer is in beta. What it does today is the offline half, plus a Pseudo-Online Evaluator that estimates live behaviour (false alarms per minute, delay and bit rate) from recorded data.

Read the reference

Related

Run a study end to end, on your own machine

The free plan covers two studies, the full analysis suite, and 118 of the 119 ML blocks.