Nothing measured, everything shown

Live Face Mesh Explorer

Every tool on this site reads the same 478 points on your face. This shows you all of them, live, and tells you which ones each tool uses. Point at any part of the mesh to find out what that point is.

The measurement tool

What you are looking at Landmarks, formula, tolerance
The model
MediaPipe Face Landmarker, from Google, released under the Apache 2.0 licence. It downloads to your browser as a file of a few megabytes and runs there through WebAssembly. This site did not train it and does not run it on a server.
Why 478 and not 468
The base mesh is 468 points. Ten more cover the two irises, four around the edge of each and one at each centre. Those ten are what make millimetre measurement possible, because the iris is close to a fixed physical size and can therefore act as a ruler.
What a landmark is
Three numbers: a horizontal position, a vertical position, and a depth estimate, each relative to the frame rather than in millimetres. Every measurement anywhere on this site is arithmetic on those three numbers and nothing else.
How few of them are actually used
Face shape classification reads about a dozen. Pupillary distance reads six. The rest are there because the model produces them, not because anything here needs them. Highlighting the used set is the quickest way to see how small the measured surface really is.
Where the points move most
Watch the nostril edges and the outline of the jaw against the eye corners and the iris ring. Corners and high contrast edges hold still. Smooth surfaces drift by a pixel or two every frame, which is exactly why every measurement on this site is a median across many frames rather than a reading from one.

Every figure above is checkable against the measurement engine itself, which is plain JavaScript served with this page: fc-engine.js

Questions people ask

How does face detection work in a browser?

A trained model is downloaded as a file, the same way an image is, and then runs inside your browser through WebAssembly, which lets compiled code execute at close to native speed. Each video frame goes in, and 478 point positions come out, roughly thirty times a second. No frame is sent anywhere, because there is nowhere for it to go: the whole thing is running on your device.

What are facial landmarks?

Specific points the model has learned to locate on any face, each one always meaning the same thing. Point 152 is the bottom of the chin on every face it sees. Because the meaning is fixed, the distance between two of them is comparable across people, and that comparability is what makes measurement possible at all.

Is this the same technology as face recognition?

No, and the difference matters. Landmark detection finds where features are on a face in front of the camera. Face recognition builds an identifier and matches it against a database to work out whose face it is. This model does the first and has no capacity for the second: there is no identifier, no database, and nothing stored between frames.

Why does the mesh wobble when I hold still?

Each frame is processed on its own with no memory of the one before, so tiny differences in lighting and sensor noise move the points slightly. Sharp features barely move. Smooth ones drift more, because there is less for the model to lock onto. That drift is the reason measurements here are taken as a median across a second or so rather than from whichever frame you happened to press the button on.

Can I see which points a specific tool uses?

Yes. The group controls let you isolate the set each tool reads, which is usually a surprisingly small handful out of the 478. It is the clearest way to check that a measurement is doing what the methodology panel says it is doing.