bcikit: An Open Platform for Research and Development of Brain-Computer Interfaces


Octavian Drulea

Oral Defence Date: 



TH 434


Assoc. Prof. Kaz Okada, Assist. Profs. Anagha Kulkarni, & Xiaorong Zhang


A brain-computer interface (BCI) takes signals from a human brain as input to a computer system. The goal of BCI systems is to allow a human operator to control a computer application by mental activity alone. Research in this field has advanced considerably in recent years, with the advent of powerful new machine learning technologies. However, many obstacles currently inhibit BCI research, including cost, access to equipment, and domain-specific expertise challenges at the intersection of neuroscience and computer science. This project introduces a simplified software platform called bcikit which puts research within reach for many new investigators. With an organized, open source, modular design, this platform provides signal acquisition, signal processing, machine learning, and offline analysis that “just works”, and yet is transparently flexible for researchers. bcikit is written with python, with widely used scientific computing tools such as numpy, pandas, scipy, and scikit-learn. The project includes not only software, but also a hardware EEG platform for human brain signal acquisition, and a demonstration project using bcikit in an operational BCI experiment using motor imagery as the control paradigm.


BCI, CSP, EEG, machine learning, motor imagery, open source, Python, Riemannian Tangent Space


Octavian Drulea