Handwriting BCI (Willett et al., 2021)
Measured by Willett, Avansino, Hochberg, Henderson & Shenoy · Nature 593 (2021)
Inputs
The measured or assumed values behind the calculations, each with its source.
- N = 31
- Character set: 26 lowercase letters + comma, apostrophe, question mark, period, space (Methods)
- rate = 90 char/min
- Real-time copy-typing speed (Abstract; Fig. 2)
- P = 0.941
- Raw online character accuracy (5.9% character error rate, no language model). With a general-purpose autocorrect, >99%.
- WER = 0.251
- 25.1% raw word error rate for online output, versus 5.9% raw character error rate (Table 1).
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.
-
Error-corrected characters per minute
(1 − CER) × rate = 0.941 × 90 = 84.7 net char/min
-
Shannon per-character entropy of English
H ≈ 1.0 bit/char
English letters are redundant, so the atlas-ranked figure uses 1 bit/char for consistency with the typing entries rather than the raw 31-symbol alphabet size.
-
Information transfer rate
84.7 char/min × 1.0 bit/char ÷ 60 s/min = 1.41 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
- 31 distinguishable actions
- Prior
- Non-uniform: some actions more likely than others
- Notes
- Per-character classification of attempted handwriting over a 31-symbol set. The reference figure uses the RAW decoder (no language model); the headline >99% accuracy adds an autocorrect/language model, which would make the prior strongly context-conditioned. English letters are not equiprobable, so even the raw figure is an upper bound on transmitted information. The paper also reports a stricter raw word error rate; that word-level view is included as a supplementary calculation.
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.
-
Convert character rate to words per minute
90 char/min ÷ 5.0 char/word ≈ 18.0 word/min
Uses the same average English word length convention (one word = five characters) as the other word-entropy calculations.
-
Apply raw word error rate
(1 − WER) × rate = (1 − 0.251) × 18.0 ≈ 13.5 net word/min
The 25.1% raw word error rate is much higher than the 5.9% raw character error rate because any character edit can make a whole word wrong.
-
Shannon per-word entropy of English
H ≈ 5.0 bits/word
-
Information transfer rate
13.5 word/min × 5.0 bits/word ÷ 60 s/min ≈ 1.12 bits/s
-
Bits per selection (Wolpaw formula)
B = log2(N) + P*log2(P) + (1-P)*log2((1-P)/(N-1)) = log2(31) + 0.941*log2(0.941) + 0.059*log2(0.059/30) = 4.341 bits / selection
Term 1 is the information if every choice were correct; terms 2-3 subtract the bits lost to the error rate, assumed spread evenly over the other N-1 targets.
-
Selections per second
T = 0.66667 s/selection -> 1 / 0.66667 = 1.5 selections/s
-
Information transfer rate
ITR = B * selections/s = 4.341 * 1.5 = 6.512 bits/s
-
Achieved-bitrate credit per net-correct character
N = 31 → log2(N − 1) = log2(30) = 4.91 bits per net-correct selection (field-standard achieved bitrate, e.g. Webgrid; Nuyujukian 2015, which introduced the metric, used log2(N)).
-
Net-correct character rate
net-correct = 2P − 1 = 2(0.941) − 1 = 0.882 of characters. At 90 char/min (0.667 s/char) → 0.882 × 90 / 60 = 1.32 correct/s.
A decoding error commits the wrong character rather than timing out, so incorrect = 1 − P. Same N (31), raw online character accuracy (94.1%, no language model) and character rate (90/min) as the entry's Wolpaw calc; netting each wrong character against a correct one (2P − 1) lands near the ~6.5 bits/s raw-decoder Wolpaw figure. Both are the uniform-prior character channel, above the 1.41 bits/s Shannon headline.
-
Achieved bitrate
4.91 bits × 1.32 correct/s = 6.49 bits/s.
Source
- Authors
- Willett, Avansino, Hochberg, Henderson & Shenoy
- Publication
- Nature 593, 2021
- Reference
- Open-access full text (PMC)