- NB: this document is work in progress. Details may change (doc updated 28.Jul.2017).
OpenViBE 2.0 BETA has been released! n.b. At the moment, the latest stable OpenViBE is 1.3.0.
(tl\;dr : Downloads here)
OpenViBE 2.0 is a major new release of one of the world’s leading BCI software systems. OpenViBE 2.0 is the first OpenViBE to be based on the ‘OpenViBE SDK’, a result of 7+7 man years of expert software development and quality assurance work from Inria (France) and Mensia Technologies during 2015-2017 in the scope of a project called CertiViBE. The SDK started from the previous OpenViBE kernel and subset of critical components and pushed them further in a scope of a rigorous software development process aiming for the SDK to be usable as core technology in medically certified EEG products (for example the Mensia Koala).
The CertiViBE project
The largest improvements introduced in OpenViBE 2.0 have been made in the CertiViBE project, a joint effort between Inria and Mensia Technologies. The CertiViBE project aims to enable building medical devices based on OpenViBE (standard IEC 62304:2006 Medical device software). A significant amount of the work has centered on robustness, quality assurance, predictable behavior and error handling of the software, as well as documentation and testing.
In the scope of the project, the OpenViBE kernel has been heavily refactored and simplified, as well as optimized, to allow easier maintainability, scalability and future development with a more gentle learning curve for new software developers. In addition, the project has produced extensive documentation such as Software Definition, Software Requirements and Software Architecture documents. Such documentation has not been previously available for the OpenViBE platform. In addition, an extensive amount of new tests have been specified and implemented. The parts of documentation and tests that intend to serve medical certification purposes will remain proprietary and be available on confidential, contractual basis. However, the technical documentation that is relevant to the scientific audiences and more casual BCI hackers will be released to the public along with the source code of the SDK.
OpenViBE 2.0 will consist of OpenViBE SDK (kernel, specific modules and plugins) plus applications such as Acquisition Server and Designer. Like previous OpenViBEs, 2.0 is shipped with additional plugins, tutorials and demos. For the end user, feature highlights of the 2.0 version are the following,
- New advanced visualization boxes contributed by Mensia Technologies: 2D Topography, 3D Cubes, 3D Tomographic Visualization, 3D Topography, Continuous Bars, Continuous Bitmap, Continuous Multi Oscilloscope, Continuous XYZ plot, Instant Bars, Instant Bitmap, Instant Bitmap (3D Stream), Instant Multi Oscilloscope, Instant Oscilloscope, Instant XYZ Plot, Stacked Bitmap (Horizontal), Stacked Bitmap (Vertical)
- Metaboxes, a technique to wrap ‘scenarios inside boxes’
- Scenarios can now have local settings
- New boxes: zero crossing detector, resampling
- Improved boxes: CSV Reader, CSV Writer, Temporal Filter, xDawn
- Scenario player without GUI allows easier use of OpenViBE scenarios in embedded systems without any graphical dependency (no need for GTK/CEGUI/Ogre)
- OpenViBE kernel and Designer no longer depend on Ogre (demos and 3rd party apps can still use it)
- Improved error handling
- Improved documentation
- Improved Designer interface
- New supported stream type: Time/Frequency Matrix
- The maximum fast forward speed in Designer can now be controlled
- Lots of bugfixes
- Performance improvements and code streamlining
- Drivers: Brain Products LiveAmp driver (contributed by Brain Products GmbH)
- For developers: C++11 is now allowed
- Faster Windows command line builds with Ninja
- New flag system : It is possible to define custom flags to add to boxes and algorithms
- Modern Windows system (7/8/10), Linux Ubuntu 14.04 & 16.04 or Linux Fedora (version TBD)
- For Windows developers, Visual Studio 2013 is required. VS 2010 is no longer supported.
Limitations of the BETA version
- Pressing F1 with a box selected will not produce the documentation. You may find the box documentation manually from here.
- Mensia Acquisition Library is missing (the contained drivers will not appear in Acquisition Server)
- OpenViBE Designer may not start if Python 3.4 is installed on Windows. If you wish to use Python, make sure Python 2.7 series is the only one installed on the machine. If you don’t care about Python, the issue can be avoided by deleting “C:/Program Files (x86)/openvibe-beta/bin/openvibe-plugins-contrib-python.dll”.
- There is no external access to the related git repositories yet (we give source code as .tar.gz at the moment)
- Although the OpenViBE SDK has been gone through a lot of testing, the release integration
(that adds the BCI tutorials, demo applications, some boxes, Designer and the Acquisition Server) has
not been thoroughly tested.
- The Inria continuous integration platform is not currently testing the OV 2.0 integration branch.
- Compilation and operation on Fedora has not been tested (likely needs some changes)
- The new kernel is much more strict about boxes conforming to OV standards, hence you will see more
warnings than before until these boxes are fixed to conform to the kernels’ expectations.
- In some tutorial scenarios, the data may not be correctly scaled for the Advanced Visualizations
- The Designer feature of modifying some box settings during play (e.g. modifiable temporal filter) is currently broken
- Produced technical documentation is not yet provided (architecture doc, etc)
- (channel sort in the Instant Bars doesn’t seem to work?)
When upgrading from previous version
OpenViBE 2.0 aims to be largely compatible with OpenViBE 1.3.0. Most previous features remain available and compatible. Previous third-party OpenViBE scenarios and drivers should work with little or no modifications, requiring not much more work than a normal major OpenViBE update. However, backwards compatibility has not been maintained in situations where it was estimated not to be worth the development cost.
Known incompatibilities introduced by OpenViBE 2.0 will include
1. Scenario and box related changes to do
- Voxel Display has been replaced with 3D Tomography
- 3D Topographic Map has been replaced with 3D Topography
- Power spectrum box is replaced by Instant Bars
- Time-frequency map box is replaced by Stacked Bitmap (Horizontal)
- The Temporal Filter box has been replaced with a new version. The previous INSERM box is still available.
- The xDAWN box has been replaced with a new version. The previous INRIA box is still available.
- The CSV Reader/Writer boxes have been replaced with new versions. The previous boxes are still available (the old boxes have the tag ‘deprecated’ in the box list). However, these old boxes may vanish from future openvibe versions.
- Configuration token Path_Samples is no longer available. Use Path_Data instead.
- Configuration token BuildType has been removed.
- Box mute has been replaced with box enable/disable toggles. In your custom scenarios, you may need to disable previously muted boxes manually.
- (Possibly more to be announced)
The warnings of the following kind occur when loading scenarios saved with a previous version. They can be safely ignored (unless your scenarios have relied on the box messaging feature which is no longer present):
[ WARNING ] Failed to validate xml: error [no declaration found for element 'MessageLinks'], line number  [ WARNING ] Importing scenario with legacy format: legacy scenarii might be deprecated in the future so upgrade to v1 format when possible
2. Dropped features
- Box messaging functionality has been removed
- Nonfunctional CoAdapt P300 source code is no longer included (get it from OV 0.18.0 if needed)
- Simple 3D Viewer box has been removed
3. Changes required to box code
If you have developed your own C++ boxes which are not part of the OpenViBE distribution, you may need to modify the boxes on the code level to accommodate non-backwards compatible changes made to the OpenViBE kernel. To see how the boxes have to be modified, look into some box in the ov distribution with similar characteristics. The required changes are as follows,
- Boxes that process input now must provide a valid processInput() implementation
- Boxes with visualizations need small code-level changes related to Visualization Context interface
- Boxes using Spectrum Stream need code-level changes due to changes in the stream specification
- Boxes with unstable flag will require trivial code-level changes (adding a header + replacing a value)
- The function getSettingValue() no longer expands tokens in the parameters. Either expand the tokens manually or use the FSettingValueAutoCast() function instead.
The following people contributed to the OpenViBE SDK and OpenViBE 2.0 during its planning and development (in alphabetic order),
Laurent Bonnet / Mensia
Jerome Chabrol / Inria
Morgane Fauvet / Mensia
Charles Garraud / Inria
Thierry Gaugry / Inria
Anatole Lecuyer / Inria
Jozef Legeny / Mensia
Jussi T. Lindgren / Inria
Benoit Perrin / Mensia
Alexis Placet / Mensia
Yann Renard / Mensia
Cedric Riou / Inria
Agnes Dos Santos / Mensia
OpenViBE 2.0 BETA including the OpenViBE SDK is available free of charge as Windows binary installer and multiplatform source code from the OpenViBE web site. The license is AGPL3.