The software provided from Emotiv is not open source, and raw data from each sensor is not available. Instead, their API allows access to features such as accelerometer and gyroscope, performance (excitement, relaxation, etc.), and expressions (wink, frown, smile, etc.), mental commands (push, pull, lift, etc.).
To make the brain-machine interface work, an end user needs first to train the mental commands. Once finished, you can then use epoc.js, created by Charlie Gerard , a software developer at ThoughtWorks, to work with the Emotiv API, as well as use the Emotiv emulator .
Gerard has used epoc.js to create several demonstrations, including a brain keyboard, navigation of a 3D space using WebVR, and flying a drone.
There is a range of brain waves which may get detected, of which different types of apps may focus their efforts:
- Delta (0.5-4 Hz) - deep dreamless sleep, repair
- Theta (4-8 Hz) - creativity, dreams, meditations
- Alpha (8-13 Hz) - physical and mental relaxation
- Beta (13-32 Hz) - awake, conscious, thinking
- Gamma (32-100 Hz) - learning, problem-solving
Gerard explains that some of the current limits to brain-sensor controller software include per-user training, initial latency, accuracy for non-invasive hardware, and social acceptance.
Epoc.js provides a variety of device data and events for developers to interact with the Emotiv brain sensors.
- Wits - Node.js library that reads your mind with the Emotiv EPOC EEG headset
- OpenBCI Ganglion - WebBluetooth client for the Ganglion EEG board by OpenBCI
- Brain Bits - A P300 online spelling mechanism for Emotiv headsets
While in its early stages, brain-machine interface technology is advancing rapidly and offers a variety of possible uses.
Epoc.js is an open source software available under the MIT license. Contributions and feedback are encouraged via the Epoc.js GitHub project .