Skip to content

SSVEP Toolbox

Build and run SSVEP stimulation protocols, acquire, process and classify SSVEP EEG in real time, and analyze and report saved data offline — through one unified GUI whose behaviour is identical whether data is streamed live or read from a file.

Developed at the NeuroCognitive Imaging Lab, Dalhousie University. Free and open source under the Apache License 2.0 — free for academic and commercial reuse, as are all of its dependencies.

Pre-release

The toolbox is in active development ahead of its first public release. The API may change before 1.0.0, and the source repository is not yet public.

The idea

The run manifest is the single source of truth. The stimulus builder emits a manifest; acquisition stamps it into each recording; analysis reads it directly. Analysis never infers design — frequencies, montage, trial structure, timing, markers — from the data by heuristic.

Everything else follows from that. A recording carries the design that produced it, so an analysis run two years later cannot quietly disagree with the experiment that was actually run. See Design principles for the pilot failures that made this non-negotiable, and Architecture for how it is enforced.

Three run modes

  • Design

    Build, test and save stimulation protocols offline. A run is one continuous recording; a protocol composes runs into a session, with counterbalancing derived per participant rather than typed by hand. → Protocols and sessions

  • Run

    Execute a session only from a saved, versioned protocol — so every recording carries a fingerprint and a session position. Impedance check, live EEG, and live decoding in one modal panel. → Electrode montages · Impedance check

  • Analyze

    Offline processing, analysis and reporting of saved data, converted to BIDS and reproducible from the manifest. → Report templates

What is in the box

  • Calibration-free decoding — CCA and FBCCA, plus gated TRCA when calibration data exists. A pure (n_ch, n_times) array API, so the same code runs offline in batch and online per-window.
  • Welch PSD / SNR, accuracy and ITR metrics, and discrete channel-array visualisation.
  • Acquisition across OpenBCI Cyton (BrainFlow), g.tec Unicorn, and Brain Products actiCHamp — all through LSL, with no vendor SDK in the core.
  • BIDS-EEG conversion from recorded XDF, with provenance stamped into every derivative.
  • Consent-aware export and auto-push to lab storage.
  • Flicker safety warnings at design time, traceable to the photosensitivity literature.

Get started

  1. Installation — the conda environment, and how to verify it.
  2. Getting started — one guided pass through Design, Run and Analyze, on a synthetic board, no hardware or participant required.
  3. Glossary — the locked vocabulary (trial / block / run / session / protocol) other pages assume you already know.
  4. Troubleshooting — known startup and acquisition failures, and what each one means.

Already comfortable with the workflow and looking to go deeper:

  1. Architecture — components and the manifest spine.
  2. Protocols and sessions — the standard operating procedure for running a study.
  3. API reference — generated from the source.

Citing

If you use the toolbox in published work, cite it using the metadata in CITATION.cff.

Human-subjects research

This toolbox records data from human participants. It is built to support — not replace — your own institutional ethics approval. The governance rules the NCIL deployment operates under are internal to the lab; if you adopt the toolbox, the equivalent obligations at your institution are yours to establish.