Guide

Designing a camera triplet, start to finish

Modernizing an 1896 patent triplet into a 100 mm f/4.5 camera lens: the merit function, the optimizer, the failures, and a build yield you can hold a shop to. Ten steps, every number computed in Ray-Optics Designer, including the ones we had to throw away.

What you get at the end

  • A 100 mm f/4.5 air-spaced triplet covering a 0 to 20° half-field at three wavelengths, in three catalog glasses, with every airspace, center and edge thickness buildable — and the edge requirement held by the merit function, not by hope.
  • Its fabrication budget: tolerances a shop can hold, and the predicted yield at them — 98.0 %, pooled over four 2000-trial Monte Carlo runs you can reproduce exactly.
  • The design as a share link and as a .zmx file you can send to anyone.

The job

A 100 mm lens for an instrument camera. Nothing exotic; that is the point. The exercise is the workflow: how a requirement becomes a merit function, how an optimizer is steered, and how a design earns the word "buildable."

ItemValue
Focal length100.0 mm ± 1 %
Aperturef/4.5 (entrance pupil 22.22 mm)
Field0 to 20° half-field
Wavelengthsd, F, C (587.6 / 486.1 / 656.3 nm)
Image qualitytolerance criterion C ≤ 0.060 mm as built, yield ≥ 90 %
Total track≤ 115 mm, front vertex to image
Buildabilitycenter ≥ 2.0 mm glass / ≥ 0.5 mm air, edge ≥ 1.0 mm
Glassescatalog, mainstream (n_d 1.5 to 1.85; crowns V_d 50 to 65, flint 25 to 45)

Every one of those limits is ours, and we will say so again where it matters. A real customer hands you some of these and forgets the rest. But the two that bite in this guide are on the list — we wrote them down ourselves, and then failed to tell the optimizer. That gap, between the spec you hold and the merit you type, is what this guide is secretly about. The image-quality line deserves one note now: C is the tool's own tolerancing criterion, an RMS spot radius combined over the field and wavelength set, which means the spec is machine-checkable by the same engine that will check the build yield later. A spec your tools cannot evaluate is a wish.

What C is

the tolerancer traces a bundle of rays for every field and wavelength combination, takes each bundle's mean squared spot radius about its own centroid, averages across bundles, and takes the square root. One number, in millimeters, for the whole system. It is deliberately the same quantity the optimizer's spot operands minimize, so the design merit and the build spec live on the same scale.

Glass words, all four at once

Optical glasses live on a map with refractive index n_d on one axis and the Abbe number V_d on the other. V_d measures dispersion, how much the index changes across the visible; HIGHER V_d means LESS color spread. Glasses on the high-V_d side are called crowns, the strongly dispersive ones are flints, and a color-corrected lens almost always pairs the two so their color errors cancel. The requirement table's "crowns V_d 50 to 65, flint 25 to 45" is a box drawn on that map.

Step 1

Start from a patent, not a blank table

In 1896 Harold Dennis Taylor patented the air-spaced triplet: two crown elements with a flint between them, arranged so that the primary aberrations can all be corrected with just three pieces of glass. US Patent 568,052 prints the full prescription — radii, thicknesses, airspaces, glass indices and dispersions — and it loads in the tool as the Cooke Triplet (Taylor 1896 patent, rated f/6.5) preset.

Starting from a patent is not cheating. It is how lens design has actually worked for a century: a starting point of the right type, then optimization toward your requirement. The optimizer we are about to use is a local method; it descends from where you put it, and where you put it decides which lens you get. A patent start puts you inside the right valley. We will see what happens when you wander out of it.

One sentence of physics: every surface adds its own share to each of the five primary aberrations and the shares simply add, so a triplet is three pieces of glass arranged to make five columns cancel. Full treatment: the Seidel ledger of a real lens, which starts from this same 1896 patent.

Reading old patents

