Application developers. Using OpenViBE as a library, developers with good programming skills use SDK to create standalone applications. These could be new tools such as the visual scenario editor or external VR applications that can be used by BCI participants for interaction.
Authors. The author makes use of the visual scenario editor to arrange boxes in order to produce a complete, ready-to-use BCI system. The author should have thorough knowledge about the environment and the BCI system; there is no need to have good programming skills as one is using dedicated tools for the applications.
Operators and users. Operators could be doctors or BCI experts who run prebuilt scenarios of the author. With the help of dedicated visualisation components, they monitor the execution of the BCI system. They should have thorough knowledge about neuro-psychological signals and help the user improve control over the BCI system.
Users are provided with brain-activity acquisition hardware in the form of EEG caps that interact with the application by means of their mental activity.
Features of the software
Let us take a look at the key features that make OpenViBE a favourite BCI software.
Modular and reusable components. OpenViBE is developed as a general-purpose software platform in which users can freely add new modules to adapt the environment to any specific need. Modules, acting as building blocks, can be developed for each specific function and are reusable. Also, this approach helps the developer to easily extend the functionalities and save a fair amount of time.
Multitude of signal-processing techniques. The package comes with a range of signal-processing algorithms for character extraction of the signal. OpenViBE uses machine learning methods for transforming characteristics into commands. These include linear discriminant analyses (LDA), support vector machines (SVMs) and classifier combinations (one versus the rest).
Users also have access to various signal-processing techniques such as epoching, averaging, linear combinations, spatial and temporal filtering, windowing and Fourier transformations.
Users can also make use of MATLAB for further signal processing. A box sending input to MATLAB and receiving output from it is readily available for use.
Accommodating various types of users. Users who make use of this tool have to address various types of issues.
Users could be computer engineers, biomedical researchers, doctors, VR developers and gaming experts, to name a few. Among them, some will have really strong programming skills, while others might not be so interested in programming but might have thorough knowledge in concepts of brain.
Taking all these factors into consideration, various tools have been developed to meet their requirements. For example, OpenViBE uses a dedicated graphical language and a simple graphical user interface (GUI) to facilitate non-programming users.

