Something went wrong. Try again.
An easy-to-use platform for EEG experimentation in the classroom
Something went wrong. Try again.
TypeScript 80%
JavaScript 19%
Python 1%
CSS <1%
HTML <1%
<1%
README.md
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 installdownloads ~300 MB of Pyodide WASM files on first run. This is expected and only happens once.
Installing from Source (for developers) #
- Clone the repo:
git clone https://github.com/makebrainwaves/BrainWaves.git
cd BrainWaves
- 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