Lightweight simulated neural streaming dashboard with per-channel signal quality monitoring and incident logging.
- Purpose
- What You Get
- Architecture
- Workflow
- Signal Quality
- Incident Logging
- API Endpoints
- How to Run
- Screenshots
- Configuration
- Future Work
NeuroStream simulates a multi-channel neural acquisition device and demonstrates how signal quality can be monitored and logged in real time for engineering and research applications.
- Live neural signal visualization
- Per-channel quality assessment
- Incident logging with timestamps and diagnosis
- Exportable logs (CSV / JSON)
Backend
- Flask REST API
- SQLite database for samples and events
- Background monitoring thread
Frontend
- Vanilla JavaScript
- Chart.js for plotting
- Tab-based interface for quality and incidents
- Simulator generates neural samples.
- Samples stored in SQLite.
- Quality metrics computed in sliding windows.
- State transitions logged as incidents.
- Frontend polls APIs and renders charts and tables.
- good: signal within normal limits.
- degraded: moderate artifacts detected.
- bad: severe dropout, noise, or clipping.
- RMS (Root Mean Square): overall signal energy.
- Peak-to-Peak: amplitude range.
- Dropout Fraction: percentage of missing/zero samples.
- Line Noise Ratio: proportion of power at 60Hz.
When a channel enters degraded or bad state:
- start timestamp is recorded
- end timestamp when recovered
- duration computed
- diagnosis inferred from metric thresholds
Stored in SQLite table: events.
/health/latest/quality/events/export/events.csv/export/events.json
- From inside the backend folder, install dependencies:
pip install -r requirements.txt- Still inside the backend folder, run app:
python app.py- Open browser:
http://127.0.0.1:5000/
Edit config.py to adjust:
- sample rate
- number of channels
- artifact probabilities
- database path
- Real hardware integration
- Advanced artifact classifiers
- User annotations
- Long-term trend analytics

