Rules of Thumb — Optics, Imaging, Laser
A reference of quick-recall formulas, the geometry behind them, and the specific KrakenOS calls that compute the exact answer. The UI’s Help → Paraxial Calculator and Help → Optics Formula Sheet dialogs present the same paraxial relations against your live system; this page is the in-depth companion that pairs each rule with an illustration, a back-of-envelope number, and runnable code.
How to use this page
Each section uses the same structure:
Rule — the formula in its everyday form.
Where each symbol comes from — variable list pulled out of the equation.
Quick number — a worked example you can do in your head, sized so the right-hand side is obviously the right order of magnitude.
KrakenOS — the call that computes the same quantity exactly for your actual layout, so the rule of thumb stays a sanity check, not a ground-truth substitute.
The achromatic doublet system from
Analysis Tools (Layout Editor Toolbar) is referenced in several code blocks as
Doublet; rebuild it from that page’s Common Setup block.
Section 1 — Geometric / paraxial optics
1.1 Thin-lens imaging equation
where:
\(s\) — object distance, lens to object (positive when the object is on the incoming side).
\(s'\) — image distance, lens to image.
\(f\) — effective focal length.
\(y, y'\) — object and image heights.
\(m\) — lateral magnification (negative for inverted).
Quick number. A 50 mm lens at \(s = 250\,\mathrm{mm}\) gives \(s' = 1/(1/50 - 1/250) = 62.5\,\mathrm{mm}\) and \(m = -62.5/250 = -0.25\times\).
# Exact paraxial image distance and magnification for the doublet
import KrakenOS as Kos
s = 250.0 # object distance, mm
effl, ppa, ppp = (Pup.EFFL, 0.0, 0.0) # use _exact_paraxial_cardinals for thick lenses
sp = 1.0 / (1.0 / effl - 1.0 / s)
m = -sp / s
print("s' =", sp, "mm m =", m)
1.2 f-number, aperture cone and diffraction limit
where:
\(N\) — f-number (a.k.a. “f/N”, “speed”).
\(D_{\mathrm{EP}}\) — entrance-pupil diameter.
\(d_{\mathrm{Airy}}\) — diameter of the Airy disk to the first zero.
\(\nu_c\) — diffraction-limited MTF cutoff frequency (1/length).
Quick numbers (λ = 0.55 µm).
N |
Airy diameter |
MTF cutoff |
|---|---|---|
f/2 |
2.7 µm |
1660 cyc/mm |
f/4 |
5.4 µm |
830 cyc/mm |
f/8 |
10.7 µm |
415 cyc/mm |
f/16 |
21.5 µm |
207 cyc/mm |
D_EP = 2.0 * Pup.RadPupInp
f = Pup.EFFL
N = f / D_EP
wave_um = 0.55
d_airy_um = 2.44 * wave_um * N
nu_c_per_mm = 1.0e3 / (wave_um * N) # cycles per mm
1.3 Working f-number for finite conjugates
where:
\(N_w\) — working f-number that actually sets the image-side cone.
\(m\) — magnification of the imaging conjugate in use.
Quick number. A 100 mm f/4 lens used at 1:1 macro (\(|m| = 1\)) acts like \(N_w = 8\) — depth of field doubles, diffraction-limited resolution halves.
m = abs(-sp / s)
N = f / D_EP
Nw = N * (1.0 + m)
d_airy_um_macro = 2.44 * 0.55 * Nw
1.4 Two thin lenses in series
where:
\(f_1, f_2\) — individual focal lengths.
\(d\) — separation between the two thin-lens vertices.
\(P_i = 1/f_i\) — surface or element powers.
Quick number. Two 100 mm lenses spaced 50 mm apart: \(P = 0.01 + 0.01 - 0.05 \cdot 10^{-4} = 0.0195\,\mathrm{mm}^{-1}\) → \(f \approx 51.3\,\mathrm{mm}\) and the doublet is much faster than either element alone.
Afocal limit. When \(d = f_1 + f_2\) the system becomes an afocal telescope with angular magnification \(M = -f_2/f_1\).
# Exact two-element power combination via ABCD
import numpy as np
def combined_focal(f1, f2, d):
M = np.array([[1, 0],[-1/f2, 1]]) @ np.array([[1, d],[0,1]]) @ np.array([[1,0],[-1/f1,1]])
return -1.0 / M[1, 0]
1.5 Macro 2f rule (1:1 imaging)
where:
W.D. — working distance, lens-front to object.
\(m\) — magnification (1× for unit imaging).
Quick number. A 100 mm lens at unit magnification places both object and sensor 200 mm from the principal planes. Effective f-number doubles (\(N_w = 2N\)).
1.6 Snell’s law and total internal reflection
where:
\(\theta_1, \theta_2\) — incident / refracted angles to the surface normal.
\(n_1, n_2\) — refractive indices.
\(\theta_c\) — critical angle (only defined when \(n_1 > n_2\)).
Quick numbers. glass→air (n=1.50): \(\theta_c \approx 41.8^\circ\) ; water→air (n=1.33): \(\theta_c \approx 48.6^\circ\) ; sapphire→air (n=1.77): \(\theta_c \approx 34.4^\circ\).
Section 2 — Imaging system rules
2.1 Angle of view and sensor format
where:
\(d\) — sensor full extent (diagonal for full AFOV, width for HFOV, height for VFOV).
\(f\) — focal length.
\(\theta\) — half field angle.
\(y'\) — image height of a field point at \(\theta\).
Quick numbers (full-frame 35-mm, d = 43.3 mm).
f |
AFOV |
H × V |
|---|---|---|
24 mm |
84° |
74° × 53° |
35 mm |
63° |
54° × 38° |
50 mm |
47° |
40° × 27° |
100 mm |
24° |
20° × 14° |
200 mm |
12° |
10° × 7° |
2.2 Depth of field
where:
\(c\) — circle of confusion accepted on the sensor (often the pixel pitch or 1/1500 of the sensor diagonal).
\(m\) — magnification of the in-focus object.
\(N\) — f-number.
Quick number. Full-frame sensor, \(c = 30\,\mu\mathrm{m}\), f/8, 50 mm at 2 m subject distance gives \(m = 50/1950 \approx 0.026\) and \(\mathrm{DoF} \approx 2(8)(0.030)(1.026)/(0.026)^2 \approx 730\,\mathrm{mm}\) — roughly a half-metre in front, a metre behind.
2.3 Hyperfocal distance
where:
\(H\) — hyperfocal distance. Focusing the lens at \(H\) makes everything from \(H/2\) to \(\infty\) acceptably sharp.
Quick number. Full-frame 35 mm at f/8, \(c = 30\,\mu\mathrm{m}\): \(H = 0.035^2 / (8 \cdot 30\times10^{-6}) + 0.035 \approx 5.14\,\mathrm{m}\). Set focus to 5 m, get everything from 2.5 m to infinity sharp.
2.4 Diffraction & resolution
Airy disk diameter: \(d = 2.44\,\lambda\,N\).
Rayleigh angular resolution: \(\Delta\theta = 1.22\,\lambda/D\).
Strehl from RMS wavefront (small aberration):
\[S \approx \exp\!\left(-(2\pi\,\sigma)^2\right)\approx 1 - (2\pi\,\sigma)^2.\]Maréchal’s rule: diffraction-limited iff \(\sigma \leq \lambda/14\;\;(S \geq 0.8)\).
Rayleigh wavefront tolerance: \(\lambda/4\) peak-to-valley.
where:
\(D\) — entrance-pupil diameter.
\(\sigma\) — RMS wavefront error in waves.
\(S\) — Strehl ratio (peak intensity / diffraction-limited peak).
# Strehl from RMS wavefront error (Maréchal)
import math
sigma_waves = 0.05
strehl_approx = math.exp(-(2*math.pi*sigma_waves)**2)
# see analysis_tools.rst, section "PSF (Fraunhofer)" for the
# full Fourier optics path through KrakenOS:
# Zcoef, *_ = Kos.Zernike_Fitting(X, Y, Z, np.ones(15))
# I = Kos.psf(Zcoef, Focal, Diameter, W, pixels=265)
2.5 Pixel sampling and the Nyquist limit
where:
\(p\) — pixel pitch on the sensor.
\(\nu_{\mathrm{pix}}\) — sensor Nyquist limit.
Quick number. A 3.45 µm pixel at λ = 0.55 µm hits a diffraction limit around \(N \approx 3.45 / 0.55 \approx 6.3\) for k = 1, i.e. about f/6.3 — stop down further and the lens, not the sensor, sets sharpness.
Bayer/AA caveats. Color sensors with Bayer filters give effective luminance Nyquist ≈ 0.7 × geometric Nyquist. If the optical system has no anti-alias filter, aim for ≥ 2× oversampling at the highest expected luminance frequency.
Section 3 — Lasers and Gaussian beams
3.1 Waist, Rayleigh range, divergence
where:
\(w_0\) — beam waist radius (\(1/e^2\) of intensity).
\(z_R\) — Rayleigh range; beam radius grows by \(\sqrt{2}\).
\(\theta_{\mathrm{half}}\) — far-field half-angle of the \(1/e^2\) envelope.
For real (non-\(M^2 = 1\)) beams, multiply both \(z_R\) and \(\theta\) by \(M^2\).
Quick numbers (λ = 633 nm HeNe).
w₀ |
z_R |
full-angle 2θ |
|---|---|---|
0.10 mm |
50 mm |
4.0 mrad |
0.50 mm |
1240 mm |
0.81 mrad |
1.00 mm |
4960 mm |
0.40 mrad |
import KrakenOS as Kos
beam = Kos.GaussianBeamInput(w0=0.5, wavelength_um=0.633)
# KrakenOS-side propagation and ABCD steps live in gaussian_beams.rst
3.2 Focused spot of a Gaussian beam
where:
\(w_f\) — focused-spot radius at the new waist.
\(D\) — incoming-beam diameter at the lens (\(2\,w_{\text{in}}\)).
\(f\) — focal length of the focusing element.
Quick number. A 1064 nm beam, 5 mm diameter, focused by a 50 mm lens: \(N = 10\) → \(2 w_f \approx (4/\pi)(1.064\,\mu)(10) \approx 13.5\,\mu\mathrm{m}\), depth of focus \(\approx 0.27\,\mathrm{mm}\).
3.3 Two-mirror cavity stability
where:
\(L\) — mirror-to-mirror cavity length.
\(R_i\) — radius of curvature of mirror \(i\) (positive for concave-toward-cavity).
Special cases.
\(g_1 = g_2 = 0\): confocal (L = R), lowest waist, large mode.
\(g_1 = g_2 = 1\): planar, only marginally stable.
\(g_1 = g_2 = -1\): concentric (L = 2R), unstable edge.
\(g_1 = 0, g_2 = 1\): hemispherical.
3.4 Power density and damage
Peak on-axis intensity at the waist:
Quick number. 1 mW CW HeNe focused to a 10 µm-radius waist gives \(I_0 = 2(10^{-3})/(\pi \cdot (10\times10^{-6})^2) \approx 6.4\,\mathrm{kW/cm^2}\) — well below CW damage thresholds for most absorbing coatings but enough to permanently bleach a film.
3.5 Coherence and bandwidth
\(L_c\) — coherence length.
\(\Delta\nu\) — optical bandwidth (Hz).
\(\Delta\lambda\) — wavelength width (same units as λ).
Quick numbers.
HeNe (Δν = 1.5 GHz): Lc ≈ 20 cm.
DBR diode (Δλ = 0.1 nm at 780 nm): Lc ≈ 6 mm.
Mode-locked Ti:Sapph (Δλ = 30 nm at 800 nm): Lc ≈ 21 µm.
Section 4 — Cross-cutting design heuristics
The list below intentionally repeats from the popups so the same advice shows up wherever the user is reading.
Diameters are full, fields are semi. In the UI,
Object Diameter,Image DiameterandEPDare full diameters;Field Half-Angleand every* Semi-Heightfield type is a semi-field. Mixing the two doubles or halves your answers.Stop choice changes pupil location, not focal length. Move the
STOPbetween elements to change vignetting and pupil aberrations; don’t expect the focal length, magnification, or image distance to change.Paraxial solves are linear. They assume small angles, no decenter/tilt, no aspherics. Use the trace tools, not the calculator, for off-axis, anamorphic, or freeform layouts.
2/3 rule for image plane motion. A focus error \(\delta\) at the object side moves the image by \(-m^2 \delta\) — that’s why macro setups are so sensitive to subject movement.
Don’t chase Strehl below 0.8 with paraxial intuition. Past \(\sigma \approx \lambda/14\), only the full PSF (Fraunhofer propagation in
KrakenOS.PSFCalc) tells you what the image actually looks like.The achromat is the cheapest fix. Replacing a singlet with an air-spaced doublet cuts on-axis longitudinal chromatic aberration by ≈ 30×; a triplet adds another ≈ 5× and removes the spherochromatism residual. Quantify with
Kos.Seidel(Pup).SCW_TOTAL.
Section 5 — Where to go next
Parax Tool — the paraxial matrix layer the calculator uses.
PupilCalc Tool — entrance/exit pupil geometry, EFL, Airy radius, chief-ray data.
Finding the Cardinal Points and Pupils by Ray Tracing — step-by-step ray construction for EP, XP, PP, PP’, FFL, BFL.
Analysis Tools (Layout Editor Toolbar) — full formula, illustration, worked example and KrakenOS source block for each Analysis tool: spot, OPD, Zernike, Seidel, MTF, PSF, encircled energy, atmospheric, etc.
Gaussian Beam Propagation — Gaussian beam propagation, q-parameters, cavity eigenmodes, branch-field overlap, with worked examples.