A 3D Body from Eight Questions – No Photo, No GPU

A new AI method generates accurate 3D digital twins using just 8 questions, bypassing the need for photos or high-end GPUs. By utilizing a small MLP with physics-aware loss, the system achieves high precision in body measurements while ensuring user privacy.
8 questions in, 58 Anny body params out. A small MLP trained with a physics-aware loss, runs in milliseconds on CPU. Height accuracy 0.3 cm, mass 0.3 kg, BWH 3-4 cm — better than our photo pipeline on circumferences, without needing a photo. That’s the questionnaire path I promised in the previous post.
The whole story begins with one observation: that height and weight can estimate body measurements quite accurately (Bartol’s regression). The original idea isn’t as accurate as it claims, but after a bit of tuning the results are quite promising.
The questionnaire addresses privacy, speed and cost concerns. Plus we skip the phase where the user spends 5 minutes scrolling for perfect-light, tight-clothes photos. Additionally, it helped us find and address a mass calculation inconsistency in the Anny model, and model the “muscle weighs more” problem.
Backstory
When we want to create a digital twin, we naturally think of HMR photo reconstruction. This route has a lot of ups and downs. During one “down”, the research agent brought up this:
The most striking finding is from Bartol et al. (2022): a simple linear regression from just height + weight (no photo!) predicts 15 body measurements at 1.2-1.6 cm MAE. Many deep learning methods with photos don’t even beat this.
At first I quickly calculated the number of combinations and the number of people, and thought it didn’t make sense. But then, after comparing friends, I thought there might be something to it.
It’s not just height and weight
Intuitively we all know that you can be a man with 178cm and 80kg with a belly, or from the gym. So it wasn’t a surprise that we came up with these two bodies. They are a bit cartoonish and pushed to extremes, but clearly show the problem.
Next obvious thing to do: the weights from the original regression are public, so we downloaded them and ran them on our validation set. Raw BWH MAE landed around 9-11 cm, up to ~25 cm at the worst. Some of that is measurement-convention mismatch — Bartol slices SMPL meshes at fixed landmark vertex indices, while we follow ISO 8559-1 anatomical rules. After correcting for that bias, BWH MAE drops to ~7 cm. Still above Bartol’s own ~3 cm BWH MAE on their data, but that’s not really the story — we’re evaluating on a different population.
What else carries signal
As the previous example showed, the same height and weight can produce different results, but we can differentiate them via more params. Some obvious ones:
- Build/belly — muscular athletic or soft with a belly.
- Shape — there are people with wider hips, while others have a bigger bust.
- Cupsize — relevant for women, quite an obvious feature.
| Features locked | Waist std inside bucket | Theoretical best MAE | |---|---|---| | h, w, shape, build | 2.25 cm | ~1.8 cm | | + belly | 2.08 cm | ~1.7 cm | | + cup, gender | 1.30 cm | ~1.0 cm |
At the extremes: same height, same weight, different body shape — bust can differ by 25 cm, hips by 30. Six clothing sizes at identical h/w. A height+weight regression simply can’t see this.
Model & dataset
We operate solely on the Anny model, heavily leveraging its explainable features. The dataset contains a couple of tens of thousands of synthetically generated bodies. We carefully selected 58 blendshapes which matter here. The 8 questionnaire questions one-hot encode into 20 features, so the space is 20 input x 58 output params. We actually train two such models — one per gender.
Training a small MLP
The original paper used simple regression, but the problem was mass: Ridge predicts each of the 58 params independently, but mass depends on many of them working together. Result: 3.9 kg mean mass error.
So we moved to an MLP. Two hidden layers, 256 units each. Tiny — about 85 KB of weights, trains on a laptop in ~60 minutes per gender. The loss is the interesting part. We include the forward pass in the loss. The MLP’s 58 outputs go through Anny — blendshapes, vertices, volume — and we compare the resulting mass and height against the user-provided targets. Gradients from a mass error flow back through all the volume-related params together. This is what closes the mass gap.
Source: Hacker News

