Taylor's tables print radii by convexity ("+ means convex"), not by direction. Modern software signs a radius by which side its center of curvature sits on, so the rear surfaces flip sign on conversion. The preset has this settled, but if you ever transcribe a patent yourself, check the printed focal length reproduces before trusting the signs.

The starting point

Taylor’s 1896 prescription, and three ways to move it.

The patent prescription, exactly as it loads.

The guide’s own state

Combined blur

127.6 µm

Focal length

98.27 mm

Back focal length

81.772 mm

Focal ratio

f/6.39

Entrance pupil

15.38 mm

Hunt the blur minimum with the first slider and watch the focal length walk out of the requirement while you do it — 100 mm ± 1 % is the line in this guide’s own brief. Taylor was holding both at once. The second slider makes the opposite point: moving the sensor changes the blur by a factor of two and leaves the focal length exactly where it was, because focus cannot fix focal length. The next step is where all of this gets written down as one number.

Every reading is one traced state at d. The patent’s media carry no dispersion, so there is nothing chromatic to see yet — that arrives at step 4.

The patent state above is the guide’s own run, drawn in full. Spot diagrams on a lens you move need a free account.

Step 2

What f/4.5 asks of an 1896 lens

The patent rates the lens at f/6.5, focal length 98.27 mm, designed for one wavelength alone. Our job is f/4.5 at three wavelengths, and the aperture change is the violent one: opening from f/6.5 to f/4.5 more than doubles the light, and the blur grows faster still, because the ray heights that drive the aberrations grow with the aperture and the aberrations grow faster than the heights.

One sentence of physics: the primary aberrations scale with powers of the aperture up to its cube, which is why one stop of speed can turn a sharp lens into a soft one. Full treatment: spherical aberration, and how it scales with the aperture.

The analysis panel puts numbers on it. At the patent's own aperture the spot panel reads a combined RMS spot radius of about 128 µm over our field set. Open the pupil to 22.22 mm and it reads 275 µm, with the 20° bundle at 361 µm — and the panel reports something else too. At the patent's aperture, all 381 rays of the panel's grid reach the image; at f/4.5, 101 of the 381 never arrive, clipped at the surface apertures on the way. A quarter-millimeter of blur, measured after the worst rays were thrown away, is not a camera lens. That distance, 275 µm down to a few tens, is what the optimizer has to cross.

The aperture lever

One control, and everything the next eight steps fix starts here.

The guide’s own state
FieldRMS spot radius at d
0°119 µm
14°147 µm
20°114 µm

0°

119 µm

14°

147 µm

20°

114 µm

Every cell is drawn at one scale — the box is 3218 µm across, fixed for the whole range — and each spot is plotted about its own centroid.

Combined, all fields and wavelengths

127.6 µm

Focal ratio

f/6.39

Rays that never reached the image

0 of 381

Against the patent’s own aperture

Pupil ×1.000 · blur at 20° ×1.00 · combined ×1.00

The two apertures above are the guide’s own runs, drawn in full. Spot diagrams on any aperture you choose need a free account.

Step 3

The merit function: what you actually tell the optimizer

An optimizer does not know what a lens is for. It knows a list of operands, each a number with a target and a weight, and it moves whatever you flagged as variable to shrink the weighted sum of squared errors. Everything that goes right or wrong from here is in that list.

Open the Optimize tab and pick the Achromat recipe. It builds the list for you: one spot-size operand per field, an axial-color operand, and a focal-length anchor seeded with the design's own value. Retype the anchor's target to 100. Then flag variables: all six curvatures. The image distance is already flagged; the tool does that by default, and the note below says why.

Here is the list, in full — this is the entire merit function the first run minimizes:

OperandEvaluated atTargetWeight
RMS spot size0° field, d (587.6 nm), 19 rays01.0
RMS spot size14° field, d, 19 rays01.0
RMS spot size20° field, d, 19 rays01.0
Axial colorF−C focus shift, on axis0 mm0.3
Focal lengthd100 mm0.05

