Optiland documentation#
Open-source optical design, analysis and differentiable ray tracing in Python. Build, trace and optimize lens and mirror systems with a NumPy backend for everyday CPU work or a PyTorch backend for GPU acceleration and automatic differentiation.
Find your path
Build and visualize your first lens in Python, then learn to read spot diagrams, ray fans and wavefront maps.
Get productive fast: import catalog lenses, reproduce existing designs, and run optimization and tolerancing workflows.
Use the PyTorch backend for autograd, differentiable optimization and end-to-end machine-learning pipelines.
Add surface types, coatings, analyses or operands, and understand the architecture behind them.
What Optiland does
Sequential systems with spherical, conic, aspheric, freeform and diffractive surfaces; tilts, decenters and fold mirrors; paraxial, real and polarization-aware ray tracing.
Spot diagrams, ray fans, distortion, field curvature, OPD, Zernike decomposition, PSF and MTF, encircled energy, image simulation and more.
Local and global optimizers, user-defined operands, Glass Expert categorical optimization, sensitivity and Monte Carlo tolerancing.
A PyTorch backend that makes every trace differentiable: gradients, GPU acceleration and integration with deep-learning workflows.
Illumination design, stray-light and ghost analysis with scattering, coatings, detectors and differentiable optimization.
Custom surfaces, coatings, operands and analyses; Zemax, CODE V and OSLO import; vendor lens catalogs; a JSON file format; plugin packages.
Know what you want to do?
The How Do I …? page is organized by task rather than by feature: find your question, follow the link, copy the pattern.
Run Optiland in an in-page Python kernel. Nothing to install.
The complete tutorial series, from foundational lens design to machine learning and non-sequential ray tracing.
Note
You are reading the documentation for Optiland 0.6.2.post52+g00c0837f, built
continuously from the master branch of
optiland/optiland.