BCPy2000 provides a platform for rapid, flexible development of experimental Brain-Computer Interface systems based on the BCI2000.org 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. BCPy2000 implements a lot of infrastructure allowing you to get new experiments up and running quickly. It also contains a set of optional tools, which are still a work in progress but which are rapidly turning into a kind of "standard library" of object-oriented signal-processing and stimulus widgets. These features make it a flexible platform for developers of new NumPy/SciPy-based machine-learning algorithms in the field of realtime biosignal analysis.

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 a comprehensive range of EEG acquisition modules). The modules communicate over TCP/IP, so they can run on different machines if necessary.

Each Python module can open an IPython shell in which you can inspect and interact with every aspect of the running system. If you're using a BCPy2000-implemented source module, you can slow the system right down or even step through it one signal-chunk at a time, which can help you while you're interactively debugging your Python code in one of your other modules with pdb.

This is the third build to be generally released. It contains numerous bugfixes and improvements, together with a refactoring of the code to allow the dependencies on VisionEgg and/or PyOpenGL and/or pygame to be replaced with developers' own graphical implementations. It is also now distributed together with its own portable python distribution, so that it runs out of the box---see http://bci2000.org/downloads/BCPy2000/Download.html

This is the second release of the demo build, incorporating a number of accumulated enhancements, optimizations and bug fixes, including improved precision of sound stimulus timing, and playback of older-style .dat files (bug reported by Marco Rotonda).

The three Python-related core modules are now gnu-compilable and can run on non-Windows platforms (a Windows machine is still required for the BCI2000 Operator module, however).

The version numbering convention has changed. The previous demo release, 1.0, is retroactively called 8570. The current revision 11336 was also committed to the bci2000.org subversion repository, revision 2324.