Five rows. The weighted sum of their squared errors is one number, and on the patent start that number is 0.870 — the value the widget below shows before you touch anything, and the first point of step 4's convergence. When step 4 makes the run honest, the three spot rows become nine (the same three fields at F and C as well); when step 6 finds the lens you cannot build, three edge rows join. Everything the optimizer does in this guide is done to this list.

Why the image distance is a variable

with the focus frozen, the optimizer buys back defocus the only way it can, by bending curvatures — you get a worse lens standing at a plane nobody asked for. Leaving the last gap free costs nothing and lets every other variable do its real job. The same rule holds when you evaluate a design by hand: measure spots at the design's own image plane, not at the textbook focal point.

Try to delete the focal-length anchor and the panel refuses to run, telling you the optimizer would shrink the lens. Believe it. Aberrations scale with size, so a spot-only merit is minimized by making the lens smaller forever. Every merit needs one operand that pins the scale. This is the first of several places the tool declines to let you make a classic mistake; the interesting mistakes remain fully available.

The optimizer and the tolerancer run on our servers and are part of Ray-Optics Design Pro; the analysis panels are not, though they need a free account. Every number either one produces is printed in this guide.

Before you run it, drag the three sliders below and watch the number the optimizer will descend.

Feel the merit

One number over the whole operand list. Move a variable and watch it answer.

Merit function

0.870

The guide’s own starting point

0.5 — 300, logarithmic

What the number is made of

  • Spot, 0°0 %
  • Spot, 14°40 %
  • Spot, 20°58 %
  • Axial color1 %
  • Focal length1 %

Operands

5 in the list

Against the guide’s start

0.870

The arrows are the sign of the merit’s slope in each variable, measured at the state you are looking at. The optimizer reads all of them at once and steps every variable together — which is what the run one step from here does, on twelve variables instead of three.

The starting point above is the guide’s own, drawn in full. The merit readout on variables you choose needs a free account. Nothing here runs on our servers.

Step 4

The first optimization run, and a lesson about metrics

Run it. Thirty-five iterations, merit 0.870 down to 0.0193, and the convergence plot flattens: the one-wavelength design. Focal length 100.09 mm. The spot panel now reads 28 / 61 / 90 µm across the field, combined 65 µm. From 275 µm, one click and thirty seconds of server time.

Now make it honest: the requirement is three wavelengths, not one. Duplicate the spot rows for F and C (nine bundles), and free the two airspaces as well, and run again. Merit 2.56 down to 0.0253 — and the spot panel reads 41 / 82 / 116 µm, combined 85 µm. The three-wavelength design looks worse on screen than the one-wavelength design it replaced? Score both designs both ways and the puzzle is the lesson:

DesignIts own nine-bundle merit (server)Spot panel, combined (on screen)
One-wavelength run0.032065 µm
Three-wavelength run0.025385 µm

Each column crowns a different winner, and neither is lying; they are answers to different questions, asked with different rays through different glass. The merit judged the design at all three wavelengths through the model glasses the run carried on the wire. The panel is drawing the patent preset's fixed-index media, which carry no dispersion at all — the chromatic error the second run spent real blur correcting is invisible on screen, and stays invisible until actual catalog glasses land in the prescription, which is exactly what the next step does. A merit and a design are one object: you compare designs on the metric you optimized, and you judge the job on the spec criterion you fixed in the requirement table — which is why we fixed it first.

One sentence of method: a merit function measures what you asked, not what you meant — the same lesson the coating guide hits when a merit yield and a spec yield diverge. Full treatment: the AR coating guide.

Run the optimizer

The guide’s own run. The toggle is one wavelength against three.

The guide’s own run

Three spot operands, one per field, at the d line.

Merit, start → end

0.870 → 0.0193

Iterations

35

Status

converged

