BCI Overview¶
UnisonOS treats brain-computer interface (BCI) input as a first-class modality alongside keyboard, pointer, voice, gaze, and touch. This page summarizes current capabilities, repos, and how to try it in devstack.
What exists today¶
- Service:
unison-io-bci - Ingest: LSL streams, BLE/serial discovery with seeded profiles (Muse-S/Muse-2/OpenBCI) and streaming stubs.
- Decoders: window/RMS, per-device thresholds; registry exposed via
/bci/decoders. - Endpoints:
/bci/devices{attach,get},/bci/decoders,/bci/intents(WS),/bci/raw(WS, stream/limit),/bci/export(XDF/EDF),/bci/hid-map, health/metrics. - Security: JWT/consent middleware; scopes
bci.intent.subscribe,bci.raw.read,bci.export,bci.hid.map,bci.device.pair,bci.profile.manage. - Extras: caps.report emission, HID mapping, raw snapshots, device profile registry, parsers for Muse/OpenBCI CSV.
- Specs/Docs:
unison-docs/dev/BCI_INTEGRATION.md,unison-docs/dev/specs/bci-permissions.md,unison-docs/dev/specs/schemas/event-envelope.md(bci.intent,input.hid),unison-docs/dev/startup-modality.md.
Try it in devstack (MVP)¶
1) Clone workspace and start devstack: docker compose up io-bci intent-graph orchestrator ... from unison-devstack.
2) unison-io-bci endpoints (default ports 8089/8094 in devstack):
- GET /health, GET /ready
- WS /bci/intents (requires bci.intent.subscribe scope)
- WS /bci/raw?stream=<id>&limit=100 (requires bci.raw.read)
- POST /bci/devices/attach with optional decoder config
- GET /bci/decoders
- POST /bci/export (requires bci.export)
- POST /bci/hid-map (requires bci.hid.map)
3) Device profiles auto-attach on BLE/serial detection; LSL streams are ingested automatically.
Security & privacy¶
- Default scopes are required for raw, intents, export, HID; consent and policy are expected to gate these.
- Raw data stays local; exports are opt-in and scoped; profiles/calibration should be stored encrypted (
unison-context/unison-storage).
Roadmap highlights¶
- Add tested BLE/serial streaming for specific headsets, richer decoders (SSVEP/SMR), per-user profiles/HID mappings.
- Linux/WSL CI to run
unison-io-bcitests (auth/export/raw). - UI/UX hooks in renderer/VDI for BCI control mode and indicators.