RQ1 · Detection
On a consumer webcam (about 30 fps), how accurately can landmark-based detectors find deliberate blinks while ignoring spontaneous ones? How much does per-user calibration with k examples (k = 0, 1, 3, 5, 10) help?
Research
Few-shot calibration for blink-based Morse text entry: a small preregistered study with adult volunteers, a features-only dataset and an open-source browser system.
Synthetic demo data. The charts below are drawn from data generated to test the analysis pipeline. They are not study results. Real results will replace them after Study A has been labelled and analysed.
RQ1 · Detection
On a consumer webcam (about 30 fps), how accurately can landmark-based detectors find deliberate blinks while ignoring spontaneous ones? How much does per-user calibration with k examples (k = 0, 1, 3, 5, 10) help?
RQ2 · Timing
What are the duration distributions of spontaneous blinks and deliberate short and long closures? What dot, dash and reject thresholds do they imply, and how much does the frame rate limit timing precision?
RQ3 · Text entry
What entry rate and error rate do novices reach, and how do they change over three short blocks of practice?
The hypotheses are written down in docs/preregistration.md before the first session; its commit date shows when. Any later change is listed there under “Deviations”, with its date.
Planned design · preregistration in docs/preregistration.md
At least 8 adult volunteers (aiming for 10–12), each in a session of about 12 minutes on a laptop webcam 50–70 cm away, in normal room light. Age range, glasses, lighting, camera model and the measured frame rate are recorded. Data files hold participant IDs only, never names.
| Block | Length | What happens |
|---|---|---|
| Consent | – | Consent screen, with a separate opt-in for video |
| Calibration | 1 min | 15 s eyes open on a dot; 10 cued short and 10 cued long closures |
| Spontaneous | 3 min | Read a neutral text; natural blinks only |
| Deliberate | 3 min | 40 random cues (short, long, wink left, wink right), 2–4 s apart |
| Mixed | 3 min | Read, and respond to cues that appear in a corner |
Ground truth. Every closure’s onset, offset and type is labelled by hand by the experimenter, using cues only as hints. Two participants are re-labelled a week later to report self-agreement (Cohen’s κ for type, mean onset difference in ms). Labelling time is reported.
All five run offline on the same recorded features, with hysteresis and no smoothing buffer.
| ID | Signal | Threshold |
|---|---|---|
| D1 | Mean EAR of both eyes | Fixed 0.21 (the original app) |
| D2 | Mean EAR | Per user, from k closures |
| D3 | Blink blendshape, max of both eyes | Fixed 0.5 |
| D4 | Blink blendshape | Per user, from k closures |
| D5 | Wink: one eye closed, the other open | Per user (exploratory) |
Calibrated threshold: open − 0.5 · (open − closed), from the median
open level and the median of k closures’ deepest points.
The best detector from Study A, with thresholds fixed in advance from the Study A distributions. Fifteen short phrases from the MacKenzie and Soukoreff (2003) set, in three blocks of five, with a Morse reference card on screen.
Loading results…
How long eyes stay closed, by labelled type. Drag the two threshold lines, or focus one and use the arrow keys, to see what each choice of bands would do.
Mean across participants with 95% interval; faint dots are individual participants (shown where per-participant values exist).
Event F1 against the number of calibration closures k (k = 0 is the fixed threshold). Each point averages 20 random draws per participant. This mirrors the label-budget curves of FewGaze: how much does each extra example from a new person buy?
Characters per minute and uncorrected error rate in each of the three blocks; one faint line per participant, the mean with its 95% interval in bold.
Mean duration error per participant against the measured frame rate. The dashed curve is one frame interval (1000 / fps): no detector can time a closure more finely than the camera delivers frames.
Participants are able-bodied adult volunteers. The system has not been tested with people with motor impairments, and no clinical claim is made.
Short paper (ACM format, 4–6 pages) · in preparation
In preparation. The abstract will be added when the paper draft exists; every number in it will be generated from the logged data by the analysis scripts.
A working draft: it shows the paper’s planned structure, figures and tables. The text is still being written, and every figure and table currently uses synthetic test data.
Data: features-only dataset and datasheet · Code: github.com/1sakshm/MorsEye
@misc{sharma2026morseye,
title = {Telling Deliberate from Spontaneous Blinks on a Webcam:
Few-Shot Calibration for Blink-Based Morse Text Entry},
author = {Sharma, Saksham},
year = {2026},
note = {DRAFT entry: paper in preparation, details will change},
url = {https://github.com/1sakshm/MorsEye}
}