The convergence above is the guide’s own run of this merit function. Pro runs it on a design you choose, and replaces the curve with yours.

Step 5

Let the glasses move, and watch what greed does

The patent's glasses are 1896 glasses. The tool lets glass become a variable through a model glass: a fictitious material described by its index and dispersion that the optimizer can slide across the glass map — the n_d-versus-V_d plane every real glass lives on — snapped to the nearest real catalog glass when the run ends.

First, do it greedily: free the index and dispersion of all three elements with no limits. The result is spectacular garbage. The optimizer runs all three glasses to the same exotic corner of the map, the snap lands all three elements on the same glass, one airspace comes back at −3.0 mm (the elements overlap in space), and the two-number snap report reads: model-glass merit 0.0039, snapped-catalog merit 0.118. The fictitious lens was thirty times better than anything real, and the real version is nearly five times worse than the design we started the run with.

Read that report the way the tool means it. The first number sells a lens nobody can build; the second is the lens you would actually get. A model glass is a direction to search, not a destination, and a variable with no bounds is an invitation the optimizer always accepts.

Now do it properly. Put floors under the airspaces (0.5 mm). Box the glasses onto the mainstream map: crowns between V_d 50 and 65, the flint between 25 and 45, indices 1.5 to 1.85. Run again from the step-4 design. The snap lands three real, boring, buildable glasses: N-PSK53 and TAF1 for the crowns, LLF1 for the flint, and the report reads model 0.0080 / catalog 0.0173, a design better than its start even after paying the snap. One polish run at finer pupil sampling settles it.

One sentence of physics: a glass's index varies with wavelength because electrons in the material resonate at ultraviolet frequencies, and the Abbe number is the one-number summary of that curve. Full treatment: Refractive Index and the Sellmeier Equation.

One honest wrinkle

the box bounds the model variable, not the snap. LLF1's true V_d is 45.75, a hair outside our 45 flint limit, and the snap picked it anyway because it was nearest on the map. The tool warns that the box rows are dropped once glasses freeze to catalog values. If the box were a hard requirement rather than a search region, you would reject the snap and re-run; ours is a search region.

The snap report, two numbers

What the optimizer found, and what you could actually buy.

Unbounded: index and dispersion free, no limits

Model-glass merit

0.0039

The fictitious lens the optimizer searched for.

Snapped-catalog merit

0.118

The lens you would actually get.

  • All three elements snap to the same glass.
  • One airspace comes back at −3.0 mm — the elements overlap in space.
  • Nearly five times worse than the design the run started from.

Step 6

Edge thickness, and the lens you cannot build

The design converges, every number is green, and it is not a lens. This step is why.

Free the center thicknesses (the last structural freedom) with 2.0 mm floors and re-run. Two things happen that deserve calm. First, the starting merit displays as 1521: the patent thicknesses sit below the new floors, and bound penalties are enormous until the optimizer walks the violations off, which it does. Second, the run stops at the iteration cap saying completed, not converged; run it once more from where it stopped and it converges in one iteration. It was done; now you know.

The result: merit improved, all thicknesses sitting politely on their floors. And now the audit. A lens element is a disc. Its center thickness is what the prescription states, but its edge thickness is the center minus the front sag plus the rear sag — the sag being how deep each curved surface bows at the clear semi-diameter — and sag grows fast on steep surfaces. Do the three-line calculation at each element's clear semi-diameter and the front element of our converged design has an edge thickness of −2.43 mm. Minus. The two surfaces cross inside the glass. No operand complained because no operand was watching: rays trace through the mathematical surfaces without objection, and center-thickness floors say nothing about edges.

The optimizer satisfies the merit you wrote, not the lens you meant.

You could patch this by hand: compute the sag deficit, raise each center floor to cover it, re-run. We tried, and it is worth knowing that it almost works and exactly how it fails: the floor you derive is frozen at today's curvatures, and the optimizer keeps moving the curvatures, so the guarantee silently expires while the merit keeps improving. Doing exactly that, we watched a design come back 22 µm shy of its own edge spec — with every floor it had been given satisfied.

