The Tool That Always Answers Is Hiding Something
Run a forty-second clip of a dim, half-occluded face through most behavioural AI tools and you get a clean, confident number back, identical to the one a well-lit two-minute clip would produce. The tool does not tell you the difference, because it was built to always answer.
We think that is the central reliability failure in this field, and we built GRW Project to behave differently. A system that scores any input, whatever its quality, is not more capable than one that sometimes declines. It has moved the uncertainty out of the report and into your decision, where you can no longer see it. So we did the engineering work to let the engine say when the evidence is thin, clearly, as part of the output.
Where the Evidence Actually Comes From
GRW Project does not read emotions off a face. It measures geometry. Google's MediaPipe FaceMesh (Kartynnik et al., 2019) tracks 468 facial landmarks per frame, and from the changing distances and angles between those points we compute Action Unit proxies grounded in the Facial Action Coding System (Ekman and Friesen, 1978). AU6 plus AU12 for a Duchenne smile. AU4 for a brow lowerer. Blink dynamics in the spirit of Soukupova and Cech (2016). These are the raw signals behind Composure Index, Presence Quotient, and the rest.
Each of those computations depends on the mesh staying anchored to a real face, frame after frame. If the landmarks drift because the face is half in shadow, or jump because a hand crosses the mouth, the AU proxies inherit that noise directly.
A behavioural score is a tower of derivations sitting on landmark stability. When the base is shaky the tower does not collapse visibly. It produces a plausible-looking number that means far less than it appears to, so the only defence is to measure the base before you trust the tower.
The Quality Gate: Four Checks Before Any Output
Before the engine produces a score, the clip passes a quality gate with four checks. Clip duration: is there enough footage to set a baseline and watch it change? Face-detection rate: what fraction of frames yielded a confidently located mesh rather than a dropout? Lighting: is it even enough for landmark positions to be trusted, or is half the face in shadow? Occlusion: is the face visible, or blocked by a hand, a microphone, or a turn away from the lens?
These are the specific conditions under which the 468-landmark mesh either holds its anchor or stops being reliable. A short, well-lit, unobstructed, high-detection clip passes cleanly. A long but poorly-lit clip with frequent occlusion does not, however interesting the footage looks to a human eye. The gate runs first, by design.
High, Medium, Low, and ABSTAIN
A score that clears the gate ships with a confidence level, and the level is not decoration. High means duration, detection rate, lighting, and visibility were strong and the signal held. Medium means usable footage with some compromise, worth acting on with a human in the loop. Low means a result computed under marginal conditions, which is a prompt to look closer rather than a verdict.
Below Low sits the state we are most proud of: ABSTAIN. When the evidence is too thin to support an honest read, the engine declines to score rather than guessing. It returns the reason (too short, too dark, too occluded, too few confident frames) so you know what to fix and can re-record. On a thin clip that is the most accurate thing the engine can tell you.
The Test to Run on Any Tool
The right test is not whether a tool produces impressive numbers on a good clip. Any serious tool does. The test is what it does on a bad one. A tool that abstains is telling you it has a defensible boundary between signal and noise, and that it knows where that boundary sits. We would rather hand you fewer scores you can stand behind than a full dashboard you have to second-guess.