Start Here
Optiland is a Python framework for optical design, analysis, and optimization. It covers everything from basic paraxial layouts to GPU-accelerated differentiable ray tracing. Whether you are tracing your first ray or training a differentiable lens model, this page will route you to the right starting point.
Choose Your Path
Optics Student / First-Timer
Goal: understand Optiland basics, trace rays, and visualize a lens system from scratch.
You know the fundamentals of optics (lenses, focal lengths, rays) but are new to Optiland or to programmatic optical design. Start here to build your first lens in Python.
Recommended path:
Installation — install Optiland with
pip install optilandTutorial 1a — Optiland for Beginners — build and visualize your first lens
Tutorial 1b — Lens Properties & Prescription — paraxial properties and surface data
Tutorial 2c — Aberration Analyses — spot diagrams, ray fans, and wavefront errors
Optical Engineer (Practitioner)
Goal: get productive fast, import existing designs, and run professional analyses.
You are migrating from Zemax, CODE V, or OSLO and want to reproduce your existing designs or leverage Optiland’s optimization and tolerancing workflows quickly.
Recommended path:
Quickstart — Your First 5 Minutes — a complete 5-minute tour from install to optimization
API Cheat Sheet — copy-paste snippets for the 20 most common tasks
Tutorial 4d — Lens Catalogue Integration — import off-the-shelf catalog lenses
Tutorial 3d — Optimization Case Study (Cooke Triplet) — full optimization workflow
Computational Researcher
Goal: use the PyTorch backend for autograd, differentiable optimization, and ML pipelines.
You are working on differentiable optics, end-to-end training of optical systems, or integrating Optiland into a PyTorch-based research pipeline.
Recommended path:
Tutorial 7a — Differentiable Ray Tracing Hello World — switch to PyTorch and compute gradients
Tutorial 7b — Differentiable Lens Optimization — gradient-descent optimization with autograd
Configurable Backend — backend architecture, device management, and precision control
Tutorial 3b — Advanced Optimization — multi-operand merit functions and advanced solvers
Software Contributor / Extender
Goal: add new surface types, analysis classes, or operands; understand the codebase architecture.
You want to extend Optiland with custom components, integrate it into a larger system, or contribute a new feature back to the project.
Recommended path:
Architecture Overview — high-level codebase map and key design decisions
Extension Recipes — step-by-step recipes for the 8 most common extension scenarios
Tutorial 8a — Custom Surface Types — add a new geometry class end-to-end
Tutorial 8b — Custom Coating Types — add a custom coating interaction model