The right fix is to state the requirement where the optimizer can see it. Add a Minimum edge thickness operand per element: the glass gap, the minimum edge, and the clear semi-diameter to measure it at, which the tool seeds from the design's own traced rays. The sag is now evaluated at every iteration, so the constraint moves with the curvatures instead of trailing them. Concretely, three rows join step 3's list — minimum edge 1.0 mm per element, measured at the traced semi-diameters 12.238 / 11.1379 / 15.5956 mm — alongside the nine spot rows, the color and focal-length anchors, and the airspace and thickness floors already in place. That full list, not any panel number, is what the optimizer is minimizing from here to the finished design. One thing to know: the seeded semi-diameter freezes when the run starts, and the clear aperture itself moves as the design does — so after the run converges, read the new clear apertures and check the edges once more at those. Ours held with margin; if yours does not, re-seed and run again.

One sentence of physics: sag is the depth of a sphere at a given radius, R − √(R² − h²) for height h, and every edge-thickness question is two of them and the center thickness. Full treatment: edge thickness, in the Ray-Optics Designer manual.

The sag audit, for checking any design by hand

for a spherical surface of radius R at semi-diameter h, sag = R − sign(R)·√(R² − h²). Edge thickness = center − sag_front + sag_rear. The clear semi-diameter (the widget calls it the clear aperture, CA) comes from the real rays: the largest ray height on the surface across every field and wavelength, which the tool reports. Thirty seconds, and it would have caught this lens.

Check the edges

Center thickness is what the prescription says. This is what the glass does at the rim.

The design as it stands, at its own traced clear apertures.

The guide’s own design
ElementCenterClear semi-apertureSag front / rearEdge
L12.000 mm3.364 / -1.063-2.427 mm
L22.000 mm-1.314 / 3.1266.440 mm
L32.000 mm-1.418 / -2.6810.736 mm

L1

center 2.000 mm

edge -2.427 mm

L2

center 2.000 mm

edge 6.440 mm

L3

center 2.000 mm

edge 0.736 mm

All three at one scale, drawn to each element’s own clear semi-aperture from the same sags the table lists. The requirement is 1.0 mm at the rim; hatching marks glass that cannot exist, where the two faces have crossed.
-4.3-2.5-0.701.118.041.064.087.01101.0 mm floorfaces touchthis designSurface 1 radius R₁ (mm)Edge thickness (mm)
L1L3Bending surface 1 moves every element’s traced clear aperture, so every edge moves with it. L2 stays between 6.44 and 6.66 mm across this range and is left off the plot so the two that reach the floor stay readable — the table above carries every element at every position.

Focal length at this radius

100.1 mm

Surface 1 radius

24.084 mm

Edge = center − front sag + rear sag, measured at the larger of the element’s two clear semi-apertures. The requirement is 1.0 mm.

An element’s two faces cross inside its clear aperture: there is no glass at the rim to grind. No operand complained, because no operand was watching.

Drag the radius shallower and the rim heals — and the focal length above goes with it, and L3’s edge breaks on the way. Fixing this by hand at frozen curvatures buys an edge and spends the lens. The constraint has to be in the merit function, where it is re-checked on every iteration.

Step 7

Total track, the requirement you forgot to state

One more escape attempt, because the optimizer had one more waiting. With the edges now governed, the next run improved the merit by stretching the rear airspace to 54 mm — a 137 mm-long lens against the 115 mm line in our own requirement table. It was in our table and it was not in the merit, and the merit is the only document the optimizer reads. "The customer obviously wants it short" weighs exactly zero. And this is not the optimizer misbehaving: we checked whether it had been thrown there by the bound penalties by re-running the identical problem from a clean, feasible start — every thickness hand-set onto its floor first, so no penalty was active at the first step — and it returns to the same stretched design to the last digit. That long lens genuinely is the unconstrained optimum. It just is not the job.

