Debian Science Project
Brain-computer interface
Debian Science Brain-computer interface packages

Debian Science packages for the design and use of brain-computer interface (BCI) -- direct communication pathway between a brain and an external device. BCIs are often aimed at assisting, augmenting or repairing human cognitive or sensory-motor functions.

The selection of packages is targeting the complete frameworks for the design of BCI systems. Often such systems rely on external presentation, data collection and analysis software which could be found in science-neuroscience-cognitive, science-dataacquisition, data-machine-learning metapackages.


For a better overview of the project's availability as a Debian package, each head row has a color code according to this scheme:

If you discover a project which looks like a good candidate for Debian Science to you, or if you have prepared an unofficial Debian package, please do not hesitate to send a description of that project to the Debian Science mailing list

Links to other tasks

Debian Science Brain-computer interface packages

Packaging has started and developers might try the packaging code in VCS

Emotiv EPOC headset Python interface
License: BSD-3
Debian package not available
Language: Python, C

Emotive is an interface to a budget Emotiv EPOC EEG headset.

Brain Computer Interface module for Brain Vision Recorder
License: MIT
Debian package not available
Language: Python, C++

This module gives you the possibility to create a Brain Computer Interface (BCI), and herewith to get EEG data online and evaluate the data while you are receiving it. The module is made for all users of the Brain Vision Recorder because of the therein implemented function of Remote Data Access. It is not possible to use it with another EEG Recorder Software, but this will be a project in the future.

Using the PyBCI module, you are able to get a numpy data array in up to every few ten milliseconds and therewith evaluate the data almost in realtime with other powerful Python packages, for example using PyMVPA.

Remark of Debian Science team: No activity since Sep 2009
Brain Computer Interface (BCI) framework
License: GPL-2+
Debian package not available
Language: Python

Pyff is a Pythonic Feedback Framework which provides a platform independent framework to develop BCI feedback applications in Python. It was designed to make the development of feedback applications as easy as possible. Pyff framework moves feedback implementations to a general purpose, and easy to learn language like Python. Python provides many so called bindings to other libraries, which allow it to develop high quality multimedia feedback applications, with little effort.

The framework communicates with the rest of the BCI system via a standardized communication protocol using UDP and XML and is therefore suitable to be used with any BCI system that may be adapted to send its control signal via UDP in the specified format.

Please cite: Bastian Venthur, Simon Scholler, John Williamson, Sven Dähne, Matthias S Treder, Maria T Kramarek, Klaus-Robert Müller and Benjamin Blankertz: Pyff --- A Pythonic Framework for Feedback Applications and Stimulus Presentation in Neuroscience. (2010)

No known packages available but some record of interest (WNPP bug)

openvibe - wnpp
platform for the design, test and use of BCI
License: LGPL
Debian package not available
Language: C++

OpenViBE enables to design, test and use Brain-Computer Interfaces (BCI). OpenViBE is a software for real-time neurosciences (that is, for real-time processing of brain signals). It can be used to acquire, filter, process, classify and visualize brain signals in real time.

No known packages available

platform for brain-computer interface systems
License: non-free (non-redistributable, non-commercial)
Debian package not available
Language: C++

BCI2000 supports a variety of data acquisition systems, brain signals, and study/feedback paradigms. During operation, BCI2000 stores data in a common format (BCI2000 native or GDF), along with all relevant event markers and information about system configuration. BCI2000 also includes several tools for data import/conversion (e.g., a routine to load BCI2000 data files directly into Matlab) and export facilities into ASCII.

BCI2000 also facilitates interactions with other software. For example, Matlab scripts can be executed in real-time from within BCI2000, or BCI2000 filters can be compiled to execute as stand-alone programs. Furthermore, a simple network-based interface allows for interactions with external programs written in any programming language. For example, a robotic arm application that is external to BCI2000 may be controlled in real time based on brain signals processed by BCI2000, or BCI2000 may use and store along with brain signals behavioral-based inputs such as eye-tracker coordinates.

Please register by following this link if you are using bci2000.
Remark of Debian Science team: Besides non-commercial restriction, it is required that

"ACADEMIC USER must be an investigator / lab director (and not a post-doc or student)". Re-distribution (to third-party) is also forbidden.

platform for brain-computer interface systems
License: LGPL-3+ and GPL-3+ and non-free (BCI2000)
Debian package not available
Language: Python, C++

BCPy2000 provides a platform for rapid, flexible development of experimental brain-computer interface systems. It is based on, and hosted by, the BCI2000 project. From the developer's point of view, the implementation is carried out in Python, taking advantage of various high-level packages: VisionEgg for stimulus presentation, NumPy and SciPy for signal processing and classification, and IPython for interactive debugging.

Being a BCI2000 system, it is modular, consisting of an Application module (the stimulus presentation part), a Signal Processing module (the machine-learning part), and a Signal Source module (the toy data generation part). You can choose to use Python to implement one, two, or all three of these modules, and use other pre-existing BCI2000 modules for the remainder of the system (for example, for the Signal Source, you can choose from BCI2000's comprehensive range of EEG acquisition modules). The modules communicate over TCP/IP, so they can run on different machines (and possibly different operating systems) if necessary.

*Popularitycontest results: number of people who use this package regularly (number of people who upgraded this package recently) out of 235102