CMU-CS-25-144
Computer Science Department
School of Computer Science, Carnegie Mellon University



CMU-CS-25-144

Computational Lens Design

Arjun Teh

Ph.D. Thesis

November 2025

CMU-CS-25-144.pdf


Keywords: Differentiable Rendering, Computational Design, Lens Design, Ray Tracing, Gradient Index Materials, Markov Chain Monte Carlo

Cameras are ubiquitous in modern life, from smartphones to autonomous vehicles. To produce high-quality, aberration-free images, manufacturers invest significant resources in precision lens design in order to produce cameras that meet the demands of all these downstream applications. However, traditional lens design tools are limited to a set of lens design tasks, and the burden of designing lenses is largely placed on an expert designer. The methods developed in this thesis seek to address fundamental limitations of existing lens design tools, which only focus on optimizing continuous parameters of a fixed lens design for sharpness. These contributions enable the optimization of complex lens designs that were previously computationally expensive or impossible to optimize, which allows for designers to more quickly and efficiently explore the vast design space of lenses.

Firstly, we develop a method for calculating unbiased gradients of light throughput, enabling the optimization of lens speed. We show previous methods ignore the effect of the lens pupil when calculating gradients and thus result in biased estimates. In order to address the pupil, we devise an object referred to as a warp field that accurately accounts for the effects of the pupil on the objective function. With pupil aware gradients, we enable the direct optimization of lens speed, or light throughput. We demonstrate the effectiveness of our method on a variety of lens design tasks, including enumerating a tradeoff space between throughput and sharpness.

Secondly, we develop a Markov chain Monte Carlo (MCMC) method that combines gradient-based optimization of continuous parameters with discrete mutations that change the number of elements in a lens design. A lens with a fixed number of elements is limited by a Pareto front the describes how much throughput and sharpness can be achieved. By allowing the number of elements to change during optimization, we can explore a larger design space and find designs that are better in terms of both throughput and sharpness. We show that our method constitutes a valid sampler and is effective at finding high quality lens designs.

Lastly, we address how to add more complicated types of lens elements to our framework. Gradient index lenses are hard to optimize with traditional techniques because of the large number of variables to optimize. We derive a method for calculating gradient through nonlinear ray tracing that has an order of magnitude lower memory requirements than existing methods. This enables our method to explore many different applications of gradient index optics, such as building mutliview displays and building more efficient fiber optics.

101 pages

Thesis Committee:
Ioannis Gkioulekas (Co-chair)
Matthew O'Tooler (Co-chair)
James McCann
Bernd Bickel (ETH Zürich)

Jignesh Patel, Interim Head, Computer Science Department
Martial Hebert, Dean, School of Computer Science

Creative Commons: CC-BY (Attribution)


Return to: SCS Technical Report Collection
School of Computer Science

This page maintained by reports@cs.cmu.edu