Frequently Asked Questions


    General

    What is OpenViBE ?

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

    What does the ViBE stand for ?

    Intially, OpenViBE stood for “Open Virtual Brain Environment”. We no longer want to limit the use of OpenViBE to Virtual Environments. So you could now just take OpenViBE as a noun, it is no longer an acronym :)

    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 development began in 2006. Today, it offers several complete processing pipelines. It has been successfully used by authors in different contexts, including motor imagery interactions and neurofeedback experiments. Some functionalities are still missing but the plugin architecture should facilitate the integration of new functionalities while limiting the number of necessary changes to the API. Additionally, external contributions enlarging OpenViBE functionalities are welcomed. For now, this software should be considered as being in alpha stage with a reasonably stable API.

    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 documents and tutorials are dedicated to explaining the use of the platform and its associated tools. If still having problems after this reading, you can contact the community to discuss the problem at the forums.

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

    If you think you found a bug, please first test that the bug occurs also with the latest OpenViBE release or SVN version. If yes, please take a few minutes to fill a bug report at http://openvibe.inria.fr/tracker/bug_report_page.php . Before posting about a bug, please check that your bug is not already listed on the tracker. If you really want the bug fixed, it is not enough to briefly tell us there is one. OpenViBE engineers will need the following materials to attempt to fix the bug:
    • Detailed information of the conditions in which the bug occured. Please describe your OpenViBE version, your hardware, your operating system and your build environment (if you compiled Openvibe yourself).
    • If the problem occurred with a scenario: First, please prune the scenario to the smallest/simplest possible one that reproduces the issue. Then, send us the pruned scenario with all the materials it needs to run. We need the scenario .xml as well as all the data and config files that the used boxes rely on.
    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 bug reports
    • support : you can provide help to the community by participating on the the forum and joining the IRC channel
    • packaging : you can build RPMs, DEBs or whatever package your linux distro uses
    Developers you should start by reading the contribution rules. If you still have questions, you can also Contact us.

    I am a scientist and I want to cite OpenViBE, how should I proceed ?

    Please use the following refence to cite OpenViBE in your publications : Y. Renard, F. Lotte, G. Gibert, M. Congedo, E. Maby, V. Delannoy, O. Bertrand, A. Lécuyer, “OpenViBE: An Open-Source Software Platform to Design, Test and Use Brain-Computer Interfaces in Real and Virtual Environments”, Presence : teleoperators and virtual environments, vol. 19, no 1, 2010

    How can I learn more about BCI?

    Fabien Lotte has collected an excellent list of introductory papers, including links. You can find the bibliography here.

    Devices and drivers

    Which EEG devices work with OpenViBE?

    Please see the list here.

    Which EEG device should I buy?

    All devices have different specifications like number of electrodes, sampling frequency or quality of signal. You should try to get the best device which suits your needs for the price you are ready to pay. We can not recommend one brand over another, however our forum user Stefanj has compiled a list of more affordable hardware in this list. This list does not include the more expensive medical hardware though.

    How can I use the Emotiv Driver ?

    We provide an acquisition driver for the Emotiv EPOC headset, with some constraints:
    • You must have the Emotiv Research SDK installed on your computer
    • When using the driver for the first time, you need to specify the place where the SKD is installed
    If you compile OpenViBE from source, note that the build script looks for the SDK (edk.h) in :
    • C:\Program Files (x86)\Emotiv Research Edition SDK_v1.0.0.4-PREMIUM
    • C:\Program Files\Emotiv Research Edition SDK_v1.0.0.4-PREMIUM
    If you want to modify this path to match your actual installation path, modify before compilation the file cmake-modules/FindThirdPartyEmotivAPI.cmake, line 9:
    ...
    FIND_PATH(PATH_EmotivAPI edk.h  PATHS [path-to-edk.h]
    ...
    FIND_LIBRARY(LIB_EmotivAPI edk PATHS [path-to-edk.lib])
    ...
    The Emotiv driver is also available in the windows installer version since 0.12.0 (oct.2011). This driver has been tested with Emotiv Research SDK version 1.0.0.3 and 1.0.0.4.

    How can I acquire from multiple Emotiv EPOC on the same computer ?

    Since OpenViBE 0.14.0, it’s possible to acquire EEG signals from multiple EPOC headsets on the same computer with OpenViBE, thanks to TPAC, one of our contributors on the forum. Here is the procedure for 2 headsets :
    • Plug the 2 USB dongles in your computer (from Research Edition Headsets).
    • Launch 2 Acquisition Servers.
    • Configure the two Emotiv EPOC drivers with different User ID (0 for the first headset, and 1 for the second headset).
    • Configure the 2 servers so they send the data on different connection ports, e.g. 1024 and 1025.
    • Connect and play the acquisitions. You are now able to acquire the 2 signals through acquisition client boxes (with connection ports 1024 and 1025).

    I can’t connect my MindSet/MindWave to the Neurosky Driver

    Several users reported having problems connecting the Neurosky MindWave or MindSet headsets to OpenViBE. The Neurosky driver in OpenViBE can theoretically communicate with any device that uses the Thinkgear protocol from Neurosky. This includes the MindSet and the MindWave. As recommended in the MindSet documentation (Feb. 2011) we use low value COM port for the Bluetooth connection. The driver search for headsets on port COM 1 to 16. Please verify that your device is installed on a COM port lower than 16. A recurrent issue also appears with the bluetooth connection manager on Windows. As reported by Marco (mmarchesi) on our forums: “I’ve discovered an unusual COM driver configuration in my Device Manager on Windows (Control Panel -> Hardware and Sound -> Device Manager). Windows tries to work with an internal “USB-SERIAL CH340″ driver instead of the correct Mindwave USB Adaptor (typically installed in “C:/Program Files/NeuroSky/MindWave Driver” folder. This issue has been reported as well last December: http://support.neurosky.com/kb/mindwave/thinkgear-connector-is-disconnecting-often So, once I have changed the driver, the acquisition server worked perfectly with Mindwave!” Please check your Window Device Manager if you experience the same problem.

    I want to use “partially supported” acquisition drivers but they do not appear in the acquisition server driver combo box.

    Those drivers are flagged as unstable in the sense they will work only in some specific conditions. In order to make them appear, you will have to edit the configuration file and add it this line
    AcquisitionServer_ShowUnstable = true
    Your configuration file is $HOME/.openviberc under Linux and %USERPROFILE%/openvibe.conf under windows. Please come on the forum / IRC to discuss what conditions should be considered in order to use those drivers successfully.

    I want to use “partially supported – unstable” boxes but they do not appear in the designer box tree.

    Those boxes are flagged as unstable in the sense they will work only in some specific conditions. In order to make them appear, you will have to edit the configuration file and add it this line
    Designer_ShowUnstable = true
    Your configuration file is $HOME/.openviberc under linux and %USERPROFILE%/openvibe.conf under windows. Please come on the forum / IRC to discuss what conditions should be considered in order to use those boxes successfully.

    Compiling and installing OpenViBE

    I have problems compiling OpenViBE, what should I do ?

    First, make sure you followed the right install procedure described in build instructions. Contact us on the forum if problems persist. You will be able to get some help from the people involved in this project.

    Is it possible to build and run OpenViBE with Eclipse ?

    Well, it is almost possible yes :) After, you have made a project for OpenViBE under Eclipse. you can used the OpenViBE commands files with the Eclipse’s function “External Tools”. All configuration is located in the menu “Run > External Tools > External Tools Configuration…”. First, make a new “Program” and choose a name for it.
    • Example: “Openvibe-Build”
    In the tab “Main”, fill next fields (for Linux):
    • Location: “${workspace_loc:/openvibe/trunk/scripts/linux-build}”
    • Working directory: “${workspace_loc:/openvibe/trunk/scripts}”
    For Windows, it is the same process but the value of fields change.
    • Location: “${workspace_loc:/openvibe/trunk/scripts/win32-build.cmd}”
    • Working directory: “${workspace_loc:/openvibe/trunk/scripts}”
    Now, if you want run OpenViBE under Eclipse it is the same process. For Linux, only one “Program” is necessary. create a new “Program” with a different name and fill fields.
    • Example name : “openvibe-linux-test”
    • Location: “${workspace_loc:/openvibe/trunk/scripts/linux-test}”
    • Working directory: “${workspace_loc:/openvibe/trunk/scripts}”
    For Windows, if you want lauch the “Acquisition Server” and the “Designer”, you must create 2 “Programs”:
    • Example name : “openvibe-test-acquisition-server”
    • Location: “${workspace_loc:/openvibe/trunk/dist/test-acquisition-server.cmd}”
    • Working directory: “${workspace_loc:/openvibe/trunk/dist}”
    And for the “Designer”:
    • Example name : “openvibe-test-designer”
    • Location: “${workspace_loc:/openvibe/trunk/dist/test-designer.cmd}”
    • Working directory: “${workspace_loc:/openvibe/trunk/dist}”
    Then, you can launch the builder and runners with this same menu “Run > External Tools > External Tools Configuration…”. Select the “Program” you want execute and use the button “Run” at the down of the dialog box.

    Compilation crashes on Windows with : fatal error C1083: Cannot open compiler generated file: ‘some-file’: No such file or directory

    This ” No such file or directory” error on windows is frequent for users using source code packages. This problem comes from Windows that can’t handle files in a too long path. Please avoid using too long path to put the source code in, and your compilation problem should be solved. Bad example : C:\my-work\bci-project\openvibe\source-code\openvibe-0.13.1-svn3210-src\openvibe-0.13.1-svn3210-src\<openvibe sources> Good example : C:\my-work\openvibe-0.13.1-svn3210-src\<openvibe sources>

    Compiling OpenViBE takes far too long especially on Windows, what could I do to speed it up ?

    You have to build the whole software at least once… Then suppose you are working on a classification plugin, simply edit your win32-init_env_command.cmd or linux-init_env_command and remove all the projects of the build order (at the end of the file) except the openvibe classification plugin project. Now when you call win32-build.cmd or linux-build, only your project will be checked, compiled and installed. Warning: You should use this functionnality with care because it does not guarantee a perfect behavior. For example, if you are modifying the toolkit, all the projects depending on the toolkit will have to be rebuilt. Additionnaly, if you clean everything with win32-clean.cmd or linux-clean, you will have to reactivate all the projects back in win32-init_env_command.cmd or linux-init_env_command to have a new working environment. You’ve been warned, use with care !

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

    Do not forget to clean everything before editing your win32-init_env_command.cmd or linux-init_env_command to switch your developement to other branches. If you do not 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. If you want to clean just one project, go in local-tmp folder and delete the corresponding subfolder. 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

    How are the dependencies handled on Linux ?

    On Linux, all dependencies are installed by the linux-install_dependencies script. Most of the dependencies are installed natively – i.e.: using the package system which comes with the system. This is apt-get on Ubuntu and rpm on Fedora. If no native package system is found the script will attempt do download and install the dependencies manually.

    What dependencies will be installed on Linux ?

    Natively installed dependencies are :
    • subversion
    • doxygen
    • make
    • automake
    • autoconf
    • cmake
    • unzip
    • gcc
    • g++
    • libgtk2.0
    • libglade2
    • libgsl
    • libexpat
    • libreadline
    • libzzip
    • libtool
    • libxaw
    • libpcre
    • libfreeimage
    • libglu-mesa
    • libalut
    • libvorbis
    The latest stable version of each of these packages will be installed. Once the native dependencies are installed, the script will proceed to download, compile and install dependencies of which OpenViBE needs a specific version. These are installed into the scripts/software directory. Additional dependencies are these :
    • boost
    • OIS
    • CEGUI
    • Ogre
    • VRPN
    • libitpp

    Why do I need root privileges to install OpenViBE on Linux ?

    Some of the dependencies are installed by native package systems (such as apt-get or rpm), in order to use these you will need root privileges. For more details see the next question.

    Miscellaneous questions

    Are there any existing connections with other BCI platforms ?

    A bridge with TurboFieldTrip is currently being implemented by a member of the community. 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, d3dx9_38.dll or d3dx9_42.dll what should I do ?

    This message is a generic message that Windows prints when a DLL should be loaded and can not be found. The d3dx9_33.dll, d3dx9_38.dll and d3dx9_42.dll files 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 careful with the release date because you can still find 2004 versions of DirectX and these versions may be proposed first. Anyway, if you do not want to or can not 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.

    On Windows, I can drag and drop the boxes but I can’t select / click / connect / configure anything, what should I do ?

    Your screen is probably configured with a bad color depth. You should consider changing the color depth to 24 or 32 bits. In order to do that, right click on the desktop, chose “properties” and go in the “parameters” tab. You can change the color depth on the right side of this panel. Restart OpenViBE when the change is done.

    How do I use the MATLAB filter box ?

    This box is still under development, with help from people from the community. Since 0.12.0 (oct 2011), this box is available in the Windows installer version, but will only work if you have MATLAB installed on your computer. To be used, the box must be configured with the path to matlab executable matlab.exe and the path to your working directory (i.e. where the matlab scripts are located). The current limitations include:
    • Fixed box inputs and outputs (1 streamed matrix / 1 stimulation)
    • The process script is called only when a streamed matrix AND a stimulation chunks have been received on the inputs. You must connect both inputs.
    • Only works with MATLAB version 32 bits
    • Opens the MATLAB Engine each time a scenario is played, resulting in a noticeable delay

    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.