ブレイン・マシン・インタフェースに関するSFから現実への最近の動きと、Atwoodの法則「JavaScriptで書けるアプリケーションは、いずれJavaScriptで書かれる」が相まって、Epoc.jsが生まれた。これはオープンソースのEmotiv脳波センサー用コントロールソフトウェアだ。
Emotivが提供しているソフトウェアはオープンソースではなく、各センサーの生データは利用できない。その代わり、彼らのAPIは、加速度計、ジャイロスコープ、パフォーマンス(興奮、リラックスなど)、表情(ウインク、しかめっ面、スマイルなど)、メンタルコマンド(プッシュ、プル、リフトなど)にアクセスできる。
ブレイン・マシン・インタフェースを機能させるために、エンドユーザーはまず、メンタルコマンドをトレーニングする必要がある。それが終わったら、ThoughtWorksのソフトウェア開発者であるCharlie Gerard氏が作ったepoc.jsを使うことで、Emotiv APIを操作したり、Emotiv emulatorを利用することができる。
Gerard氏はepoc.jsを使って、ブレイン・キーボード、WebVRを用いた3D空間のナビゲーション、ドローン飛行などのデモを作成している。
検出できる脳波には範囲があり、各種アプリケーションはそれらに注意を傾けている。
- デルタ波 (0.5-4 Hz) - 深い夢を見ない眠り、修復
- シータ波 (4-8 Hz) - 創造性、夢、瞑想
- アルファ波 (8-13 Hz) - 肉体的および精神的なリラクゼーション
- ベータ波 (13-32 Hz) - 覚醒、意識、思考
- ガンマ波 (32-100 Hz) - 学習、問題解決
Gerard氏は、現状の脳波センサー・コントロールソフトウェアの制限について説明している。そこには、ユーザーごとのトレーニング、最初の待ち時間、非侵襲型ハードウェアの精度、社会的受容などが含まれる。
開発者がEmotiv脳波センサーとやり取りできるように、Epoc.jsは様々なデバイスデータおよびイベントを提供する。
ブレイン・マシン・インタフェースにおける興味深いJavaScriptの取り組みは他にもある。
- Wits - Emotiv EPOC EEGヘッドセットで頭の中を読むNode.jsライブラリ
- BCI.js - JavaScriptとNode.jsで設計されたEEGベースのBCI(Brain-Computer Interface)ライブラリ。信号処理と機械学習、データ操作、データウィンドウ処理、ネットワーキングのためのメソッドを備える。
- OpenBCI Ganglion - OpenBCIによるGanglion EEGボード用WebBluetoothクライアント
- Brain Bits - Emotivヘッドセット用のP300オンラインスペリングメカニズム実装
まだ初期段階だが、ブレイン・マシン・インタフェース技術は急速に進歩しており、その用途には様々な可能性がある。
Epoc.jsはMITライセンスのもと利用できるオープンソースソフトウェアだ。Epoc.js GitHubプロジェクト経由でコントリビューションとフィードバックを求めている。