The short version: your camera is read by code running inside this browser tab, nothing is uploaded, and the only thing kept is a few numbers per session in this browser's own storage. The long version follows, written to be checked against the public source code.
When a session has calibrated, one record is saved in this browser's localStorage
and updated every 30 seconds, so the next visit can show what changed. It looks like this:
{
"session": 1789277388202,
"t": 1789277414525,
"energy": 100,
"state": "replenished",
"perclos": 0,
"blinkRate": 0,
"blinkDurationMs": null,
"faceMs": 23080
}
andybsgsports.github.io, could read this browser's storage. Those are all sites published by the same account.
Everything the page needs — its own code, the MediaPipe runtime and model, and the
typefaces — is served from this site, andybsgsports.github.io. No other host is
contacted, and a Content-Security-Policy on the page forbids the browser from connecting
anywhere else even if a script tried to.
This is not a medical device and not a biometric identification system. It does not recognise who you are, and its numbers are an indirect, noisy proxy for tiredness that should not guide health decisions. The behaviour described here is the behaviour of the code in the linked repository at the time of writing; if that code changes, this page changes with it.
Last reviewed September 2026 · Back to the reading