Bubble Level
A calibrated spirit level using the tilt sensor already in your phone.
Calibration offset saved. Cleared if you change phone case.
Ticks faster as the surface comes level, then holds a tone.
Rest the phone on the surface. Readings are only meaningful when it is stationary, because the sensor cannot separate gravity from movement.
Off level by
0.0°
Level
- Left–right
- +0.0°
- Front–back
- +0.0°
- Slope
- 0.0%
- Fall
- 0 mm/m
Flat surface
Everything here runs on your device. Nothing you enter is uploaded or stored.
Rest your phone on a shelf and this shows you how far off level it is, in degrees, as a percentage slope, and as millimetres of fall per metre. Hold it against a wall and it switches to checking plumb without you touching a setting.
How to use it
- Tap the button to allow motion access. On an iPhone this has to be a deliberate tap, and the permission is per visit.
- Lay the phone flat on the surface you are checking, screen up.
- Put it on something you already know is level and press Calibrate. This cancels out any bias in the phone’s own body.
- The bubble sits inside the ring when the surface is level to within 0.3 degrees.
- Hold the phone upright against a wall or door frame to check plumb instead. The mode switches automatically at 45 degrees.
Your phone measures gravity, not flatness
This is the thing that explains both why a phone level works at all and where it stops being trustworthy.
The sensor inside is an accelerometer. It does not detect “levelness” — it detects acceleration, and the largest acceleration acting on a stationary phone is gravity, pulling straight down at 9.81 m/s². By working out which direction that pull arrives from relative to the phone’s own axes, the browser can calculate tilt to a fraction of a degree. On a still surface that is genuinely precise.
The catch is that an accelerometer cannot tell gravity apart from any other acceleration. While you are moving the phone, the force of your hand adds to the gravity vector and the reading becomes meaningless. This is not a flaw in the software; it is physically impossible to separate the two from a single sensor. It is why every reading here should be taken with the phone resting on something, and why the hold button exists — freeze the value, then pick the phone up to read it.
The second limitation is mechanical rather than physical. The sensor measures the phone’s orientation, so the reading is only as square as the phone’s body. A camera bump, a thick case, or a chassis that is very slightly warped all introduce a constant offset. That offset is invisible unless you check against a reference, which is exactly what calibration does: rest the phone on something you trust, press the button, and the current reading becomes the new zero. Any consistent bias in the hardware disappears.
Because the offset is a property of the phone and its case rather than of the surface, it is saved and reused. Change your case and it is worth recalibrating.
Reading slope the way a builder does
Degrees are the natural unit for a sensor but rarely the unit on the job. Two other figures matter more in practice, and both are shown here.
Percentage slope is rise over run. A 1% slope drops one unit for every hundred travelled. Wheelchair ramps are commonly capped at 5%, and a driveway above about 15% becomes awkward for a low car.
Fall per metre, in millimetres, is how drainage is specified. Standard guidance for a 100mm waste pipe is a fall of about 18 to 22 mm per metre — enough for solids to carry, not so steep that water outruns them. Reading 20 mm/m directly is more useful than converting 1.15 degrees in your head.
What it does not do
It cannot measure a surface it is not touching, and it is not a substitute for a laser level over long distances — the error compounds if you leapfrog the phone along a beam. It has no way to know true horizontal independent of gravity, so on a moving boat or vehicle every reading is wrong. Sensor resolution on cheaper handsets is coarser, and no amount of software makes a 0.5 degree sensor read to 0.1.
Nothing is uploaded. The tilt readings never leave your device, and the only thing stored is your calibration offset.
Slope conversions
| Degrees | Percentage | Fall per metre |
|---|---|---|
| 0.1° | 0.2% | 2 mm |
| 0.5° | 0.9% | 9 mm |
| 1.0° | 1.7% | 17 mm |
| 1.15° | 2.0% | 20 mm |
| 2.0° | 3.5% | 35 mm |
| 3.0° | 5.2% | 52 mm |
| 5.0° | 8.7% | 87 mm |
| 10.0° | 17.6% | 176 mm |
Common tolerances
| Task | Typical requirement |
|---|---|
| Waste pipe fall (100mm) | 18–22 mm per metre |
| Wheelchair ramp | 5% maximum |
| Shelf or worktop | Within 0.5° |
| Patio, for drainage | 1–2% away from the building |
| Washing machine | Within 0.5° on both axes |
Questions
How accurate is a phone bubble level?
Typically within 0.2 to 0.5 degrees once calibrated, which is comparable to a hardware torpedo level. Accuracy depends on the phone body being square to the surface, so calibrating against something known removes most of the error.
Why does the reading drift while I hold the phone?
An accelerometer measures the direction of gravity, and it cannot distinguish gravity from the acceleration of your hand moving. Readings are only meaningful when the phone is stationary on or against the surface.
Do I need to calibrate it every time?
No. The calibration offset is saved in your browser and reused. Recalibrate if you change phone case, since a case that sits unevenly introduces a fresh bias.
Why does it not work on my laptop?
Most laptops and desktops have no accelerometer, so there is nothing to read. The tool needs a phone or tablet, and it needs an HTTPS connection for the sensor to report anything at all.
Last updated