Cap the airspaces (6 mm front, 16 mm rear), state the edge rows, run to convergence, and the design comes home: track 114.9 mm, with 0.07 mm of the requirement to spare; focal length 100.13 mm; combined RMS about 52 µm on the spot panel. Compactness cost roughly 10 µm of spot against the stretched lens, and now you know the price of the requirement instead of suspecting it.

One last exploration before freezing: re-open the glass choice inside the final geometry, in case a better triple exists here. The run limps to the iteration cap and snaps to a catalog design more than twice as bad. Reject it and keep what you have. A returned design is an offer, not a decision; some runs exist to be thrown away, and the run counter does not distinguish the ones you keep.

The final design:

#R (mm)t (mm)Glass
127.59685.2086N-PSK53
2−56.28080.5000air
3−46.45202.0000LLF1
4 (stop)25.048315.9994air
5−367.60798.9995TAF1
6−70.735482.2185air (to image)

R is each surface's radius of curvature; t is the distance from it to the next surface, so the last t is the distance to the image; the stop is the aperture that limits the beam.

Edge thicknesses at the traced clear apertures: 1.06 / 6.00 / 7.28 mm — the front element sits just above the 1.0 mm line the operand was told to hold, and the rear element went thick and nearly flat, which is the operand and the airspace cap negotiating in public. Note where the front airspace ended: on its 0.5 mm floor. Remember that; it comes back in step 9.

No airspace cap

track 136.8 mm — 21.8 mm over the requirement

Airspaces capped

track 114.9 mm — 0.07 mm of the requirement to spare

Both panels are drawn to one scale. The unconstrained optimum improves the merit by stretching the rear airspace; the requirement table said 115 mm and the merit function did not.

Step 8

Reading the spot diagrams and the compromise

Before tolerancing, look at what the analysis panels say about the finished design, because the shop will.

The spot grid: 36 / 40 / 71 µm RMS at d across the three field points 0, 14 and 20°, combined 52 µm over the full grid. The image plane the optimizer chose sits 0.35 mm inside the axial best focus, which is the field-curvature compromise in person: it gives away axial sharpness (21 µm was available on axis) to hold the field edge, exactly what an equal-weight merit asks for. The per-field best-focus offsets tell the same story as a list: +0.35 / −0.18 / −0.38 mm from axis to edge. Axial color, F focus to C focus, is −0.26 mm, the classic residual of a V_d 63 / 46 / 50 glass triple.

One sentence of physics: with astigmatism corrected the sharp image still lies on a curved surface set by the glass alone, so a flat sensor trades the center against the corners. Full treatment: field curvature and the Petzval surface.

Two panels this step leans on

a ray fan plots each ray's landing error against where it crossed the pupil, one curve per field, so the shape of the curve names the aberration; the Seidel table splits the third-order blur into its five classical contributions per surface, so you can see which surface causes what. Both are in the tool on the share link below, and both tell this same compromise story in more detail.

A designer who reads the compromise can re-weight the merit and move it; a designer who reads one summary number cannot.

For scale: the diffraction-limited spot radius at f/4.5 is about 3 µm. A three-element lens covering a 20° half-field does not go there, at this speed, with spherical surfaces; that is what four-element designs and aspheres are for, and the tool will happily take you there another day.

Line0°14°20°
d

36 µm

40 µm

71 µm

F

33 µm

40 µm

72 µm

C

41 µm

39 µm

69 µm

Every cell is drawn at one scale — the box is 226 µm across — and each spot is plotted about its own centroid. The number under each cell is that bundle’s RMS spot radius.

Step 9

Tolerancing: the budget conversation

