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:

  1. Installation — install Optiland with pip install optiland

  2. Tutorial 1a — Optiland for Beginners — build and visualize your first lens

  3. Tutorial 1b — Lens Properties & Prescription — paraxial properties and surface data

  4. Tutorial 2c — Aberration Analyses — spot diagrams, ray fans, and wavefront errors

Start with Tutorial 1a


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:

  1. Quickstart — Your First 5 Minutes — a complete 5-minute tour from install to optimization

  2. API Cheat Sheet — copy-paste snippets for the 20 most common tasks

  3. Tutorial 4d — Lens Catalogue Integration — import off-the-shelf catalog lenses

  4. Tutorial 3d — Optimization Case Study (Cooke Triplet) — full optimization workflow

Go to the Quickstart


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:

  1. Tutorial 7a — Differentiable Ray Tracing Hello World — switch to PyTorch and compute gradients

  2. Tutorial 7b — Differentiable Lens Optimization — gradient-descent optimization with autograd

  3. Configurable Backend — backend architecture, device management, and precision control

  4. Tutorial 3b — Advanced Optimization — multi-operand merit functions and advanced solvers

Start with Tutorial 7a


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:

  1. Architecture Overview — high-level codebase map and key design decisions

  2. Extension Recipes — step-by-step recipes for the 8 most common extension scenarios

  3. Tutorial 8a — Custom Surface Types — add a new geometry class end-to-end

  4. Tutorial 8b — Custom Coating Types — add a custom coating interaction model

Read the Developer’s Guide