OpenViBE Documentation

Frequently asked questions

What is OpenViBE ?

OpenViBE is a software platform that enables to design, test and use Brain-Computer Interfaces. Brain-Computer Interfaces (BCI) are communication systems that enable users to send commands to computers only by means of brain activity. BCI are gaining interest inside the Virtual Reality (VR) community as they have appeared as promising interaction devices for Virtual Environments (VE).

What is the licence of OpenViBE ?

The licence for OpenViBE basically is L-GPL, see Licence for details about this licence. Some OpenViBE plugins are based on GPL libraries. Consequently, those plugins are GPL.

What is the current status of OpenViBE ?

OpenViBE is quite a young software. The development began from scratch in 2006. It already offers several complete processing pipelines. It has been successfully used by the authors in different contexts, including motor imagery interactions and basic neurofeedback experiments. Currently available functionalities are far from complete, but the plugin architecture should facilitate the integration of new functionalities and limit the number of changes to the API (which is bound to evolve in the next few months anyway, if only to be improved). Additionally, it is expected that external contributions will soon help enlarge OpenViBE functionalities.

For now, this software should be considered as being in alpha stage with a reasonably stable API.

What are the current functionalities of OpenViBE ?

Here is a non exhaustive list of OpenViBE functionalities :
  • Acquisition
    • Mindmedia NeXus32B
    • ANT Neuro ASALAB EEG / ERP amplifier (32-256 channels) has been reported to work with NeXus32B driver
    • TMSi Porti32 has been reported to work with NeXus32B driver
    • Micromed IntraEEG
    • Brainamp ScalpEEG
    • CTF/VSM MEG
    • Brainquiry QPET9 (in progress)

  • File reading and writing
    • Generic files (r/w)
    • GDF files (r/w)
    • BCI Competition IIIb (r)
    • Brainamp files (r)

  • Preprocessing
    • Time based epoching
    • Stimulation based epoching
    • Moving average
    • Windowing
    • Channel selection
    • Simple DSP
    • Temporal filter
    • Downsampling (in progress)

  • Feature extraction
    • Spectral analysis
    • Spatial filter

  • Classification
    • Linear Discriminant Analysis

  • Stimulation presentation
    • Graz-like motor imagery presentation

  • Visualisation
    • Simple levels
    • Raw signal
    • Spectrum
    • Time/Frequency analysis
    • 2D/3D topography

  • Connection to external software
    • VRPN integration (Virtual Reality Peripheral Network)
    • TurboFieldTrip integration (r/w, in progress)

What kind of software / hardware do I need to run OpenViBE ?

OpenViBE currently only runs on PCs and compiles on differents targets. The following table shows a summary of these different configurations...

CPU Operating System Distribution Compiler Status
x86 Windows XP SP2 Visual C++ 2008 Express OK
Visual C++ 2005 Express SP1 OK
Vista Visual C++ 2005 Express SP1 OK
Linux Ubuntu 9.04 GCC 4.3.3 OK
Ubuntu 8.10 GCC 4.3.2 OK
Ubuntu 8.04 GCC 4.2.4 OK
Fedora Core 3 GCC 3.4.3 No 3D visualisation
Fedora Core 4 GCC ? OK
Fedora Core 5 GCC ? OK
Fedora 8 GCC OK
x86_64 Windows Any Untested
Linux Ubuntu 8.10 GCC 4.3.2 OK
Ubuntu 8.04 GCC 4.2.4 OK
Fedora 9 GCC 4.3.0 OK
Fedora 10 GCC 4.3.2 OK

If you have tested OpenViBE on another platform, please fill free to report its status for this platform.

Why did you favor GTK over Qt ?

People often wonder why GTK was chosen to handle $OpenViBE$ GUI requirements, arguing that Qt presents a number of advantages over GTK, particularly under Windows. This choice comes from the authors decision not to distribute the OpenViBE platform under a GPL licence, which would make it possible for private companies to base their software on OpenViBE without their having to release their source code. Even though Qt probably has better support and better implementation/integration under Windows, using this library would have required most OpenViBE components to be distributed under the GPL. Since the OpenViBE platform is developed in an open source spirit, the GTK library was found to better fit the context of the project.

Where can I download OpenViBE sources ?

The latest unstable sources can be downloaded with subversion from the gforge at https://gforge.inria.fr/projects/openvibe . Alternatively, you may want to download the latest stable source package from http://openvibe.inria.fr

Where can I download OpenViBE precompiled binaries ?

Some probably outdated windows binaries could be found at http://www.irisa.fr/bunraku/OpenViBE/binaries/win32 . These precompiled versions are not officially supported yet so don't expect regular updates.

Additionnaly we are looking for a smart solution to have precompiled packages for Linux on several distribution. If you have any advice, please feel free to share. See Contact for how to contact us.