A design is a claim about one perfect lens. A shop builds a distribution of imperfect ones, and the spec we wrote in the requirement table (C ≤ 0.060 mm, yield ≥ 90 %) is a claim about that distribution. Time to test it.

Open the Tolerance tab and enter a first budget of round, plausible shop numbers across all 35 rows: 5 fringes on every radius, ±0.1 mm on every thickness and airspace, ±0.001 on index, ±1 % on V_d, ±2 arcminutes on tilts, ±0.02 / 0.05 mm on surface and element decenters. Run sensitivity first: the engine evaluates the criterion at plus and minus the full tolerance, row by row, with the refocus compensator on, and ranks what hurts.

What a shop hears when you say "5 fringes"

a fringe is half a wavelength of surface-height error read on a test glass, here at the 546.07 nm test line, so 5 fringes is a radius allowed to deviate by about 1.4 µm of sag over the test aperture — a routine polish. An arcminute is 1/60 of a degree of tilt. Decenter is sideways displacement: surface decenter means one surface slid off axis (a polishing/mounting error), element decenter means the whole lens slid (a seating error). The two are different physical mistakes and get separate rows.

The table is a rout. One row dominates everything: the front airspace, nominal 0.50 mm — the one the optimizer parked on its floor — where ±0.1 mm doubles the criterion; the next-worst row moves it a quarter as far. The optimization packed leverage into the tightest gap it was allowed, and the tolerance table is the design process talking back, telling you which of the optimizer's choices you will pay for on the bench. The top of the ranking:

Row (± the full tolerance)ΔC, compensated, worse sign
Front airspace, ±0.1 mm+0.055 mm
L2 element decenter, ±0.05 mm+0.013 mm
L1 element decenter, ±0.05 mm+0.011 mm
L2 element tilt, ±2 arcmin+0.0050 mm
L2 front-surface tilt, ±2 arcmin+0.0047 mm
The compensator

every perturbed lens is refocused (the image distance re-solved) before scoring, because every real assembly gets a focus adjustment. Compensated results are compared against the refocused nominal, not the raw prescription. The tool reports both baselines; comparing a compensated distribution to an uncompensated nominal is how you accidentally report that errors improve a lens.

Now Monte Carlo, 2000 seeded trials, every row drawn at once: yield 35.6 % at C ≤ 0.060. The median build fails. First budgets are supposed to do this; their job is to be argued with, row by row, at prices a shop recognizes. Tighten only the hot row, the front airspace, to ±0.02 mm: yield 63.4 %. Tighten the assembly family (tilts to ±1 arcminute, decenters to ±0.01 / 0.02 mm): yield 98.0 %, and the 90th-percentile build sits at C = 0.056, inside spec with margin. Then re-run the final budget at three more seeds before believing it — a yield from one random draw is an anecdote: 98.1, 98.1 and 98.0, pooling to 98.0 % over four independent 2000-trial runs. The seeds are printed in the widget, so you can reproduce every trial of every one.

What did the spec cost? Radii and glass stayed at catalog-commodity grade; the money went to two lines: one airspace at ±0.02 mm and element seating at 1 arcminute / 20 µm. That sentence is the deliverable of tolerancing, and no single sensitivity number could have written it.

The sensitivity table

Which of the optimizer’s choices you pay for on the bench.

This is a first-pass sensitivity analysis. It shows which parameters this design is most sensitive to, at the tolerances you entered. It does not predict fabrication yield: that requires knowing what your fabricator actually delivers, which no simulation can supply from math alone.

The 35-row budget on the finished design, ranked worst first.

The guide’s own run
Row (± the full tolerance)ΔC, compensated, worse sign
Front airspace, ±0.1 mm+0.055 mm
L2 element decenter, ±0.05 mm+0.013 mm
L1 element decenter, ±0.05 mm+0.011 mm
L2 element tilt, ±2 arcmin+0.0050 mm
L2 front-surface tilt, ±2 arcmin+0.0047 mm

Baseline, as typed

