Is it possible to calculate the weight of a person by only using his smartphone, some action he must perform (jump, rotate etc.) and some data like his height or age.

Current smartphones have the following sensors/instruments: G-Sensor Digital compass Proximity sensor Ambient light sensor GPS

In conjunction with the data those devices would provide could we somehow get the approx. weight of a person?

I was thinking of like asking the person to jump and then calculate the downward velocity but that is more indicative of the persons physical strength then weight...

  • 3
    $\begingroup$ The application should tell the user to stand on a scale and the digital camera should take the picture of the number shown on the scale. Alternatively, the phone should contact a database of people by WiFi or 3G and submit a query "what's the weight of the person". More seriously, you can't measure weight of anything without any scale-like gadget that actually cares about the overall normalization of the weight. If you just scale all masses/densities by a uniform factor, the objects will behave exactly in the same way in the fields of gravity and inertia so you can't tell the weight. $\endgroup$ – Luboš Motl Nov 14 '11 at 19:17
  • $\begingroup$ Sensors sense and calculators calculate. And weight is usually measured by some balance. $\endgroup$ – Georg Nov 14 '11 at 20:23
  • $\begingroup$ There are a few problems with your train of thought. Objects accelerate due to gravity at the same rate, no matter their mass. True, there will be small differences due to air resistance on the person's cross-sectional area, and F=GMm/r^2 does vary minutely by the mass of the person, but not anywhere on the magnitude that can be picked up by a MEMs accel. Another issue is that accels don't measure velocity - they measure acceleration. $\endgroup$ – Doresoom Nov 14 '11 at 23:47
  • $\begingroup$ Furthermore, gravity doesn't accelerate in the sense that an accelerometer measures. As soon as you jump and leave the ground, the accelerometer will show zero acceleration until you land again. $\endgroup$ – BjornW Nov 15 '11 at 2:47
  • 3
    $\begingroup$ Attach a cord at a high place, hang from it, and pluck it. Record the sound. Higher pitch = higher weight. $\endgroup$ – Mike Dunlavey Nov 15 '11 at 16:55

Attach a rope to a suitable part of the person's anatomy (*)

Spin them around in a circle Use the accelerometers to measure the anglular velocity and hence the outward force, use the inclinometers to measure the angle of the rope to the vertical.

Simple force diagram gives you the person's mass.

  • If the reader is in a country with too many lawyers - I didn't mean this!
  • $\begingroup$ ""If the reader is in a country with too many lawyers - I didn't mean this!"" You think there are countries which have less than too many? $\endgroup$ – Georg Nov 15 '11 at 16:38
  • $\begingroup$ @Georg - the optimum number of lawyers may be a fraction less than 1. Large scale experiments (and a chainsaw) would be needed to verify this! $\endgroup$ – Martin Beckett Nov 15 '11 at 16:41

Have the person attach the phone to his belly using duct tape. Have the person jump up and down once, use the phone's accelerometer to measure the amplitude and decay rate of resulting belly oscillations. Then do a regression to estimate size of spare tire, combine with height and age to get weight estimate. I would be surprised if there's not already an app that does this.


If you want to get the weight from an app there are very few things that you can do. As already mentioned any kind of acceleration experiment will hardly work without a lot of extra equipment and quite a bit of user "input". There might be a way around that though.

Just let the user input his or her height and let them take a few picture of their full body from different angles. With this information it is relatively easy to compute a 3d model and an accuracy of +-5 kg should be possible. Maybe with additional data like body fat percentage, age, sex, etc. this can be made more precise.

A different approach would use the touchscreen. A normal smartphone with a touchscreen can sense pressure to some degree. This is usually done in connecting with a special pen to draw things and vary the line width according to the applied pressure. As far as I know there is no touchscreen which can sense pressures up to the level that you are interested in and the phone case has to support the total weight but it is technically possible.


Use pencil as a pivot, and some stiff object as a lever on which you can lay your phone flat. Put the pencil and the leaver on the floor so that pencil is in geometrical middle of the leaver.

The weight of the phone is an input. Phone on one end and the person jumps (knees straight, no bending to eradicate acceleration caused by additional push down with your muscles) onto the other end of the leaver.

Tiny jump of an inch or 2 in order to launch the phone upwards on the other end of the pivot. Also since the jump is with 'locked' knees it has to be small.

The whole situation is described by the following equation:

m * G = mp * (a + loss) where:
m = mass of a person, G = 9.8 m/s^2, mp = mass of the phone, a = acceleration measured by phone, loss is mainly due to flexibility and plasticity of the leaver


m = mp * (a + loss) / G

G could be approximated based on height above sea level (taken from GPS).

loss would have to be established experimentally for some common leavers like books, rulers, hard back notebooks...


protected by Qmechanic Aug 12 '16 at 15:32

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.