Skip to content

SnakeEye-sudo/VaakSetu

Repository files navigation

🧠 VaakSetu — Browser-Based Brain-Computer Interface

वाक् (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.

License: MIT DOI ORCID PWA TensorFlow.js


🎯 The Problem

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.


✨ Features

BCI Paradigms

  • 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

Intelligence

  • 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

Communication

  • 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

Hardware

  • 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

Deployment

  • 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

🚀 Quick Start

# Clone
git clone https://github.com/SnakeEye-sudo/VaakSetu.git
cd VaakSetu

# Install
npm install

# Run (demo mode — no hardware needed)
npm run dev

Open http://localhost:5173 → Click BCI Interface → Use Simulator mode to explore.


🧪 How It Works

P300 Paradigm

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

SSVEP Paradigm

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)

Signal Pipeline

Raw EEG → 50Hz Notch Filter → 0.5–40Hz Bandpass → Epoch → Feature Extraction → TF.js Model → Decision

🛠️ Tech Stack

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

📦 Compatible EEG Devices

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).


📁 Project Structure

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

🔬 Research & Citation

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


🤝 Contributing

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

⚠️ Disclaimer

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.


📄 License

MIT © 2026 Sangam Krishna — ORCID 0009-0006-9660-6059

About

Open-source browser-based Brain-Computer Interface for paralyzed patients — P300 + SSVEP + TensorFlow.js

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors