A look back at 0.10.0 release

Ok, it’s been more than a month now since OpenViBE 0.10.0 has been released (actually 0.10.1 if considering Windows precompiled build 😉 ) and I am somehow late for my look at the release… and ironically, this release contains long time requested features…

A new BCI paradigm, welcome SSVEP

And yes, this has probably been one of the most frequent request since the first public release of OpenViBE in may 2009. SSVEP stands for Steady State Visual Evoked Potentials. This technique uses an external visual stimulation, typically a flickering target such as e.g. a chessboard. The flickering of this target must be done at a fixed frequency. For instance, a 60Hz screen can display a flickering target at 30Hz, showing one frame with the target and one frame without the target. When someone looks at such flickering target, an evoked potential is triggered in the occipital part of the brain which is basically a burst of the signal power in the frequency of stimulation and its harmonics… Based on this, suppose three targets are displayed with different frequencies, for instance 20, 15 and 12 Hz, then it is possible to know which of the three targets the user is looking and / or focusing on, and eventually trigger an interaction ! You just discovered SSVEP :) and you can actually test such BCI with OpenViBE now ! Indeed, this release includes a basic game with a spaceship that you control with three flickering targets. The first two targets turn the space ship left & right. The third target fires the weapon of the spaceship.

A basic game using SSVEP - The spaceship is controlled focusing on the red flickering targets !

Integrated console in the designer

Damn it, how many times did I ask a user requesting some help on the forum : “what does the console say ?” and he answers “[error] file not found – that might be the problem right ?” !!!
Fact is that coders are used to reading console and log stuff but users… I would not claim they don’t care. They just don’t know what it can be used for so don’t even notice them until developers point them out. And I must accept that sending all the warning & errors in the console is not the most user friendly way of getting the user’s attention. For this reason, the messages are now embedded in the designer as well. Even a pop-up window can appear if the log message supersedes the Information level. This new feature will probably help the users in founding the mistakes they made when creating a scenario – and hopefully save everyone’s time.

The new designer console - Those warning & error message are now more visible !

Common Spatial Patterns

Common Spatial Patterns is a really powerful algorithm to compute spatial filters that maximize the variance of the power of a signal for two mental tasks, thus resulting in better and more robust detection of each class when fed into a classifier. Actually, this kind of algorithm is really closed to xDAWN for p300 in the way it behaves. Just that Common Spatial Patterns works on band power better than temporal samples. This is a really common algorithm in BCI and I can’t resist putting this reference of Fabien Lotte’s for interested readers :
F. Lotte, C.T. Guan, “Spatially Regularized Common Spatial Patterns for EEG Classification”, International Conference on Pattern Recognition (ICPR’2010), pp. 3712-3715, 2010 (pdf)
The current implementation only supports two classes, so next step is to make it multi class as EEGLab did for instance :)

Developer tools

Last thing I want to focus on is the efforts that were made for developers… Indeed, boxes usually have redundant code for creating decoders / encoders and parse / encode streams. For this reason, the stream codecs have been embedded in toolkit classes as described in the dedicated tutorial. Mixed with the skeleton generator application, developing a new box simply consists in a dozen of clicks to generate the base code and finally happy hacking for the exact and only purpose of the box. I loved my linux bash script for generating code but I think I might turn to this skeleton generator application, really 😉

The skeleton generator application completely hides the boring steps of creating a box. You just have to focus on what is interesting now ;)

Closing words

Of course, I can’t list all the novelties of this release in detail but still… just based on those 4 examples, I feel like it’s an exceptional release, including major contributions from the community. Amazing !

One Comment to “A look back at 0.10.0 release”

  1. Mindcode 17 May 2011 at 11:32 pm #

    Back to the future… Nice release indeed !
    We always had major or minor improvements in the past releases, but this time these new features are highly visible imo. It’s good to focus not only on pure performance and capabilities, but also on interface or development-oriented features.

    long live openvibe !