Current commercial lens design software does not have a method for practically implementing tolerances and compensators into the optimization process. Some codes can use sensitivity calculations to reduce the sensitivity of user-specified tolerances, but these do not consider the action of compensators, and do not provide a direct, quantitative link to performance. Other codes can theoretically include tolerancing and compensators, but this is computationally impractical because the algorithm is highly-nested with computationally-intensive ray-tracing in the innermost nested loop. Some authors have tried simultaneous optimization of an ensemble of misaligned systems but it requires many (10s-1000s) misaligned systems in the ensemble and also includes heavy ray-tracing in the innermost nested loop, and so is inefficient. Other authors have generated several candidates from a global optimization search and then selected the candidate that performs best when toleranced; this approach does not find solutions with lesser nominal performance, but which outperform others when toleranced. Finally, some authors have generated long vectors of Zernike coefficients at many field points to characterize misaligned systems and then used singular value decomposition (SVD) to find appropriate corrections. This approach, however, is slow and does not use the insight available through nodal aberration theory, which describes the behavior of perturbed optical systems. What users have wanted is an approach that accurately predicts the behavior of toleranced/compensated systems, without adding significant computational load.


The LLNL method for optimizing as built optical designs uses insights from perturbed optical system theory and reformulates perturbation of optical performance in terms of double Zernikes, which can be calculated analytically rather than by tracing thousands of rays. A new theory of compensation is enabled by the use of double Zernikes which allows the performance degradation of a perturbed and compensated optical system to be calculated with a matrix multiplication using paraxial quantities rather than by iteration involving tracing large sets of rays. Almost no additional ray-tracing beyond that used in nominal design is required.


The LLNL method considers the action of tolerances and compensators in an analytic way and incorporates the expected degradation into the merit function. The optimization algorithm can then directly optimize for as-built performance. The method requires almost no additional ray-tracing beyond that used for the nominal design, and therefore is nearly as fast as conventional nominal design.

Potential Applications

The primary use of this technology is for optimization of optical designs. The technology can be applied to specific design tasks or to optical design software generally.

Development Status

The LLNL algorithm was implemented with a combination of Zemax macros and Matlab commands. The testing was performed in Zemax (an optical ray-tracing code) on a standard Cooke triplet (three-element) design, often used as an exemplar in optical design. The tolerances in the test were decenters of each surface, except for the last surface, which was used as a compensator. Focal plane tilt and defocus were also used as compensators. In the reference case, we optimized the triplet conventionally and then applied the tolerances and compensators in a Monte Carlo simulation to generate a histogram of as-built performance. We then optimized the design using by including a Zemax macro in the merit function that generated the expected degradation of the toleranced/compensator system. We then performed the same Monte Carlo simulation for the tolerance/compensator-optimized system. The analytic macro predicted the average Monte Carlo performance within ~5% in both cases. The histogram for performance in the two cases is shown in the figure above; blue represents the conventionally-optimized design, and red represents the new method. Performance is reported as the rms wavefront error, averaged in quadrature over the field.

LLNL has filed for patent protection for this technology (US patent application 15/860609); LLNL case number IL13126.

Reference Number