Every face gets its own finish line

The same movement, scored two ways. On the left, one fixed target for every child. On the right, a target learned from this child's own face. Built on MediaPipe FaceLandmarker, running entirely in this tab.

Nothing is uploaded.Frames are read by the model inside this tab and thrown away.

Camera

Try it on your own face
Your browser will ask permission first. Nothing is recorded and nothing is uploaded — the video is read by the model and thrown away, frame by frame.
Calibrationnot yet done
Resting baseline  L / R— / —
Personal best  L / R— / —
Raw signal  L / R— / —

Exercise

One target for everyone

Every child must reach the same absolute value. A weak side may never get there, however hard the child tries.

LEFT
0%
RIGHT
0%

A target for this child

Each side is measured against its own resting face and its own personal best. Beating yourself counts as winning.

LEFT
0%
RIGHT
0%

Your buddy has it too. One side of its face is stiff, exactly like the child's. It only loosens up as their personal best rises — so the child is never performing alone in front of a mirror.

What actually changes. The weak side is not asked to match the strong side. It is asked to beat its own best, by a margin that starts small. Progress is the reward, so a child with a real asymmetry still finishes a session having succeeded — and the target quietly rises as recovery happens.