Diffraction-limited aperture calculator
With 4.3 µm pixels and 550 nm light, diffraction starts to soften detail past f/6.3: enter pixel pitch and wavelength to find the smallest aperture worth using, rounded to the nearest standard third stop. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Pixel pitch
- 4.3
- Wavelength
- 550
- Blur pixels
- 2
- Airy factor
- 2.44
- F number
- 6.4083457526
- Nearest standard stop
- 6.3
- Airy diameter
- 8.6
Stopping a lens down buys depth of field until wave optics takes the sharpness back. The diffraction-limited aperture, often shortened to DLA, is the smallest usable opening — the largest f-number — at which the circular-aperture Airy disk still fits a chosen number of photosites. Past that stop the blur disk outgrows the pixel pitch and fine texture softens even when focus, shutter, and technique are perfect. This calculator inverts the textbook Airy diameter: you enter sensor pixel pitch in micrometres and a design wavelength in nanometres, optionally a blur budget in photosites, and it returns the critical f-number plus the nearest standard third-stop. Two pixels is the default budget because that Nyquist width is where sampling theory says detail starts to collapse. Use it to plan landscape and product apertures, to compare bodies with different megapixel counts, and to stop guessing whether f/11 or f/16 is already too small on a high-resolution sensor.
How pixel pitch and wavelength become a diffraction-limited f-stop
A uniformly illuminated circular pupil focusing monochromatic light of wavelength lambda produces an Airy pattern whose first intensity zero sits at a linear diameter d equals 2.44 times lambda times the working f-number N. That is the same first-null diameter used to judge diffraction blur once you already know the stop. The diffraction-limited aperture asks the inverse question: at which N does that disk grow to a chosen multiple of the sensor photosite pitch p?
Write the blur budget as k photosites, set 2.44 lambda N equal to k times p, and solve to obtain N equals k p divided by 2.44 lambda. Photographers almost never hold p and lambda in the same unit, so this calculator takes p in micrometres and lambda in nanometres and converts with lambda in micrometres equals wavelength in nanometres divided by one thousand. The working expression is therefore N equals k times p times one thousand, divided by 2.44 times wavelength.
The default k is two: the Airy diameter then spans two photosites, which is the Nyquist sampling width and the usual definition of the stop at which diffraction begins to soften resolved detail. A conservative one-pixel budget (k equals one) returns a faster DLA; a more lenient three-pixel budget, closer to some print-viewing circles of confusion, lets you stop down further. Green light near five hundred fifty nanometres is the conventional daylight stand-in; blue light shrinks the disk and raises the DLA, red light does the opposite.
When a DLA number changes how you shoot, and what this page is not
Landscape and architecture shooters use the diffraction-limited aperture to decide whether the extra depth of field from f/16 is worth the texture they will lose on a forty-plus megapixel body; often the honest answer is to stay at f/8 or f/11 and focus-stack instead. Product and tabletop teams compare DLA across camera bodies before they lock a studio stop, because a smaller photosite reaches the Airy limit several thirds earlier than a larger one at the same wavelength.
Macro work is harsher still: effective f-number rises with magnification, so the geometric DLA computed here is a best case — if your working N already exceeds it, every extra stop of depth is also extra blur. Teachers and camera-club mentors assign the inverse Airy problem as often as the forward one; a single oracle that returns both the exact N and the nearest marked stop speeds grading and demo setup.
Search intent on this landing is the DLA itself: people type diffraction limited aperture calculator, DLA from pixel pitch, or smallest usable f-stop before diffraction, not Airy disk diameter and not diffraction-limited spot size. Prefer the sibling Airy-disk or spot-size tools when you already know the f-number and want the blur diameter; prefer this page when you know the sensor and want the stop.
The calculator does not choose a circle of confusion for depth of field, does not convert megapixels and sensor format into pitch for you, and does not claim that every image past the DLA is unusable — only that the Airy disk has outgrown the budget you named.
What you can do with it
Landscape stop planning on high-megapixel bodies
Enter your sensor pitch and 550 nm green light to see whether f/11 still sits inside the two-pixel DLA or whether you should stay more open and stack focus instead.
Studio body comparison
Product teams compare diffraction-limited f-numbers across cameras with different photosite sizes before they lock a shared studio aperture for a multi-body shoot.
Teaching the inverse Airy problem
Clubs and course authors generate known-good DLA values plus deliberate invalid pitches so worksheets and auto-graders share one ground truth.
FAQ
What is the diffraction-limited aperture (DLA)?
The smallest usable f-stop — the largest f-number — at which the circular-aperture Airy disk still fits a chosen photosite budget. Past that stop, diffraction starts to soften detail even when focus is perfect.
Which formula does this diffraction-limited aperture calculator use?
With pixel pitch p in μm, wavelength λ in nm, and blur budget k photosites, N = (k·p·1000)/(2.44·λ). Default k is 2 (Nyquist).
Which wavelength should I enter for daylight photography?
Use 550 nm as a green-light stand-in for broadband daylight. Shorter (bluer) wavelengths raise the DLA; longer (redder) wavelengths lower it. The field is required so the contract stays explicit.
How is this different from an Airy disk diameter calculator?
An Airy-disk tool takes a known f-number and returns blur size. This DLA tool takes pixel pitch and wavelength and returns the f-number where that blur reaches your photosite budget.
What does the diffraction-limited aperture calculator cost?
The browser tool is free and runs locally.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/hobby/photo-diffraction-limited-aperture \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pixel_pitch":4.3,"wavelength":550}'const res = await fetch("https://api.kit.forhosting.com/hobby/photo-diffraction-limited-aperture", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pixel_pitch": 4.3,
"wavelength": 550
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/photo-diffraction-limited-aperture",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pixel_pitch": 4.3,
"wavelength": 550
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/photo-diffraction-limited-aperture", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pixel_pitch":4.3,"wavelength":550}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pixel_pitch":4.3,"wavelength":550}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/photo-diffraction-limited-aperture", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"pixel_pitch": 4.3,
"wavelength": 550
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.photo_diffraction_limited_aperture",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
How pixel pitch and wavelength become a diffraction-limited f-stop
The capability does not integrate the full Bessel envelope, does not model rectangular pupils, and does not fold in lens aberration, demosaicing, anti-alias filters, or optical low-pass sampling. It answers only the closed-form DLA from pitch, wavelength, and k, then snaps the exact f-number to the nearest photographic third-stop on the 2 to the power of m over six series so the result is a ring marking you can actually set.
What you send, what you get back, and how errors are billed
Wire the free browser form for field decisions, then call the identical contract from scripts when you need a table across cameras. Send a JSON body with two required finite numbers: pixel_pitch (aliases pixel_size, pixel_um, pitch, pixel_pitch_um, photosite, photosite_pitch) in micrometres, and wavelength (aliases lambda, wave_length, wl, wavelength_nm) in nanometres. An optional blur_pixels (aliases criterion_pixels, k, airy_pixels, blur_px) sets the photosite budget; when omitted the solver uses two. Every field may arrive as a JSON number or as a numeric string. Missing required fields, empty strings, non-numeric text, NaN, Infinity, zero or negative pitch, zero or negative wavelength, and a supplied blur budget that is not strictly positive fail with invalid_input naming the field and are never charged. Classic vectors include a 4.3 micrometre pitch at 550 nanometres with a two-pixel budget for a typical high-resolution APS-C body, a 6.0 micrometre full-frame twenty-four megapixel pitch at the same wavelength, a one-pixel conservative budget on the same sensors, and a zero or negative pitch as the mandatory invalid_input path.
When a DLA number changes how you shoot, and what this page is not
Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when learners deliberately send a zero pitch. Round-trip checks are easy: feed the returned f_number and the same wavelength into an Airy-diameter calculator and confirm the disk matches k times p within the shared 2.44 factor.