An easy-to-use platform for EEG experimentation in the classroom
- 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
- 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 installdownloads ~300 MB of Pyodide WASM files on first run. This is expected and only happens once.
- Clone the repo:
git clone https://github.com/makebrainwaves/BrainWaves.git
cd BrainWaves- Install dependencies (this also installs Pyodide and patches certain deps):
npm installStart the app with hot-reload using electron-vite:
npm run devnpm 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)npm run typecheck # TypeScript type check (no emit)
npm run lint # ESLint
npm run lint-fix # ESLint + Prettier auto-fixBuild only (no installer):
npm run buildPackage for the current platform:
npm run packagePackage 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 packageif 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