I have problems compiling OpenViBE, what should I do ?

First, make sure you followed the install procedure described in Install . If problems persist, you can get some help from the people involved in this project. See Contact for how to contact us.

The branch changes are not considered at compilation time, why is that ?

Don't forget to clean everything before editing your win32-init_env_command.cmd or linux-init_env_command to switch your developements to other branches. If you don't do this, cmake will keep compiling the software in the old branches because of its cache. Cleaning everything will cause the header and library files to be removed and thus force cmake to search for them again.

More generally here is the correct way to work with our branches : * clean * svn update / branch switch / whatever eventually involves the structure of the code * re-build

I have problems using OpenViBE, what should I do ?

A good place to start learning about the platform is to read the existing documentation. Several documentation files are dedicated to explaining the use of the platform and its associated tools.

If still having problems after this reading, you may contact the community to discuss the problem. Visit the forum or send a message to the mailing lists.

I think I found a bug, what should I do ?

If you think you found a bug, please take a few minutes to file a bug report. A bug tracker can be found at http://gforge.inria.fr/tracker/?group_id=276 . You will first want to check that your bug is not already listed in the tracker. If it is not, then you may fill in a complete bug report. Try to provide detailed information regarding the conditions in which the bug occured, this will help us reproduce it. We will typically want to know what hardware you have, the name/version of your operating system and compiler. Additional data such as a sample scenario and/or EEG record may also prove useful. Overall, the more information you provide in your bug report, the easier it is for us to try to solve the bug.

How can I contribute to OpenViBE ?

There are many ways in which you can contribute to OpenViBE :
  • developers : you can implement new boxes, new algorithms, new drivers
  • documentation : you can enhance the existing documentation or write new tutorials
  • testing : you can help test new features, new operating systems, new hardware, and send us feedback or fill bug reports when needed
  • support : you can provide help to the community by regularly visiting the forum and joining the IRC and mailing lists
  • packaging : you can build RPMs, DEBs or whatever package your linux distro uses

In any case, you should start by reading the Contribution rules . If you still have questions, you can also Contact us.

Are there any existing connections with other BCI platforms ?

A bridge with TurboFieldTrip is currently being implemented.

Other connections are not planned yet, but feel free to Contact us if you think a connection with your software could be a plus.

On Windows, launching OpenViBE complains about missing d3dx9_33.dll or d3dx9_38.dll, what should I do ?

This message is a generic message that Windows prints when a DLL should be loaded and can't be found. The d3dx9_33.dll and d3dx9_38.dll file are part of DirectX (Microsoft 3D acceleration API) which is used by Ogre3D. The best thing to do is to actually install DirectX on your computer. You can find it searching for Direct X redist on google (or following this link http://www.google.fr/search?q=directx+redist+site%3Amicrosoft.com). Be carefull with the release date because you still can find 2004 versions of DirectX and these versions may be proposed first.

Anyway, if you don't want or can't install DirextX, Ogre3D will use OpenGL and just work with no limitation. You will just have to click the OK button each time you try to launch OpenViBE.

Why did you write this crappy dependency installation script for Linux ?

OK, most Linux users will wonder what this installation script was created for in the first place.

First, it was estimated at the start of the project that the installation of dependencies in one click would be a plus for a certain category of users. While this is the standard way of installing an application under Windows, it isn't under Linux, where most distributions come with their own packaging system, be it rpm or apt-get. However, some of our dependencies (namely, OpenMASK and VRPN) do not appear in the official packages of common Linux distributions. Second, it was decided that the installation process should not require users to have root access to their computer to install the OpenViBE dependencies. Third, minor patches are applied to some of the installed dependencies. Last, using such a script guarantees that all Linux users have the same version of the dependencies.

These are the reasons why an installation script is used. However, it is still possible that dependencies are handled differently in the future, especially if precompiled packages for dedicated distributions are made available. Until then, one should rather go for the installation script rather than official precompiled packages.

Also, one might want to know why this script installs so many low level packages such as Xlib, xproto and so on. In fact, it was decided to keep the number of required preinstalled dependencies to a minimum (including compiling tools such as g++, gfortran, autotools etc...) and to compile everything from scratch. The script was conceived so that everything can be built from a very basic configuration, e.g. from a fresh Ubuntu installation, with build-essentials, g77, and subversion the only required tools before a user may proceed with the installation of OpenViBE.

On Linux, MATLAB filter keeps saying 'Can't start MATLAB engine', what do I do ?

In order to get MATLAB filter to work properly on Linux, you need csh to be installed. This is not always the case, notably on Ubuntu distributions.

How many questions does this FAQ contains ?

You will be asked this question when you request support from the development team, in order to make sure you actually read this FAQ! (the answer to this question currently is 18!)