Epoc.js: Open Source JavaScript Brain Sensor Controller Software

The recent transition from science fiction to reality for the brain-machine Interface, coupled with Atwood’s Law, “any application that can be written in JavaScript, will eventually be written in JavaScript,” had led to Epoc.js, an open source control software for the Emotiv line of brain sensors.

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.).

Epoc.js – An open source software

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.

Other interesting JavaScript efforts in the brain-machine interface include:

  • Wits – Node.js library that reads your mind with the Emotiv EPOC EEG headset
  • BCI.js – Library for EEG-based brain-computer interface (BCI) design with JavaScript and Node.js, with methods for signal processing and machine learning, data manipulation, data windowing, and networking
  • 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.

Recent Articles

Frontend Tools 2019 survey: jQuery Threatened

Frontend Tools 2019 survey showed that React is voted the most important as well as the most widely used JavaScript tool. For the first...

PHP 8.0: Vote on Union Types ended

PHP 8.0 is scheduled for 2020. Recently, the PHP development team in PHP Internals voted on Union Types as a new feature for PHP....

Angular 9 Next versions: Bazel Schematics switched to Ivy

With Angular 9 next versions, the upcoming major version of the JavaScript framework has again received a number of feature updates, notably the innovations...

HP enters strategic partnership with ExpressVPN to increase security offerings on consumer laptops

In light of the recent challenges faced by the cryptocurrency space and the technological sphere at large, security has become a serious issue among...

Node.js 12.12: New flag for easier electron integration

Node.js 12.12 is here to bring a new flag to help work with embedders like Electron. In addition, source maps are now available for...

Related Stories

1 Comment

Leave A Reply

Please enter your comment!
Please enter your name here