Introduction to Lens Design
This map uses José Sasián, Introduction to Lens Design (Cambridge University Press, 2019). It is the most compact end-to-end companion for KrakenOS: the book moves from surface shape and exact tracing to image evaluation, optimization, tolerancing, and ghost analysis in 18 short chapters.
Coverage by chapter
Book section |
Match |
KrakenOS implementation |
|---|---|---|
Chs. 2 and 4, first-order optics and thin lenses |
Direct/partial |
|
Ch. 3, aspheric surfaces |
Direct |
|
Ch. 5, ray tracing |
Direct |
|
Chs. 7 and 8, colour correction and lens forms |
Partial/related |
Catalog dispersion and wavelength sweeps trace chromatic behaviour, but KrakenOS does not automatically synthesize the book’s achromats. |
Ch. 9, image evaluation |
Direct/partial |
Ray spots, wavefront fits, diffraction PSF/MTF, encircled-energy-style detector data, and captured-image MTF are available in separate tools. |
Ch. 10, tolerancing |
Direct/partial |
The UI tolerance service provides seeded perturbations, distributions, compensator sweeps, Monte Carlo summaries, stackups, and yield reports. |
Ch. 11, lens-design software |
Direct/partial |
|
Chs. 12 and 13, lens forms and combinations |
Related |
The layout library contains comparable lens families, but not automatic synthesis of every construction in these chapters. |
Ch. 14, ghost images |
Direct/partial |
Fresnel/coating power and non-sequential reflected/transmitted branches expose real ghost paths, TIR, branch order, and detector arrival. |
Chs. 15–18, catalog lenses, mirrors, miniature and zoom lenses |
Related/partial |
Catalog import, mirrors, coordinate breaks, and multi-configuration layouts help construct these systems; automated zoom solving is absent. |
Surface sag: Eqs. (3.1), (3.6), and (3.7)
Section 3.2, printed p. 22, gives conic sag for \(\rho^2=x^2+y^2\) and vertex curvature \(c=1/R\):
conic__surf.calculate in KrakenOS/MathShapesClass.py evaluates this
expression directly. Rc supplies \(R\), k supplies \(k\),
and Cylinder_Rxy_Ratio changes the radial coordinate to
\(\rho^2=x^2+(q_y y)^2\). The absolute value used inside the code’s square
root is a numerical domain policy, not part of Eq. (3.1); a design outside the
real conic domain should not be made physically valid by that safeguard.
Sections 3.4, Eqs. (3.6)–(3.7), printed p. 24, add an even polynomial:
aspheric__surf.calculate evaluates eight even terms through
\(\rho^{16}\). SurfaceShape.calculate adds the conic, polynomial,
Zernike, error-map, axicon, and user-surface contributions. This is a
direct implementation, provided the coefficient order is translated
correctly. AspherData[0] is \(A_2\), not \(A_4\).
Optical path and exact rays: Chs. 2 and 5
Section 2.3, Eqs. (2.3)–(2.4), printed pp. 11–12, defines optical path as
for homogeneous segments. system.__CollectData in
KrakenOS/KrakenSys.py stores each \(n_i s_i\) in OP, the cumulative
values in TOP_S, and the total in TOP.
Sections 5.1–5.3, printed pp. 44–47, distinguish prescribed surface order from nearest-hit non-sequential tracing and formulate refraction with ray and surface-normal vectors. KrakenOS has the same division:
system.TracefollowsSDTorder and supports reverse traversal.system.NsTracesearches physical candidates and follows the nearest valid hit rather than the next row.Hit_Solver.SolveHitfinds a root of the implicit surface equation.snell_refraction_vector_physics.calculateapplies vector Snell refraction, reflection, and the TIR discriminant.
The correspondence is direct, but coordinate breaks and surface sign conventions still have to agree with the book. Negative index values used as mirror sentinels are implementation control values, not negative-index media.
Image evaluation: Chapter 9
Sections 9.1–9.2, printed pp. 99–108, connect geometrical spot diagrams, encircled energy, wave aberration, PSF, and MTF. KrakenOS splits that chain across modules:
PhaseCalc.py reconstructs pupil OPD, WavefrontFit.py fits Zernike or
polynomial descriptions, and PSFCalc.psf4mtf plus calculate_mtf form
the sampled pupil, FFT PSF, and normalized MTF. Geometrical detector spots
are a different result and should not be described as diffraction PSFs.
Tolerancing and optimization: Chapters 10 and 11
Section 10.7, printed p. 116, gives the root-sum-square estimate for independent zero-mean contributions,
Section 10.8, printed pp. 117–119, instead samples simultaneous manufacturing errors and evaluates the resulting population. The tolerance UI implements the latter route, including seeded normal/uniform distributions, correlated groups, compensator sweeps, percentile summaries, and yield against a limit. Its stackup dashboard also calculates RSS and worst-case summaries. A Monte Carlo result is only meaningful if the entered distribution widths and compensator policy represent manufacturing reality.
Section 11.2, printed pp. 129–130, treats the merit function as a weighted sum
of departures from targets. Optimization/merit.py uses the corresponding
least-squares structure
with invalid-trace penalties. Optimization/specs.py exposes spot,
wavefront, focal-length, magnification, pupil, MTF, and thickness operands.
Ghosts: Chapter 14
Section 14.1, printed p. 165, starts with normal-incidence uncoated surface reflectivity,
and Secs. 14.2–14.5 progress from first-order estimates to real rays and TIR
ghosts. Physics/optics.py evaluates angle-dependent S/P Fresnel power;
coating tables can override interface values. The non-sequential branch
engine creates reflected and transmitted children, records branch paths and
power, and stops branches below configured power or depth thresholds. This
is stronger than the chapter’s first-order construction for path geometry,
but it is only quantitatively predictive when coatings, bulk loss, apertures,
surface quality, and detector acceptance are modelled correctly.
Important gaps
KrakenOS does not automatically choose glasses, bend elements, synthesize the book’s lens families, create athermal solutions, or solve zoom cams. Its core trace is not a full radiometric exposure/noise model. Manufacturing drawings, asphere test design, narcissus thermal self-imaging, and a general illumination solver remain outside the reviewed implementation.