EEG2Code c-VEP Speller (Nagel & Spüler, 2019)
Measured by Nagel & Spüler · PLOS ONE 14(9) (2019)
Inputs
The measured or assumed values behind the calculations, each with its source.
- rate = 35 char/min
- Active online spelling: ~35 error-free letters/min for the proof-of-concept online subject.
- H = 1.0 bits/char
- English-text entropy (Shannon); the same ~1 bit/char standard applied to QWERTY and the other text-entry entries.
- ITR_passive = 701 bits/min
- Authors' reported passive (raw discrimination) ITR: mean 701 bit/min ≈ 11.7 bits/s, best subject 1237 bit/min ≈ 20.6 bits/s (the 'world's fastest BCI' headline). Reproduced in the passive calculation below.
- T_detect = 0.25 s
- Detection window: EEG2Code predicts each stimulation bit from a 250 ms EEG window (shifted sample-wise at 600 Hz).
- N = 500000
- The decoder discriminated 500,000 distinct random black/white stimulation patterns at ~100% from 2 s of EEG: log2(500000) ≈ 19 bits per selection. N is a code-space size, not a set of communicative choices.
Strictest ITR
Each scoring method is an upper bound on the channel, so the headline is the strictest (smallest) one for this entry. Use the score selector on the home page to view any single method across entries.
-
Correct characters per minute
≈ 35 error-free letters/min (active online spelling)
The information the interface actually delivers as communication, under the same predictor as every other text entry.
-
Bits per character
H(English) ≈ 1.0 bit/char (Shannon)
-
Information transfer rate
35 char/min × 1.0 bit/char ÷ 60 s/min = 0.583 bits/s
What counts as a bit depends on the action space. The number of distinguishable actions and how likely each one is are design choices of the task, not the sensing hardware. The same modality can present a fixed set of targets, a set pruned per step by a grammar or language model, or a continuous control space. Each of these changes how many actions are live and how the probability mass is spread, and therefore the information per selection. Read the action space below before comparing headline numbers across entries.
Action space
What the user can produce at each step, and how those options are distributed.
- Structure
- Fixed set of targets
- Size
- 32 distinguishable actions
- Prior
- Context-conditioned: likelihoods depend on prior actions
- Notes
- c-VEP: targets flicker by random black/white codes and the decoder classifies which code the user is gazing at (a classifier, not Fitts pointing). The ranked atlas figure uses the active speller's English text output (~35 letters/min), so it follows the same character-entropy convention as the other text entries. The headline 11.7-20.6 bits/s and the 500,000-stimulus discrimination are retained as secondary signal-discrimination metrics. The authors explicitly discuss a ceiling effect for very large code spaces, which is why the atlas separates raw code discrimination from ranked text throughput.
Comparability The strictest bound here is the Shannon entropy of the output text, under one predictor held constant across the whole atlas (≈1 bit per character). That shared predictor makes it directly comparable to every other text entry (keyboards, spellers, silent speech and speech BCIs) regardless of prior or vocabulary size. For most text interfaces it comes out tighter than the raw-selection bounds, but not always. Where a small vocabulary makes Wolpaw tighter, that wins instead. Any Fitts, Wolpaw or log₂(N) figure shown below is another bound on the same channel. Switch the home-page score selector to compare one across entries.
Other score types
Bounds the atlas keeps out of the default strictest headline: as-reported figures, alternate task conditions, or raw-channel ceilings that shouldn't win the headline by default. Each still carries a score type, so the home-page selector ranks this entry on it when you choose that type. Read its derivation before comparing across entries.
-
Binary bit channel (EEG2Code)
N = 2. The decoder predicts each stimulation bit (black/white) from a 250 ms EEG window
EEG2Code classifies the binary stimulation code, not 1-of-many targets, so the raw channel is a stream of per-bit predictions.
-
Wolpaw ITR on the bit channel (authors' Eq. 2)
ITR = [log2(N) + P·log2(P) + (1−P)·log2((1−P)/(N−1))] / T, N = 2
The authors apply the standard Wolpaw formula to the binary bit channel at the per-bit prediction accuracy over the 250 ms detection window.
-
Reported passive ITR
mean 701 bit/min ≈ 11.68 bits/s; best subject 1237 bit/min ≈ 20.6 bits/s
Equivalently, the 250 ms decoder can discriminate 500,000 distinct 2 s stimulation patterns (log2(500,000) ≈ 18.9 bits per 2 s). The authors flag a 'ceiling effect' for very large code spaces, so this is a raw-discrimination capacity kept for comparison, not the ranked communication rate.
-
Achieved-bitrate credit per discriminated pattern
The decoder tells apart N = 500,000 distinct 2 s stimulation patterns at ~100% → log2(N − 1) = log2(499,999) ≈ 18.93 bits per selection (Nuyujukian 2015, which introduced the metric, used log2(N); at this N the difference is negligible).
-
Net-correct selection rate
One 2 s pattern per selection at ~100% discrimination → net-correct = 0.5 selections/s.
This plugs the authors' code-space size straight into the achieved formula, matching the passive metric's own 500,000-pattern framing. N here is a code-space size, not a set of communicative choices, so like the passive Wolpaw figure this measures raw signal discrimination (the 'ceiling effect' the authors flag), not communication; at the true per-decision bit channel (N = 2) achieved would be 0. Kept for comparison only — the ranked figure is the 0.583 bits/s active-spelling text rate.
-
Achieved bitrate
18.93 bits × 0.5 selections/s ≈ 9.47 bits/s.
Source
- Authors
- Nagel & Spüler
- Publication
- PLOS ONE 14(9), 2019