वाक् (Vaak) = Speech · सेतु (Setu) = Bridge
VaakSetu is an open-source, browser-native Brain-Computer Interface (BCI) that enables people with ALS, locked-in syndrome, spinal cord injuries, and other severe motor disabilities to communicate — using a $50–100 consumer EEG headset instead of $10,000+ commercial alternatives.
| Metric | Commercial BCIs | VaakSetu |
|---|---|---|
| Cost | $3,000 – $15,000 | $50 – $100 hardware |
| Installation | Proprietary software + specialist | Any modern browser |
| Data privacy | Cloud-dependent | 100% on-device |
| Offline support | None | Full PWA |
| Open source | No | Yes (MIT) |
An estimated 5 million people globally live with conditions like ALS or locked-in syndrome that prevent speech. In India alone, with limited healthcare budgets and rural connectivity, existing solutions are completely out of reach. VaakSetu changes this.
- P300 Speller — 6×6 letter grid with row/column flashing. AI detects the P300 event-related potential (~300ms post-stimulus) to identify the intended letter
- SSVEP Control — 4 flickering targets at 7.5, 8.57, 10, 12 Hz. Gaze at a target → visual cortex produces steady-state response → FFT detects frequency → selection confirmed
- Personalized ML — TensorFlow.js model trains in-browser on the patient's own EEG data. No cloud, no privacy risk, WebGL-accelerated
- Artifact detection — Real-time eye blink, muscle, and power-line artifact flagging
- Signal quality monitoring — Per-channel impedance and quality visualization
- AAC Board — Phrase banks for common needs, emotions, medical, and conversation
- Text-to-Speech — Web Speech API with multi-language support (Hindi, regional Indian languages)
- Emergency commands — One-tap critical phrases (pain, breathing, help)
- Session history — Full communication log with timestamps
- WebSerial API — Direct USB connection to EEG hardware (no driver install)
- OpenBCI Cyton/Ganglion — 4–8 channel support, 200–250 Hz sample rate
- NeuroSky MindWave — Single-channel affordable option
- Built-in simulator — Realistic EEG simulation for testing without hardware
- Offline PWA — Install like a native app, works without internet
- Caregiver dashboard — Remote monitoring of EEG quality and communication history
- Zero infrastructure — No server, no database, no subscription
# Clone
git clone https://github.com/SnakeEye-sudo/VaakSetu.git
cd VaakSetu
# Install
npm install
# Run (demo mode — no hardware needed)
npm run devOpen http://localhost:5173 → Click BCI Interface → Use Simulator mode to explore.
1. 6×6 letter grid displayed
2. Rows and columns flash in random order
3. When row/col containing target letter flashes:
→ Positive ERP deflection at ~300ms (P300)
4. Repeat 5 times (signal averaging)
5. TF.js classifier scores each row/col
6. Row × Col intersection = predicted letter
1. 4 targets flicker at 7.5 / 8.57 / 10 / 12 Hz
2. User gazes at desired target
3. Visual cortex locks to that frequency (SSVEP)
4. Occipital EEG buffered for 2 seconds
5. FFT → dominant frequency → target selection
6. Dwell-time confirmation (2s gaze = selection)
Raw EEG → 50Hz Notch Filter → 0.5–40Hz Bandpass → Epoch → Feature Extraction → TF.js Model → Decision
| Layer | Technology |
|---|---|
| Frontend | React 19 + TypeScript + Vite |
| Styling | Tailwind CSS |
| Machine Learning | TensorFlow.js (WebGL backend) |
| Signal Processing | Butterworth filters (pure JS), FFT |
| Hardware | WebSerial API |
| Speech | Web Speech API |
| Offline | Service Worker + PWA |
| Routing | React Router v7 |
| Device | Price | Channels | Sample Rate |
|---|---|---|---|
| OpenBCI Cyton ⭐ | ~$999 | 8 | 250 Hz |
| OpenBCI Ganglion | ~$499 | 4 | 200 Hz |
| NeuroSky MindWave | ~$99 | 1 | 512 Hz |
| Simulator (built-in) | Free | 8 | 250 Hz |
Note: Cheaper EEG options ($30–80) like Muse S and BrainLink Lite work via Bluetooth but require a custom WebBluetooth adapter (planned for v2).
src/
├── lib/
│ ├── eeg/
│ │ ├── simulator.ts # Realistic EEG signal generator
│ │ ├── filters.ts # Butterworth + FFT + SSVEP detection
│ │ └── features.ts # P300/SSVEP feature extraction
│ ├── ml/
│ │ ├── p300Model.ts # TensorFlow.js P300 classifier
│ │ └── ssvepModel.ts # Frequency-based SSVEP classifier
│ └── webserial/
│ └── serialManager.ts # OpenBCI/NeuroSky serial protocol parser
├── hooks/
│ ├── useEEG.ts # EEG data stream hook
│ ├── useP300.ts # P300 speller state machine
│ └── useSSVEP.ts # SSVEP dwell-time selection
├── components/
│ ├── BCI/ # EEGVisualizer, P300Speller, SSVEPBoard
│ ├── Communication/ # CommunicationBoard, TextToSpeech
│ ├── Hardware/ # EEGConnector (WebSerial)
│ └── Layout/ # Navbar
└── pages/
├── Home.tsx
├── Patient.tsx # Main BCI interface
├── Caregiver.tsx # Remote monitoring dashboard
├── Train.tsx # Model training interface
└── About.tsx # Research & citations
This project is being prepared for submission to an open-access journal. If you use VaakSetu in your research, please cite:
@software{sangam2026vaaksetu,
author = {Sangam, Krishna},
title = {VaakSetu: A Browser-Based Brain-Computer Interface for
Augmentative and Alternative Communication},
year = {2026},
url = {https://github.com/SnakeEye-sudo/VaakSetu},
doi = {10.5281/zenodo.20514175},
orcid = {0009-0006-9660-6059},
license = {MIT}
}Author ORCID: 0009-0006-9660-6059
PRs welcome! Priority areas:
- WebBluetooth support for Muse S headset
- Motor imagery (MI) paradigm
- Multi-language AAC phrase banks (Hindi, Tamil, Telugu, Bengali)
- Clinical accuracy benchmarking
- Battery-powered portable setup guide
VaakSetu is assistive technology software, not a certified medical device. It is not FDA/CE/CDSCO approved for clinical use. For therapeutic applications, consult certified assistive technology specialists and neurologists. All patient data remains on-device.
MIT © 2026 Sangam Krishna — ORCID 0009-0006-9660-6059