Language, in both directions.
One kernel. Two surfaces.
Access is an open standard for people the usual channels fail. Express builds an utterance and speaks it. Read takes a document in and eases it back out. Both ride the same kernel and the same access methods — touch, switch, dwell, eye-gaze — so the way you reach the screen is yours, whichever surface you open. Apache-2.0.
Two surfaces
The same standard, pointed two ways.
One person may need to say something and another to take in something — often the same person, on different days. Both are access to language. Both are here, live, free.
Express
AAC — say it
Build an utterance and speak it. A symbol-and-text board you drive however you can reach it; the words come out in a voice. For when speech itself is the channel that fails.
- Symbol + text boards, navigable and editable
- Speaks with on-device text-to-speech
- Works offline — installable as an app
Read
Lumina — take it in
A document comes in; it is eased back out. Gaze-follow, read-aloud, one-word-at-a-time pacing, and a calm focus mode — so a page meets you where your reading is.
- Reads PDFs aloud, word-synced
- Gaze-follow and paced single-word reading
- Reader profiles from first words to fluent
One kernel
access-core — written once, shared by both.
The hard parts of access — how you select, how gaze becomes a cursor, how a voice is configured, how a result is accounted for — live in a single surface-agnostic kernel. Each surface re-exports it. Fix it once; both get the fix. It depends on almost nothing, holds no clock, and embeds no model runtime.
access methods
Input, scanning, dwell, and assistive-tech hooks — the ways a person reaches the screen, defined once so both surfaces behave the same.
gaze
Point and gaze geometry, calibration, the iris estimator, and a smoothing filter. One estimator turns webcam landmarks into a screen point for either surface.
voice
Voice configuration and text-to-speech requests. Clock-free — the caller supplies the timestamp — so the kernel carries no wall-clock of its own.
receipt
An honest record of how a result was produced — measured, model-based, or estimated — and the joules it took. Transparency, never a bill.
Surfaces ride the kernel rather than fork it. A new surface — a sign-board, a switch-only keyboard, a captioner — is a new face on the same access methods, gaze, voice, and receipts.
Four ways in
Meet the screen however you can.
Access is not one motion. The standard defines four, and a person can move between them as the day or the year goes. Because they live in the kernel, every method works the same in Express and in Read.
Touch & pointer
Tap, click, or point. The direct path — large targets, forgiving hit areas, no timing to fight.
Switch scanning
One button, or two. The interface highlights choices in turn; a press at the right moment selects. The whole screen reachable from a single switch.
Dwell
Rest on a target and it activates — no click needed. Hold time is yours to set. Pairs with pointer, head movement, or gaze.
Eye-gaze
Look at what you want. The webcam reads where your eyes land and that becomes the cursor; dwell selects. No mouse, no touch, no special rig.
Eye-gaze, on a webcam
Look at the word. That's the input.
Eye-gaze has long meant a dedicated camera bar and a setup fee. Here it runs on the webcam that ships with the laptop. The same estimator drives the gaze cursor in both Express and Read — calibrate once, and the way you look is the way you select.
- 01
Webcam
The camera you already have. Opened only when eye-gaze is turned on; the video never leaves the device.
- 02
Face mesh
A 478-point mesh, including the iris, is found in each frame — on the GPU, in the browser.
- 03
Iris geometry
The iris position between the eye corners and lids becomes a look direction — the same math for both surfaces.
- 04
Estimator
One shared estimator maps that direction onto the screen, calibrated to your display and smoothed against jitter.
- 05
Cursor + dwell
The result is a gaze cursor. Rest it on a target and dwell selects. Look, settle, done.
On-device
The video is read frame by frame in the browser. Nothing is uploaded; the camera stops when you stop.
Offline-first
The app boots and works without a network. The vision model loads only the first time gaze is switched on.
Shared, not forked
Both surfaces call one estimator in the kernel. An improvement to gaze lands everywhere at once.
An open standard
Free, and meant to be built on.
Access is one of the Transaction Science open standards. The point is not an app to sell but a kernel anyone can carry — so access to language is a shared foundation, not a feature someone owns.
Apache-2.0
The kernel and both reference surfaces are permissively licensed. Read it, build on it, ship your own surface — no fee, no asterisk.
Reference surfaces
Express and Read are not the product behind a paywall; they are the standard, demonstrated, live and free. They show one conforming way to do it.
Energy, accounted
Every result can carry a receipt — measured, modelled, or estimated, in joules. It is there for transparency and is never billed.
Built to be ridden
The kernel holds no clock and bundles no model runtime; callers supply the time and the frames. That keeps it small, portable, and easy to embed.