An easy-to-use platform for EEG experimentation in the classroom
TypeScript 79.6%
JavaScript 18.6%
Python 1.2%
CSS 0.3%
HTML 0.2%
Other 0.1%
657 1 0

Clone this repository

https://tangled.org/teonbrooks.com/BrainWaves https://tangled.org/did:plc:yl7wcldipsfnjdww2jg5mnrv/BrainWaves
git@tangled.org:teonbrooks.com/BrainWaves git@tangled.org:did:plc:yl7wcldipsfnjdww2jg5mnrv/BrainWaves

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

banner

An easy-to-use platform for EEG experimentation in the classroom

Features#

  • Design, run, and analyze an experiment using real EEG data all in one desktop app
  • Investigate visual event-related brain waves (ERPs)
  • Supports Emotiv Epoc+ and Muse devices

Screenshots#

Prerequisites#

  • Node.js >= 18
  • npm >= 9
  • No Python installation required — EEG analysis runs via Pyodide (Python compiled to WebAssembly), which is downloaded automatically on first npm install.

Note: npm install downloads ~300 MB of Pyodide WASM files on first run. This is expected and only happens once.

Installing from Source (for developers)#

  1. Clone the repo:
git clone https://github.com/makebrainwaves/BrainWaves.git
cd BrainWaves
  1. Install dependencies (this also installs Pyodide and patches certain deps):
npm install

Development#

Start the app with hot-reload using electron-vite:

npm run dev

Testing#

npm test           # run all Vitest tests once
npm run test:watch # run tests in watch mode
npm run test-all   # lint + typecheck + build + test (full CI check)

Typecheck & Lint#

npm run typecheck  # TypeScript type check (no emit)
npm run lint       # ESLint
npm run lint-fix   # ESLint + Prettier auto-fix

Packaging#

Build only (no installer):

npm run build

Package for the current platform:

npm run package

Package for specific platforms:

npm run package-mac    # macOS .dmg
npm run package-win    # Windows .exe (x64)
npm run package-linux  # Linux
npm run package-all    # all platforms (requires cross-platform build tools)

For cross-platform builds, see electron-builder multi-platform docs.

To debug a production build with DevTools:

DEBUG_PROD=true npm run package

Contributing#

if you are interested in fixing issues with the BrainWaves app or helping us add additional features, that's amazing! Please see our How to Contribute.

Also, read our Code of Conduct

License#

MIT