AAC word prediction, optimised for how long it takes to say something.
Word prediction for AAC is almost always tuned for keystroke savings. Under that metric, taking the tenth candidate in a list costs exactly what taking the first costs: one keystroke. Under row‑column scanning at a one‑second interval it costs nine more seconds — and every row of predictions on screen lengthens the scan to every letter still to be spelled.
The intuitive conclusion — slower access methods diverge more — is wrong, and you can falsify it here. Set gaze to a 1.2 s dwell: slower per utterance than touch at its worst, and the two policies agree to within 0.01%. Then set scanning to 0.5 s: faster per utterance, and they disagree by around 15%. What matters is not speed. It is whether position costs anything.
The real Python package runs in your browser via Pyodide — the same costs.py, decoder.py and simulate.py as the benchmark, not a re-implementation. Nothing you type is sent anywhere; there is no server to send it to.
The predictor here is the compact n‑gram fallback, so candidate quality is modest. That is fine for the point being made — the comparison between policies under a cost model, not the model itself. The 0.1 B neural predictor is at NagaYu/halfword-100m.
Only mechanical cost: scan steps, dwells, saccades, pointing. Not the cost of reading a prediction list, which the AAC literature has argued for thirty years is a large part of why prediction can slow people down. Including it would push the optimal list length lower still, so the gaps shown here are a lower bound.
That is a real limitation, not a modest disclaimer. Every default here comes from research papers and device documentation, not from people who use these interfaces to say things to other people all day. If a default looks wrong to you, it probably is — please say so in the Community tab.
Every duration shown is a property of an interface configuration. None of them is a property of a person. A long scan interval means this interface costs more per selection, and nothing whatsoever about who is using it.