BCI adaptive feedback loop — closed-loop neurofeedback for EEG training (Phase C) #23

Open
opened 2026-04-26 21:50:25 -07:00 by pyr0ball · 0 comments
Owner

Phase C: implement a closed-loop neurofeedback system to improve EEG motor imagery
training quality and accelerate learning.

How it works:

  1. Training UI shows a visual cue (arrow = imagine moving left hand)
  2. User imagines the movement for 4 seconds
  3. EEG classifier decodes the mental state in near-real-time (< 100ms latency)
  4. Training UI shows decoded state feedback: confidence bar, 'detected: left intent'
  5. User sees their EEG response; learns to produce clearer signals over trials
  6. High-confidence epochs auto-certified; low-confidence go to Avocet review queue

Implementation:

  • BCISource streams EEG frames to feature extractor at 250Hz
  • EEG classifier runs on rolling 1-second windows with 250ms overlap
  • Decoded state published to SignalBus (cf-core) as {'kind': 'eeg_state', 'class': 'left', 'confidence': 0.82}
  • Training UI subscribes to SignalBus SSE endpoint
  • Visual feedback: animated ring fills as confidence rises; color = decoded class

Accessibility:

  • Audio feedback option: rising tone = higher confidence (opt-in)
  • No pass/fail framing. 'Signal detected' not 'correct response'
  • Session length fully user-controlled. No trial quota pressure.
  • Rest periods are mandatory between blocks; Merlin enforces minimum rest (not maximum)

Why this matters: Traditional EEG training requires dozens of sessions with no
feedback between them. Real-time feedback has been shown to reduce training time by
30-50% in neurofeedback literature. This is the key UX differentiator over OpenBCI.

Depends on: cf-core signal_bus, BCISource, EEG motor imagery classifier (#19)

Phase C: implement a closed-loop neurofeedback system to improve EEG motor imagery training quality and accelerate learning. **How it works:** 1. Training UI shows a visual cue (arrow = imagine moving left hand) 2. User imagines the movement for 4 seconds 3. EEG classifier decodes the mental state in near-real-time (< 100ms latency) 4. Training UI shows decoded state feedback: confidence bar, 'detected: left intent' 5. User sees their EEG response; learns to produce clearer signals over trials 6. High-confidence epochs auto-certified; low-confidence go to Avocet review queue **Implementation:** - BCISource streams EEG frames to feature extractor at 250Hz - EEG classifier runs on rolling 1-second windows with 250ms overlap - Decoded state published to SignalBus (cf-core) as {'kind': 'eeg_state', 'class': 'left', 'confidence': 0.82} - Training UI subscribes to SignalBus SSE endpoint - Visual feedback: animated ring fills as confidence rises; color = decoded class **Accessibility:** - Audio feedback option: rising tone = higher confidence (opt-in) - No pass/fail framing. 'Signal detected' not 'correct response' - Session length fully user-controlled. No trial quota pressure. - Rest periods are mandatory between blocks; Merlin enforces minimum rest (not maximum) **Why this matters:** Traditional EEG training requires dozens of sessions with no feedback between them. Real-time feedback has been shown to reduce training time by 30-50% in neurofeedback literature. This is the key UX differentiator over OpenBCI. Depends on: cf-core signal_bus, BCISource, EEG motor imagery classifier (#19)
pyr0ball added this to the Phase C — EEG and EMG Hardware milestone 2026-04-26 21:50:25 -07:00
Sign in to join this conversation.
No labels
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Circuit-Forge/raven#23
No description provided.