Brain signals communicating directly to a computer is never an easy task, yet it is interesting that it could help humanity in a multitude of ways. In this article, we will discuss OpenViBE software platform for the design, test and use of brain computer interfaces (BCI).

A set of software modules in OpenViBE takes input from the acquisition machine [generally, electro-encephalography (EEG) signals] connected to the head, measuring electrical activity on the scalp that roughly reflects the activity of cortical neuron population.

Fig. 1: OpenViBE Designer with tabbed interface and graphical language
Fig. 1: OpenViBE Designer with tabbed interface and graphical language

Communication engineers around the world make use of OpenViBE for real-time processing of brain signals. The software is used to acquire, filter, process, classify and visualise brain signals in real-time. This tool finds applications in various fields including medical (assistance to disabled people, real-time biofeedback, neuro feedback and real-time diagnosis), multimedia (virtual reality, or VR, and video games), robotics and all other application fields related to brain-computer interfaces and real-time neurosciences.

The software works well on Windows and Linux operating systems and is released under GNU Affero general-public licence v3.0 (AGPL-3).

F3B_box BF6_box2

Who can make use of OpenViBE
The software is designed to cater to the needs of mainly four types of users—developers and application developers, who are basically programmers, can make use of the scripting language, while authors and operators, who are basically non-programmers, can make use of the graphical interface.

Developers. There could be two kinds of developers—kernel developers who enhance and develop kernel functionalities and plugin developers who create additional modules. They test their own piece of software in this environment and add new functionalities to it. To that end, OpenViBE is delivered with a complete software development kit (SDK), which allows access to functionalities at different levels depending on the task to realise.