Methodology

How Symmi measures a face.

Nothing on this site is a rating. Every number is a distance or an angle between named landmarks, divided by another distance so it does not depend on photo size, and compared with a typical band. This page lists the points, the formulas, the bands and, because a measurement is only useful if it repeats, how much each reading moves when the same face is photographed slightly differently.

Pipeline

Four steps, no opinion in the loop.

  1. 1 · Landmarks

    The photo goes through a face landmark model (MediaPipe Face Landmarker, 478 points) running in your browser via WebAssembly. Nothing is uploaded. The model places the same numbered points on every face, so point 133 is always the inner corner of the photo-left eye.

  2. 2 · Roll correction

    Everything is rotated so the line between the two iris centres (468, 473) is horizontal. This removes head tilt before any angle or vertical difference is read. The roll removed is shown in the results; over 3° we suggest a retake.

  3. 3 · Readings

    Each reading is an explicit formula on those points (table below). Widths are divided by face width (127–356) and heights by a vertical reference, so the numbers are ratios, not pixels.

  4. 4 · Bands

    Each reading is shown next to a typical band. The bands come from published anthropometry where it exists (fWHR, canthal tilt, facial thirds) and from the app's own distribution where it does not. A reading outside its band is a description, not a verdict.

Every reading

Points, formula, band.

ReadingLandmarksFormulaBand
Symmetry index

Symmetry

Brow midline through 9 (glabella); pairs 159/386, 105/334, 61/291, 33/263, 234/454, 172/397, 48/278; 152, 1100 − 380 × weighted mean of left-right deviations, each divided by face width (127–356)92–100 symmetric · 86–91 mild · under 86 noticeable
Chin / nose offset

Symmetry

152 (chin), 1 (nose tip) vs the vertical through 9(x − midline) ÷ face widthunder 1.5 % usually unnoticed
Canthal tilt

Eyes

Inner corners 133 / 362, outer corners 33 / 263atan2(inner.y − outer.y, |outer.x − inner.x|) per eye, after roll correction; average of both0 to +5° ideal on this scale · +2° and up reads positive
Eye aperture

Eyes

Upper / lower lid 159–145 and 386–374; eye width 33–133, 362–263mean (lid height ÷ eye width)≤ 0.32 narrow · ≥ 0.38 round
Brow-to-lid distance

Eyes

Brow lower edge 52 / 282, upper lid 159 / 386mean gap ÷ eye width≤ 0.50 low-set brow
Jaw angle

Jaw

172, 152, 397angle at the chin between the two jaw corners108–122° defined · 122–128° broad · over 128° soft
Jaw : face width

Jaw

172–397 over 127–356ratio of widths0.72–0.84 typical · over 0.84 square
Chin height

Jaw

14 (lower lip), 152, 2 (subnasale)(chin − lower lip) ÷ (chin − subnasale)60–72 % typical
Facial thirds

Proportions

Hairline estimate from 10 and 9; 9, 2, 152each segment ÷ total; hairline = glabella − 1.7 × (glabella − point 10)30–36 / 30–36 / 30–37 %
fWHR

Proportions

127–356 over lid line (159, 386) to upper lip (0)width ÷ height1.80–2.10 typical
Midface ratio

Proportions

Iris 468–473 over iris line to upper lip (0)pupil span ÷ height0.95–1.15 typical
Golden ratios (5)

Proportions

Face length ÷ width; 61–291 ÷ 48–278; 33–263 ÷ 61–291; 2–152 ÷ 14–152; iris line–152 ÷ 2–152each ratio vs φ = 1.618; match = 100 − |r − φ| ÷ φ × 100≥ 90 % match per ratio
Face shape

Shape

21–251 (temples), 127–356, 172–397, 136–365, 9, 152length : width, jaw : face, lower-jaw : face, forehead : face and jaw angle scored against six shape profilesbest-fit shape with a % for each

Landmark numbers are MediaPipe Face Landmarker indices. Photo-left means the left side of the image. The full source of these formulas is the same code that runs when you use a tool, so the table and the tool cannot drift apart.

Repeatability

How much a reading moves when the photo changes.

Three AI-generated example faces were each measured five times: the original photo, tilted +1.5° and −1.5°, downscaled to 90 %, and darkened by 15 % (the original was also re-saved at JPEG quality 70). These are the kinds of differences you get by retaking a photo a few seconds later. For each reading the table shows the mean of the five runs and the spread (half the range between the highest and lowest run). Everything was measured with the exact code that runs on this site, in Chrome, on 12 September 2026.

ReadingFace Amean · spreadFace Bmean · spreadFace Cmean · spreadWorst spread
Symmetry index0–10094 · ±0.598 · ±0.596 · ±0.5±0.5
Chin offset% of face width1.2 · ±0.20.1 · ±0.10.5 · ±0.0±0.2
Canthal tiltdegrees7.6 · ±0.13.2 · ±0.49.3 · ±0.2±0.4
Jaw angledegrees110.6 · ±0.4124.2 · ±0.3106.8 · ±0.4±0.4
Jaw : face widthratio0.75 · ±0.010.85 · ±0.000.73 · ±0.00±0.01
fWHRratio1.99 · ±0.012.07 · ±0.012.05 · ±0.01±0.01
Midface ratioratio0.99 · ±0.010.98 · ±0.011.04 · ±0.01±0.01

How to read it: a spread of ±1 on the symmetry index or ±0.3° on canthal tilt is smaller than any difference a person could see, so those readings are stable under retakes. The jaw angle moves the most of the seven, because the two jaw-corner landmarks sit on soft edges, but even that stayed within ±0.4° here; treat a jaw-angle difference under about 1° between two of your own photos as noise. Ratios that use face width (fWHR, jaw : face) barely move with scale or exposure because both numerator and denominator scale together. Lens distance is not part of this test and moves readings far more than anything here; take the same kind of photo each time.

What a photo cannot tell you

Known limits, stated up front.

Same method.
Controlled capture, nineteen readings, rescans.

The app guides distance and angle, scores every reading against its band, marks bone versus trainable, and repeats the measurement on a schedule so change is measured, not remembered.

Questions about the method, corrections, or citation requests: [email protected]. Symmi is built by TidalAurum LLC.