# MetaBCI: one package for datasets, decoding algorithms and experiment paradigms

> MetaBCI bundles the three parts of a brain computer interface workflow into one Python distribution, a dataset and algorithm library called brainda, an online acquisition framework called brainflow, and a stimulus presentation module called brainstim, and the modular install lets you take only the piece you need.

**TBC-TJU/MetaBCI** — MetaBCI: China’s first open-source platform for non-invasive brain computer interface. The project of MetaBCI is led by Prof. Minpeng Xu from Tianjin University, China. 

- Repository: https://github.com/TBC-TJU/MetaBCI
- Website: http://metabci.readthedocs.io/
- Stars: 581 · Forks: 257
- Language: Python
- License: GPL-2.0
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/tbc-tju-metabci

## The three modules, and why they are one distribution

MetaBCI is an open-source platform for non-invasive brain computer interface, led by Prof. Minpeng Xu from Tianjin University, and it has three main parts. brainda is for importing datasets, pre-processing EEG data and implementing EEG decoding algorithms. brainflow is a high speed EEG online data processing framework. brainstim is a simple and efficient BCI experiment paradigms design module. The split reflects the three stages of a BCI project, offline analysis on a recorded dataset, live signal acquisition, and presenting stimuli to the subject, and the value of bundling them is that the same decoding algorithm can move from a notebook into a live pipeline without being rewritten. The project describes itself as China's first open-source platform for non-invasive brain computer interface, and the documentation is hosted at metabci.readthedocs.io.

## The problem the project names, in four lines

The overview states the problem plainly, and the four points are specific enough to be useful. BCI datasets come in different formats and standards. It is tedious to figure out the details of the data. There is a lack of Python implementations of modern decoding algorithms. And it is not an easy thing to perform BCI experiments, especially the online ones. The consequence for a newcomer is spelled out: most of their time goes into preprocessing the data, reproducing the algorithm from the paper, and then working out how to bring the algorithm into an experiment at all. The stated goal of the platform is to let researchers focus on improving their own BCI algorithms and performing their experiments without wasting time on preliminary preparation.

## The solution, as a list of six capabilities

What the platform provides maps one to one onto those complaints. Users can load the data easily without knowing the details, and there are flexible hook functions to control the preprocessing flow. It provides the latest decoding algorithms, the experiment user interface for different paradigms such as motor imagery, P300 and SSVEP, and the online data acquiring pipeline. It also allows users to bring their pre-trained models into the online decoding pipeline, which is the capability that makes an offline model useful in a live session rather than only in a paper. The work upstream of all this, improving the MOABB APIs, is listed as a set of concrete changes: hook functions to control the preprocessing flow more easily, joblib to accelerate data loading, proxy options for network connection issues, and more information in the meta of data.

## Installation, and the extras that decide your dependency bill

The quick install takes everything.

```bash
pip install metabci[all]
```

But the modular install is the more interesting choice, because the extras map onto the three modules and the differences are large. The core install is minimal and meant for custom setups, the brainda extra carries datasets, algorithms and deep learning, the brainflow extra carries signal acquisition and is described as lightweight, and the brainstim extra carries stimulus presentation. You can also combine them.

```bash
# Core only (minimal, for custom setups)
pip install metabci

# brainda: datasets, algorithms, deep learning
pip install metabci[brainda]

# brainflow: signal acquisition (lightweight)
pip install metabci[brainflow]

# brainstim: stimulus presentation
pip install metabci[brainstim]

# Combine modules as needed
pip install metabci[brainda,brainflow]
```

The core dependencies are numpy, scipy, tqdm, requests with the socks extra, and joblib. The extras pull in much more: brainda adds mne, mne-bids, pandas, scikit-learn, h5py, mat73, py7zr, pooch, torch, skorch, autograd and pymanopt, while brainstim adds psychopy, which the requirements file notes may have platform-specific installation requirements.

## The development and conda paths

For working on the platform itself, the repository is cloned with git clone from the GitHub URL, the MetaBCI directory is entered, and the package is installed in development mode with all the extras using pip install -e .[all,dev,docs]. Or through the requirements files, first the development requirements with pip install -r requirements-dev.txt and then the package itself with pip install -e .. A conda environment file is provided as well, created with conda env create from environment.yml and then activated with conda activate metabci, and uv is offered as a fast alternative installer with uv pip install metabci[all]. The package requires Python 3.9 or newer and is built with setuptools, and a setup.py shim remains for older pip versions, with the comment that all configuration now lives in pyproject.toml.

## The dataset catalogue, split by paradigm

