Focus breathing is the quiet enemy of clean focus pulls: as the lens racks from far to near, the framing subtly zooms, pulling attention away from the subject. This calculator models how much the effective focal length shifts at any focus distance so you can pre-plan the crop that cancels it in post.
How it works
Focus breathing is zero at infinity focus and greatest at the minimum focus distance. The breathing figure you measure is the angle-of-view change between those two extremes. The tool interpolates the effective focal length at an intermediate focus distance.
It uses a magnification-based model. Magnification at a given focus distance D
for a lens of focal length F is approximately:
m ≈ F ÷ (D − F)
Breathing scales with how close you are to minimum focus, so the effective focal
length at distance D is:
F_eff = F_nominal × (1 − breathing% × (m / m_min))
where m_min is the magnification at the lens minimum focus distance — the point
where the full measured breathing applies. At infinity, m is near zero and
F_eff returns to the nominal value.
The compensation factor
To keep framing constant, you crop in post by the ratio of the nominal to the effective focal length:
crop factor = F_nominal ÷ F_eff
A crop factor above 1 means you zoom in to restore the wider breathing view; a factor below 1 means the view narrowed and you would need to zoom out (only possible if you shot with headroom).
Worked example
A 50 mm lens that breathes 10% reaches roughly 45 mm effective at its closest
focus. Pulling focus from a distant subject to a close one therefore widens the
shot. To hold framing you crop the close-focus frames by about
50 ÷ 45 ≈ 1.11×, or 11%, ramping the crop in sync with the focus pull.
Notes and tips
- Shoot with headroom. Frame slightly wider than final so you have room to crop in without running out of pixels.
- Measure once per lens. Breathing is a fixed optical trait; record the percentage for each lens and reuse it.
- Some bodies correct electronically — check whether in-camera breathing compensation is active before adding a post crop, or you will double up.
All calculations run locally in your browser.