0.049024 mm

Baseline, compensated

0.048975 mm

The ranking above is the guide’s own run of this budget. Pro runs all 35 rows on a design you choose, and replaces the table with yours.

The yield

The same design, two budgets, and the spec line it has to clear.

The guide’s own run

5 fringes, ±0.1 mm, ±2 arcmin, ±0.02 / 0.05 mm — round shop numbers. Trials are independent draws; the run does not converge. More trials narrow the percentile estimates — they never improve the design.

Yield at C ≤ 0.060 mm

35.6 %

Trials

2000 per run

Seeds the engine ran

20260831, 2, 3, 4

Both yields above are the guide’s own runs, at the seeds it pooled over. Pro runs 2000 fresh trials at a seed you choose, on a design you choose.

Step 10

What you hand off

Three artifacts leave this page with you.

The design in the tool: one share link opens the finished triplet, rays traced, in Ray-Optics Designer, where the analysis panels this guide read — layout, spots, ray fans, the Seidel table, chromatic shift — are yours to repeat, and the prescription is yours to edit.

The .zmx file: one click exports as .zmx, the format Zemax OpticStudio and other sequential design tools read — catalog glasses named, ready for whoever asks "can you send me the lens?"

The fabrication data: the prescription table and the final tolerance budget, which together are the technical core of a shop drawing. What this guide's tables do not carry, a real print must: clear apertures per surface, chamfers, coatings, cosmetics, and the mechanical datum scheme that gives "±1 arcminute of element tilt" a physical meaning. Fringes here follow ISO 10110-5 convention at the 546.07 nm test line.

The finished design

Opens in Ray-Optics Designer, rays traced, yours to edit.

Open it in Ray-Optics Designer

Export .zmx

The file you send when someone asks for the lens.

MODE SEQ
NAME Camera triplet, 100 mm f/4.5
NOTE 0 Written by Photizon Ray-Optics Designer - https://photizon.com/ray-optics-design - glass type names are their owners' trademarks; catalog sources, vintages and notice at that page.
UNIT MM X W X CM MR CPMM
ENPD 22.22
PWAV 1
WAVM 1 0.5875618 1.0
WAVM 2 0.4861327 1.0
WAVM 3 0.6562725 1.0
FTYP 0 0 3 3 0 0 0
YFLN 0 14 20
SURF 0

What the file carries

  • : Computed apertures are not written; only your explicit semi-diameter overrides are. Writing a solved aperture would arrive as a fixed one and silently change the design.
Export .zmx

Exporting a .zmx file needs a free account.

What this guide did not model

Distortion never entered the merit; at a 20° half-field this design carries a few percent, fine for an instrument camera, unexamined here because no operand watched it. No vignetting: the tool traces the full aperture at every field, so the 20° spots are, if anything, pessimistic against a real mount that clips the rim. Ghost reflections have their own tab in the tool, and coating design is its own discipline with its own tool — the Thin-Film Coating Simulator — and its own guide. And of the two constraints this guide handled by hand and by cap: edge thickness is now an operand in the tool precisely because this design demanded it, and total track still lives as airspace caps, a habit worth keeping anyway.

References

  • H. D. Taylor, "Lens," US Patent 568,052 (1896). The starting prescription, radii, thicknesses and glass data. Sign convention for reading its tables per US Patent 540,122.
  • P. Rudolph, US Patent 721,240 (1902), the Tessar, the other classic this tool ships as a preset and the natural next study.
  • ISO 10110-5 / ISO 7944: surface form tolerances in fringes; the tolerancer's fringe rows follow this convention at the 546.07 nm e-line.

Open the finished design in Ray-Optics Designer — load it from the share link above, break it, and re-run the steps with your own requirement in the table. Every panel, operand and tolerance row this guide used is written up in the Ray-Optics Designer manual. Every optimization and tolerance run in this guide is replayed digit for digit on the benchmark page.