The supported datasets are organised by paradigm, and the motor imagery list is the long one. It includes AlexMI, BNCI2014001 and BNCI2014004, PhysionetMI and PhysionetME, Cho2017, MunichMI, Schirrmeister2017, Weibo2014 and Zhou2016. The SSVEP list is shorter, with Nakanishi2015, Wang2016 and BETA. The naming convention is the standard one in the field, where a four digit number plus a year refers to a BNCI benchmark and the other names are the papers that introduced the data, which is a useful convention when you are looking for a dataset with a particular characteristic. The datasets are not a separate download, they are pulled through the brainda module, which is also where the preprocessing hooks and the dataset metadata live.

## The algorithm set, grouped by the family it belongs to

The implemented algorithms are grouped in four families, and the list is long enough to show what the project considers in scope. The decomposition methods cover SPoC, CSP, MultiCSP and FBCSP, the canonical correlation family with CCA, itCCA, MsCCA, ExtendCCA, ttCCA, MsetCCA, MsetCCA-R, TRCA, TRCA-R, SSCOR and TDCA, and DSP. Manifold learning covers basic Riemannian geometry operations, alignment methods and Riemann Procrustes Analysis. Deep learning covers ShallowConvNet, EEGNet, ConvCA, GuneyNet, and cross dataset transfer learning based on pre-training. Transfer learning covers MEKT and LST. The breadth matters for a specific reason, which is that a BCI paper usually compares against a handful of methods, and having the common ones behind one import path removes the usual afternoon of reimplementing baselines.

## The paper, the licence and how the project is run

The project asks for citation, and gives the reference directly. The paper is Mei, Luo, Xu, Zhao, Wen, Wang and others, MetaBCI: An open-source platform for brain-computer interfaces, in Computers in Biology and Medicine, 107806, in 2023, with an open access link to the publisher. The licence is the GNU General Public License v2.0. The people behind it are researchers from the Academy of Medical Engineering and Translational Medicine at Tianjin University, and from the Tianjin Brain Center, and the project says it is carried out by those researchers. Two practical notes close the documentation. The handbook of the repository is not in the repository, and asking for it means emailing the project address with the name of your team leader and your university or organisation, so the handbook is distributed on request. And the release history is irregular, with v0.1.2 from November 2022 followed by v0.2.0 in January 2026, and the project says this is the first release.

## Conclusion

MetaBCI fits a BCI researcher who has to move from a public dataset to a live experiment, because the same install carries the dataset loaders, the decoding algorithms and the stimulus presentation code, and the modular extras let a machine learning group skip the acquisition stack entirely. It does not fit a team that wants a stable release cadence, because the version history jumps from 0.1.2 in November 2022 to 0.2.0 in January 2026, and it does not fit anyone without an EEG setup, since the online pipeline needs real hardware and lab time even though the dataset side works offline. Before you install, decide which of the three modules you actually need, because the brainstim extra pulls in psychopy and the brainda extra pulls in torch, and read the handbook request process, since the project distributes its handbook on request rather than in the repository.

## FAQ

### What are the three parts of MetaBCI?

brainda for importing datasets, pre-processing EEG data and implementing EEG decoding algorithms, brainflow as a high speed EEG online data processing framework, and brainstim as a simple and efficient BCI experiment paradigms design module. The goal is to let researchers focus on their own algorithms rather than on preliminary preparation.

### How do I install MetaBCI with only the parts I need?

Use the modular extras. The core install is minimal, pip install metabci[brainda] adds datasets, algorithms and deep learning, metabci[brainflow] adds signal acquisition, metabci[brainstim] adds stimulus presentation, and you can combine them. The full install is pip install metabci[all].

### Which decoding algorithms does MetaBCI implement?

Decomposition methods including SPoC, CSP, MultiCSP, FBCSP, CCA, itCCA, MsCCA, ExtendCCA, ttCCA, MsetCCA, TRCA, TDCA and DSP, manifold learning with Riemannian geometry operations, alignment methods and Riemann Procrustes Analysis, deep learning with ShallowConvNet, EEGNet, ConvCA and GuneyNet, and transfer learning with MEKT and LST.

### How do I get the MetaBCI handbook?

It is not in the repository. You email the project address with the name of your team leader and the name of your university or organisation, and the project says it will send a copy of the handbook once it has that information.

## Sources

- [License: GPL-2.0](https://github.com/TBC-TJU/MetaBCI/blob/master/LICENSE)
- [Project website](http://metabci.readthedocs.io/)
- [README](https://github.com/TBC-TJU/MetaBCI/blob/master/README.md)
- [Releases](https://github.com/TBC-TJU/MetaBCI/releases)
- [TBC-TJU/MetaBCI on GitHub](https://github.com/TBC-TJU/MetaBCI)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/tbc-tju-metabci
