Welcome to the PyBCI documentation!

PyBCI is a Python package to create a Brain Computer Interface (BCI) with data synchronisation and pipelining handled by the Lab Streaming Layer, machine learning with Pytorch, scikit-learn or TensorFlow, leveraging packages like Antropy, SciPy and NumPy for generic time and/or frequency based feature extraction or optionally have the users own custom feature extraction class used.

The goal of PyBCI is to enable quick iteration when creating pipelines for testing human machine and brain computer interfaces, namely testing applied data processing and feature extraction techniques on custom machine learning models. Training the BCI requires LSL enabled devices and an LSL marker stream for training stimuli. All the examples found on the github not in a dedicated folder have a pseudo LSL data generator enabled by default, by setting createPseudoDevice=True so the examples can run without the need of LSL capable hardware.

Github repo here!

If samples have been collected previously and model made the user can set the clf, model, or torchModel to their sklearn, tensorflow or pytorch classifier and immediately set bci.TestMode().

Check out the Getting Started section for Installation of the project.


This project is under active development.