This is a first working pass of the core mechanism: your camera estimates real-time viewing distance, and the on-screen eye chart resizes to stay accurate no matter how far or close you are. Everything else (per-eye comparison, photoscreening, convergence test) builds on top of this once it's confirmed working.
Prototype notice: this uses face-tracking in the browser (MediaPipe) which can be finicky on first run — expect to need lighting/positioning adjustments and possibly a round of debugging, same as the hearing test did on day one.
Step 1 — Camera & Calibration
Grant camera access, then hold a standard credit/debit card flat against your screen and adjust the slider until the dashed outline matches the card's real size exactly.
Idle — camera not started.
Hold a card here
Now hold the device at a comfortable reading distance (about arm's length — roughly 40cm / 16in) and hold still for a moment while we capture a reference measurement.
Waiting to capture…
Step 2 — Live Distance Monitor
Confirms the distance estimate is tracking correctly before starting the test.
—
Step 3 — Acuity Test
A letter "E" will appear pointing in one of four directions. Tap the matching arrow. The E will get smaller each time you're correct — this measures how small a detail you can resolve, corrected for your actual distance from the screen in real time.
Not started.
Level
Acuity
Result
Result
—
This is a screening estimate using consumer camera hardware, not a clinical measurement. It's useful for tracking changes over time or as a prompt to see an eye care professional — not a prescription or diagnosis.