• 7 Javascript EEG Mind Reading Libraries for 2018
  • By Gilad Shoham
  • The Nuggets translation Project
  • Permanent link to this article: github.com/xitu/gold-m…
  • Translator: geniusq1981
  • Proofreader: Park- Ma, Huangyuanzhen

JavaScript library for exploring human brain signals to achieve mind reading.

“Isn’t this cool headgear?”

Electroencephalography (EEG) is a method of detecting bioelectrical activity in the human brain. It could be used to detect human conditions, such as epilepsy or brain tumors, to study the link between brain activity and cognition, or to learn how the brain responds to external stimuli, such as music or images.

Although this approach is far from mature compared with other approaches, it could be useful in some ways — by using external devices (such as robot armies armed with laser weapons) to translate brain activity into behaviour.

MathLab, Python, and R are all popular languages in the field of eeg signal development, led by projects like openBCI. But just like other areas, such as IOT, ML, and other areas of research, Javascript will also be involved.

As part of our work at Bit, we’ve been trying to find cutting-edge applications for Javascript. So, here are some really cool Javascript libraries and examples we found for handling eeg. You are welcome to provide other useful projects!

1. Muse-js

An example can be found from this article: medium.com/@urish/reac…

Muse-js is a Javasript library (using Web Bluetooth) that matches the 2016 Muse EEG helmet. Inspired by the Muse-LSL Python library and compiled by @urishaked, Muse-JS aims to control web pages directly from the human brain. Why not?

Muse-js allows Web developers to connect, analyze, or visualize EEG data through browsers, RxJs, and tools like Angular. In addition to processing “normal” eeg signals and sending them to the web, Muse-JS can also process eeg signals related to eye movement, which is not only super cool, but also very helpful for cutting-edge research on human cognition. Give it a try.

  • urish/muse-js: MUSe-JS — Muse 2016 head HEADSET Javascript library (using Web Bluetooth)

  • Reactive Brain WavesHow to discover your brain using RxJS, Angular, and Web Bluetooth with a eeg helmet

2. Wits

As part of the Brain-Bits project, WITS is a Node.js library that reads EEG signals from the Emotiv EPOC EEG helmet. It is implemented by the native C module (based on OpenYou/Emokit-C) and processes the raw EEG data stream from 14 electrodes at a sampling rate of 128Hz, and provides a rich interface for the end user. Here’s an example. Try it out.

const mind = require('wits')
mind.open()
mind.read(console.log)
Copy the code
  • dashersw/witsWits – A Node.js library that uses the Emotiv EPOC brain helmet to read minds

3. Brain-monitor

Brain-monitor is actually a terminal application written in Javascript that displays EEG signals in real time. It works in conjunction with the Emotiv EPOC EEG helmet, analyzing the raw EEG signals from 14 electrodes at a sampling rate of 128Hz and processing additional information, such as head orientation and even the charge of the helmet. This is a good choice for developers who prefer to use the command line.

  • dashersw/brain-monitor: _brain-monitor – a terminal application written in Node.js that displays eeg signals in real time

4. Brain-bits

Created by the developers of WITS and Brain-Monitor, Brain-Bits is a P300 online spelling system for the Emotiv eeg headset. This project is based on the Electron application, with the back-end running Node and the front-end using vue.js, using the native module of Node.js and brain.js to process the neural network, and using D3 to map the EEG. You can see a live demo and learn more at the developer’s presentation on the 2018 Amsterdam JS forum.

  • dashersw/brain-bits: _brain-bits — A P300 online spelling system for the Emotiv eeg headset. Written in Node.js, the GUI is…

5. EEG-101

Eeg-101 is an interactive neuroscience tutorial application that uses Muse and React Native to teach the basics of EEG and BCI. This includes where signals come from, how the device works and how to process the data. Developed an Android application using React Native. The project includes a generic binary classifier for EEG data that uses the LibMuse Java API to capture data streams from Muse helmets. It’s a good way to pick up and play electrical signals from the brain.

  • NeuroTechX/eeg-101: _EEG-101 — Interactive neuroscience tutorial application that uses Muse and Reac Native to teach the basics of EEG and BCI.

6. EEG pipes

This project provides a pipelinable RxJS operator for processing EEG data in Node and browser environments, including functions such as FFT, power spectral density (PSD) and power bandwidth, buffering and Epoching, IIR filters, etc. Note that an EEG Observable is needed. You can use RxJS fromEvent to push callback events into the Observable stream. Try it out.

  • neurosity/eeg-pipes: _EEG-Pipes — A pipelinable RxJS operator for processing EEG data in nodes and browsers

7. Open BCI & JS

Open BCI is an Open source project that provides a brain-computer interface and low-cost hardware. Created by a development team of engineers, researchers and manufacturers, they want to “share an unwavering passion for using eeg signals to understand and expand more deeply who we are”.

Based on this, it provides a foundation for various eeg related hardware and software implementations. There are some great Javascript implementations that use Everything from Node.js to Angular for EEG processing, visualization, and more. Here are some examples.

  • [Pwstegman /WebBCI: _WebBCI — : Bar_chart: eeg Signal Processing Based on JavaScript](github.com/pwstegman/W…)

  • NeuroJS/openbci-dashboard: _OpenBCI – Dashboard – a full-stack Javascript application that gets and visualizes OpenBCI EEG data

  • neurosity/openbci-observable: _openBci-Observable — Making OpenBCI for Node Reactive_github.com

  • alexcastillo/angular-openbci-rx: _angular-OpenBCI-rx — Use Angular 4 to visualize temporal EEG data


Also check out:

  • karan/brain2music: _brain2music — : Musical note: Brain wave data real-time music conversion (more like noise)

  • NeuroJS/topogrid: _Topogrid — javascript Library for Topographic EEG Plots


Meet a Bit

Bit helps your team build applications quickly by importing components and modules into build modules, which are easy to share, develop, and build new projects anywhere. Use Javascript, React, or some other way to try out Bit.

  • Bit – Share and create cost componentsBits help you share, discover, and use code components across projects and applications to create new features and more…

Learn more about

  • Monorepos Made Easier with Bit and NPM: How to create Monorepos more easily using Bit and NPM

  • Write GraphQL APIs on Node with MongoDBHow to write GraphQL APIs using Node.js and MongoDB

  • 11 Javascript Utility Libraries You Should Know In 2018: 11 useful Javascript toolkits to speed up development

If you find any mistakes in your translation or other areas that need to be improved, you are welcome to the Nuggets Translation Program to revise and PR your translation, and you can also get the corresponding reward points. The permanent link to this article at the beginning of this article is the MarkDown link to this article on GitHub.


The Nuggets Translation Project is a community that translates quality Internet technical articles from English sharing articles on nuggets. The content covers Android, iOS, front-end, back-end, blockchain, products, design, artificial intelligence and other fields. If you want to see more high-quality translation, please continue to pay attention to the Translation plan of Digging Gold, the official Weibo, Zhihu column.