Skip to content

AutoLens

Automated lens design from scratch using differentiable optimization and curriculum learning.

AutoLens designs multi-element optical lens systems from flat surfaces — no human initialization required. Built on DeepLens, it combines differentiable ray tracing with curriculum learning to transform a hard global optimization problem into a sequence of easier subproblems.

Key Features

  • Ab initio lens design — starts from flat (zero-curvature) surfaces and converges to high-quality lens prescriptions without manual initialization
  • Curriculum learning — gradually increases aperture size during optimization, avoiding local minima that trap conventional optimizers
  • Differentiable ray tracing — full gradient backpropagation through multi-element lens systems via PyTorch autograd
  • Two-phase optimization — Adam for global search, L-BFGS with parameter reparametrization for fast local convergence
  • Optical regularization — constraint losses prevent self-intersection, enforce manufacturability, and control total track length
  • Standard file I/O — read/write Zemax .zmx, Code V .seq, and JSON lens formats

Quick Install

git clone https://github.com/vccimaging/AutoLens.git
cd AutoLens
pip install -r requirements.txt

Getting Started