Skip to main content

A Transaction Science Open Standard

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 build on one kernel, access-core, which defines how a person reaches the screen: eight access methods, from touch and switches to eye gaze on an ordinary webcam. Apache-2.0.

Surfaces
2
Access methods
8
Shared kernel
1
Eye-gaze hardware
$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

Live

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 the voices your device or browser provides — some browsers use online voices
  • Boards work offline after the first visit — installable as an app
  • 45 languages: an English core vocabulary, and glosses of it for the other 44
Open Express (opens in a new tab)

Read

Lumina — take it in

Live

A document comes in; it is eased back out. Read-aloud, a line highlight that follows your gaze, and one-word-at-a-time pacing — so a page meets you where your reading is.

  • Reads the current page aloud
  • Gaze-following line highlight and one word at a time, at a pace you set
  • Reading profiles by age, with larger type and spacing where they help
Open Read (opens in a new tab)

On languages, plainly: Express offers 45. English has a core vocabulary drawn from studies of English speakers. The other 44 use glosses of that English list — translations of its words, not a core vocabulary studied with speakers of each language — and the standard labels them as glosses. In September 2026, 538 of those glosses were corrected.

One kernel

access-core — written once, shared by both.

The hard parts of access — how you select, how gaze becomes a point on the screen, how a voice is configured, how a result is accounted for — live in a single surface-agnostic kernel, and each surface re-exports it. A fix to a part lands in every surface that uses that part. It depends on four crates (serde, serde_json, thiserror, web-time) and embeds no model runtime. Gaze and voice are clock-free: the caller passes the time in. Dwell is the one part that keeps time, reading a monotonic clock (through web-time, so the same code runs natively and in a browser).

input · scanning · dwell · a11y

How a person reaches the screen: the eight access methods and a motor profile, switch scanning over a grid, dwell selection, and display preferences such as contrast, type size and reduced motion.

gaze

Screen and gaze geometry, calibration data, the iris math for a 478-point face mesh, a Kalman smoothing filter, and an estimator that turns face landmarks into a screen point.

voice

Voice settings, speech requests handed to whatever speech engine the surface has, and voice banking. Clock-free: the caller passes in the time a recording was made.

receipt

An honest record of how a result was produced — measured, model-based, or estimated — and the energy it took, in microjoules. Transparency, never a bill.

Surfaces are meant to 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.

Eight ways in

Meet the screen however you can.

Access is not one motion. The kernel defines eight access methods, each with its own recommended target size, and a person can move between them as the day or the year goes.

  • Touch

    Finger or stylus on the screen. The direct path — large targets, forgiving hit areas.

  • Pointer

    Mouse or trackpad. The most precise path, so targets can be smallest here.

  • Switch scanning

    One switch, two, or more. Choices are highlighted in turn and a press selects — the whole screen reachable from a single button.

  • Joystick

    A joystick or directional pad moves between targets, one step at a time.

  • Eye gaze

    Look at what you want. A webcam reads where your eyes land, and dwell selects. No mouse, no touch, no special rig.

  • Head tracking

    Head movement, read by a camera or a sensor, moves the pointer; dwell selects.

  • Partial voice

    For people with some speech: the words and sounds they can say, used as input.

  • BCI

    Brain–computer interface, defined for research and emerging devices, with the largest targets of all.

Dwell is how a selection completes

Dwell is a selection technique, not a method: rest on a target and it activates, no click needed. Eye gaze and head tracking select this way. Hold time is yours to set. From your own use, the kernel can suggest a longer or shorter hold, which you accept or decline; automatic adjustment is there too, and off unless you turn it on. Switch scan speed works the same way.

Where each method runs today

Express offers six in its setup — touch, pointer, switch scanning with one or two switches, joystick, eye gaze, and head tracking (which, for now, runs the same webcam eye-gaze pipeline) — and runs the kernel's own scanning and dwell. Read takes its gaze math from the kernel; its scanning and dwell are still its own. Partial voice and BCI are defined for any surface to adopt; neither reference surface offers them yet.

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. Both Express and Read take their iris math from the kernel, so the eyes are read the same way in either surface.

  1. Webcam

    The camera you already have. Express opens it only when eye gaze (or head tracking) is your access method; the video never leaves the device.

  2. Face mesh

    MediaPipe finds a 478-point face mesh, including the iris, in each frame — in the browser, on the GPU.

  3. Iris geometry

    The iris position between the eye corners and lids becomes a look direction. This is the kernel's math, and both surfaces use it.

  4. Estimator

    The kernel's estimator maps that direction onto the window and smooths it against jitter. Given four or more calibration points it interpolates between them instead; Express does not collect any yet.

  5. Cell + dwell

    In Express the point lands on a cell of the board, a ring fills while you rest there, and dwell selects it.

On-device

The video is read frame by frame in the browser. Nothing is uploaded; the camera stops when you stop.

Offline, except for gaze

Express boots and works without a network. Eye gaze is the exception: when you switch it on, the eye-tracking library (MediaPipe Tasks Vision, pinned at 1.0.1) comes from jsDelivr and the face model from Google's model storage. The app's offline cache does not hold them, so plan on a connection for gaze.

Shared, not forked

The iris math lives once, in the kernel, so a fix to it reaches both surfaces. Express also runs the kernel's estimator; Read still maps and smooths gaze its own way, with its own calibration step.

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 way to build on it.

Energy, accounted

Every result can carry a receipt — measured, modelled, or estimated, in microjoules. It is there for transparency and is never billed.

Built to be ridden

The kernel bundles no model runtime: callers supply the face landmarks, and for gaze and voice the time as well. Dwell alone keeps time, from a monotonic clock that works natively and in the browser. That keeps it small, portable, and easy to embed.