HeavyAF

How HeavyAF works

Photo in, body composition out — and exactly what happens in between.

The short version

HeavyAF estimates your body fat percentage from one or more photos. A computer vision model finds 33 anatomical landmarks on your body, converts the distances between them into 10 circumference measurements, and a machine learning model turns those measurements — together with your age, height and weight — into a body fat percentage. The whole process takes a few seconds and the photos are never stored.

Step 1 — Pose detection

Your uploaded photo is processed with MediaPipe Pose, which returns 33 landmarks: shoulders, elbows, wrists, hips, knees, ankles and more. These landmarks give the model a scaled skeleton of your body in the image. Your declared height is used as the reference to convert pixel distances into real-world centimetres.

Step 2 — Three body measurements

From the landmark geometry and the silhouette, HeavyAF measures the three circumferences a coach would take with a tape measure to estimate body fat:

  • Neck
  • Abdomen (waist)
  • Hip

Earlier versions reported ten, adding chest, thigh, knee, ankle, biceps, forearm and wrist. Those seven were removed because each was computed by multiplying a limb length by a constant — a knee girth from the knee-to-ankle distance, for instance — which produced a 9.6 cm knee on a real photo. They cannot be recovered from the silhouette either: at chest height the outline includes both arms, and at thigh height it merges both legs. Measuring them honestly needs limb segmentation, which this pipeline does not do, so they are no longer shown.

In multi-view mode you can add a side and a back photo. Depth-sensitive measurements (abdomen, hip) improve noticeably, because a single frontal view cannot see how deep your torso is. With both views the girth is measured from your actual silhouette as an ellipse through the measured width and depth, rather than inferred from an average body proportion.

You can also type in a tape-measured waist. It replaces the photo estimate of the one measurement the model relies on most, and it is the single biggest accuracy improvement available to you.

Step 3 — The prediction model

Seven features go into the model: sex, age, weight and height from the form, plus neck, abdomen and hip from the photo. It is a regularised linear regression trained on 435 subjects — 252 men and 183 women — whose body fat was measured by underwater weighing.

Sex matters and is now part of the prediction, not just the category label. At the same waist, neck and hip a woman carries substantially more body fat. Until the female data was added the model had been trained on men only, so a woman received a male estimate; including both took the average error from 3.8 to 3.2 points and improved accuracy for men as well.

One important limit: the female subjects are all 18 to 25 years old. For an older woman the model extrapolates on age, and the result carries a warning saying so.

Earlier versions of this page described a fourteenth input, an estimated body density. It has been removed. In the training data body fat and density are two expressions of the same measurement, so including it made the model restate its own input and report an accuracy it did not have. The honest figure is below.

Step 4 — Category and metabolic targets

Your percentage is mapped to a standard category. For men the thresholds are 6%, 14%, 18% and 25%; for women 14%, 21%, 25% and 32%. Below the first threshold is essential fat, then athletic, fitness, average, and above average.

The same result also drives your metabolic panel: lean body mass, BMR calculated with both Mifflin-St Jeor and Katch-McArdle, TDEE adjusted for your activity level, and protein, fat and carbohydrate targets for a cut, maintenance or a bulk.

Accuracy and limits

This is a statistical estimate, not a measurement. On held-out subjects the model is off by about 3.2 percentage points on average, so a result shown as 12–19% means the true value is most likely somewhere in that band. That is why the result is presented as a range: a number like 18.34% would imply a precision that photographs cannot deliver. Individual errors can be roughly double the average. It is not a medical device and it does not diagnose anything.

What degrades accuracy

  • Loose or baggy clothing that hides body outlines
  • Busy backgrounds or low contrast between you and the wall
  • Harsh side lighting that casts strong shadows
  • Camera angles from above or below rather than chest height
  • Body proportions far outside the training data distribution

Use it as a trend tracker. Re-measuring every two to four weeks under identical conditions tells you far more than any single absolute number.

Privacy

Your photos are held in memory only for the duration of the analysis and are then discarded. They are never written to disk, never uploaded to a storage bucket and never used for training. Only the numeric outputs are saved to your account, and you can delete everything from Settings. Full details in the privacy policy.

Try it

All features are free, with no paid tier and no trial. Run an analysis.