Measurement reference
Facial Symmetry: A Photo Measurement Reference
A facial symmetry measurement describes a view of your face, not its complete three-dimensional shape. Here is what one landmark-based asymmetry index measures, why readings can move, and what our controlled examples establish.
By the AttractivenessTest team · · Version 2026-10-08-v1
52 constructed cases. Zero photos, people or detector runs. These examples check a calculation and its sensitivity. They do not measure accuracy on selfies, diagnose asymmetry or predict attractiveness.
What a facial symmetry index measures
Our index compares 12 pairs of landmarks after leveling the pupil line. One side is reflected across a vertical axis whose x coordinate is the average of 8 midline points. We average the paired gaps and divide by cheek-to-cheek width. Lower means a smaller mismatch in the detected coordinates.
This is a fixed vertical mirror axis after roll correction, not a best-fit anatomical midline. The result is not a percent-symmetric face or an attractiveness probability.
A = Σ paired mirrored gaps / (12 × face width)
Multiplying A by 100 expresses the average gap as a percentage of measured face width. It does not turn it into a beauty percentage.
A worked example
Start with perfectly paired constructed coordinates and a face width of 290 pixels. Move one mouth corner four pixels; leave everything else unchanged. One of the 12 gaps is now four pixels:
4 / (12 × 290) = 0.0011494253
That is an average gap equal to 0.11494253% of face width. It is a geometric example, not a detected person or a typical human value.
What stays the same when coordinates move
We tested 20 variants of the nonzero mouth-offset baseline. The table shows the largest absolute change in the index within each group.
On small screens, scroll the table horizontally.
| Transform | Cases | Largest index change |
|---|---|---|
| Move the fixed coordinates | 5 | 0 |
| Uniform scale ×0.5 to ×2 | 5 | 0 |
| In-plane rotation −15° to +15° | 6 | 2.04808e-6 |
| Re-encode the image canvas | 4 | 1.63931e-16 |
The tested unrounded transforms match the baseline within 1e-14. Input rounding leaves a maximum observed change of 0.0000020481 in the real calculation. This is a finite-case result, not a universal error bound.
Scaling fixed coordinates is different from moving the camera. A camera move can change perspective; a detector may also locate features differently after an image is resized. Canvas re-encoding here does not resample an image. In-plane rotation is not a sideways head turn.
Why the mirror axis matters
On the symmetric baseline, moving only the nose-tip midline coordinate four pixels shifts the average axis by 0.5 pixels. Reflection moves each paired comparison by one pixel. The index becomes 1/290 = 0.0034482759.
- One mouth point shifted 4 px
- 0.0011494253
- One midline point shifted 4 px
- 0.0034482759
The midline perturbation is three times the mouth perturbation in this isolated example. One midline coordinate influences every reflected pair; one mouth point affects one pair. That ratio belongs to this eight-point axis and symmetric baseline. It is not a typical detector-error multiplier.
Compare photos fairly
- Use a neutral expression and keep eye and mouth corners visible.
- Keep the camera level and front-facing, with even light.
- Keep distance and framing comparable; avoid strong close-up perspective and beauty filters.
- Follow the free test's quality hints and compare two or three photos from the same setup.
If readings differ, first check pose, expression and the detected outline. This audit cannot distinguish anatomy from perspective or detection noise in a particular photo. It does not establish a medical condition or a change in attractiveness.
Why facial symmetry tools disagree
Landmarks, mirror axes, normalizing distances and output scales differ. Some methods assess expression movement over video; others compare a still image. Taufique and colleagues' landmark and optical-flow study illustrates the former. Its clinical expression task and metric differ from this calculation; their results do not validate our product.
Fried and colleagues' portrait-perspective work models a three-dimensional head and camera. It explains why size-normalized photo ratios should not be described as independent of camera distance. Our finite-case numbers come from our own audit, not that paper.
See the official MediaPipe Face Landmarker documentation for the detector used by the free test, and our complete scoring methodology for the separate reference ranges and attractiveness score.
Methods, downloads and corrections
The pinned site functions and an independently written Python calculation agree for all 52 published cases, including 30 analytic expectations. Download the files and run python3 reproduce.py beside the JSON files. Python's standard library is sufficient; no photo, model or network request is used.
- 52 coordinate casesdataset.jsonJSON ↓
- Results and source digestsresults.jsonJSON ↓
- All measurementsresults.csvCSV ↓
- Full calculation methodmethodology.mdMarkdown ↓
- Scope and limitationslimitations.mdMarkdown ↓
- Sources and attributionsources.jsonJSON ↓
- Independent recomputationreproduce.pyPython ↓
No photos, detector runs, three-dimensional poses or clinical ground truth were tested. The quality gate and calibrated attractiveness score are separate. These constructed cases do not establish either detector accuracy or how a population should score.
Cite this dated page and its transform results or midline example; use the frozen downloads to reproduce the numbers. Read the full limitations before reusing them.
This page is authored by the team operating AttractivenessTest. External researchers do not endorse it. Report a correction to support@attractivenesstest.dev. Frozen attachments stay unchanged; corrections receive a new dated version.
Try the defined measurement
The free symmetry test measures a photo in your browser. Your photo stays on your device.
