The OpenViBE platform brings many unique features which will help you to conceive your BCI applications.

Generic Acquisition Server with support for many acquisition devices

OpenViBE platform comes with a generic acquisition server. It acquires data from any compatible EEG device and sends it to any number of OpenViBE clients on the network.

OpenViBE supports over 30 acquisition devices. The acquisition server enables you to switch EEG devices without the need to do any modification to your processing chain.

OpenViBE is multi-platform and open source

OpenViBE is open source software released under the GNU Affero General Public License v3.0 (AGPL-3). You are free to modify and redistribute the code. Read the license to know more details.

Additionally, on Windows, you can download an installer package which enables you to use OpenViBE right away.

You can check the list of compatible systems and architectures to check whether you can use OpenViBE on your computer.

OpenViBE is written with multi-platform compatibility in mind.

Currently it can be built on Windows and Linux. For details on the build tools, see here.

Easy to use graphical language

With OpenViBE you do not need to learn a programming language, everything is done by mouse and simple drag and drop gestures.

Every piece of the signal processing chain is represented by a box. To pass input from one box to another simply link them together.

Scenarios can be annotated by rich-text enabled comments.

Visit our box documentation to discover more about available algorithms.

A vast selection of signal processing methods

OpenViBE comes with many signal processing algorithms which you can use to extract characteristics from the signal.

OpenViBE bundles e.g. : Epoching, Averaging, Linear combinations, Spatial and Temporal filtering (ex.: xDAWN, Common Spatial Pattern), Windowing, Fourier transformations

In order to transform the characteristics into commands you can use several machine learning methods included in OpenViBE.

Various classifications methods:

  • Linear Discriminant Analysis (LDA)
  • Support Vector Machine (SVM)
  • Neural Network (MLP)
  • Classifier combinations for multiclass

An offline analysis tool

OpenViBE 2.2.0 and later include an offline analysis tool called the OpenViBE Tracker.

With the Tracker you can load multiple files simultaneously and browse their content freely.

The loaded data can be routed to the usual OpenViBE plugins (boxes, scenarios) for processing, either each dataset independently, or catenated to one long dataset.

The Tracker can use multiple CPU cores for parallel signal processing.

Processing with Python


You can also use Python for signal processing.

You will need a 2.x series Python installation to use this plugin.

Processing with Matlab software

You can use Matlab for further signal processing. A plugin sending data between OpenViBE and Matlab is included.

You will need a valid Matlab installation to use this plugin.

Scripting powered by the LUA language

LUA language can be used to script the scenarios and control their behaviour.

A special Lua Interpreter Box, capable of handling stimulations, is available directly from OpenViBE.

BCI demos of multiple paradigms

Demos illustrating the major paradigms used in BCI are bundled with OpenViBE.

These demos are powered by the open source Ogre 3D engine.

Featured paradigms are:

  • Speller Applications using P300
  • Spaceship for feet motor imagery
  • Handball for hand motor imagery
  • SSVEP shooting game

Example scenarios and data files

Example scenarios are included to illustrate the usage of OpenViBE elements.

Discover the list of tutorial scenarios and their description in the Scenario Documentation

The demos typically include example recordings of EEG signal so you can test them offline.