Analytics tools tell you where users clicked. This one tells you where they looked — and how they felt about it. Script tag. Any website. No hardware.
The gap between "user visited the pricing page" and "user stared at the price for 4.2 seconds before leaving" is enormous. This closes it without hardware, without SDKs, without privacy-invasive browser extensions.
MediaPipe FaceMesh tracking head position at 30fps, feeding a Three.js renderer that computes genuine off-axis projection. As your head moves, 3D objects orbit your perspective correctly. This proves the head tracking pipeline is accurate enough for spatial computing applications.
Iris position within the eye socket, Kalman-filtered for stability, brief calibration sequence to map gaze vectors to screen coordinates. Fixation events (gaze dwelling > threshold duration) and saccades (rapid movements between fixation points) are detected and emitted as JavaScript events. A web page can listen for eyetracker:fixation the same way it listens for a click.
The system detects 14 FACS Action Units (the standardized muscle movement vocabulary used in clinical psychology) and maps combinations to seven emotional categories. Data comes back per-frame with timestamps — a timeline of emotional response overlaid on session behavior.
Currently renting Tobii hardware at $200/hour. This gives the same signal class in a browser, deployable to remote participants. Tool sale, not a concept sale.
Which product image gets the most gaze time? Are users reading the description or skipping to the price? Questions currently unanswerable. Answerable with a script tag.
Viewability is defined as "50% of pixels visible for 1 second" — not whether a human eye saw the ad. This is the distinction worth real money in programmatic advertising.
Browser-native gaze + affect collection. No hardware installation ethics complications. No participant travel requirements. Remote study ready on day one.
| Feature | Status | Detail |
|---|---|---|
| Head tracking | ✓ Live | MediaPipe FaceMesh 478pts · 30fps |
| Gaze estimation | ✓ Live | Iris-based · Kalman filtered |
| Fixation detection | ✓ Live | Threshold-based dwell detection |
| Saccade detection | ✓ Live | Rapid gaze movement events |
| Micro-expressions | ✓ Live | 14 FACS AUs · 7 emotion classes · 40ms |
| 3D parallax | ✓ Live | Off-axis projection · Three.js WebGL |
| Aggregate dashboard | → AWS | QuickSight or custom |
| Multi-session analytics | → AWS | Kinesis + DynamoDB |
Kinesis Data Streams — ingest per-frame gaze and affect events from thousands of simultaneous sessions without batching delays.
Lambda + API Gateway — drop-in collection endpoint. Script tag on any website. Zero server management.
SageMaker — secondary calibration models. Improves accuracy for glasses, unusual lighting, non-frontal camera angles.
Personalize — gaze + emotion data → adaptive content. The analytics layer becomes a real-time personalisation engine.