Skip to content

HarrisonKramer/optiland

Repository files navigation

Tests Documentation Status codecov Maintainability Stars License: MIT

Optiland

Table of Contents
  1. Introduction
  2. Documentation
  3. Installation
  4. Functionalities
  5. Learning Guide
  6. License
  7. Contact
  8. Acknowledgements & References

Introduction

Optiland is a Python-based, open-source lens design and analysis framework. With a simple and intuitive Python interface, Optiland enables the design, optimization, and analysis of complex optical systems, from paraxial and real raytracing to polarization, coatings, and wavefront analyses. It supports 2D/3D visualization, comprehensive tolerancing, local and global optimization, and freeform optics, among other features. Built on the speed of NumPy and SciPy, Optiland delivers computational efficiency and flexibility across a wide range of optical tasks.

Get started immediately with Optiland Tutorial #1, see the extensive Learning Guide, or read the full documentation at Read the Docs.

U.S. patent 2959100

Python code to generate this 3D visualization:

from optiland.samples.objectives import ReverseTelephoto
lens = ReverseTelephoto()
lens.draw3D()

Documentation

The full documentation for Optiland is hosted on Read the Docs.

Explore the Example Gallery for a wide range of lens designs and analyses created with Optiland.

Installation

You can install the package using pip. To do so, follow these steps:

  1. Open a terminal or command prompt.

  2. Run the following command to install the package:

    pip install optiland

Functionalities

  • Lens entry
  • 2D/3D visualization
  • Paraxial and aberration analyses
  • Real and paraxial ray tracing, including aspherics and freeforms
  • Polarization ray tracing
  • Real analysis functions (spot diagrams, ray aberration fans, OPD fans, distortion, PSF, MTF, etc.)
  • Glass and material catalogue (based on refractiveindex.info)
  • Design optimization (local and global)
  • Wavefront and Zernike analysis
  • Tolerancing, including sensitivity analysis and Monte Carlo methods
  • Coating and surface scatter (BSDF) analysis
  • Zemax file import

The code itself is in constant flux and new functionalities are always being added.

Learning Guide

This guide gives a step-by-step approach to learning how to use Optiland.

  1. Introduction to Optiland
  2. Real Raytracing & Analysis
  3. Aberrations
  4. Optical Path Difference (OPD), Point Spread Functions (PSF) & Modulation Transfer Function (MTF)
  5. Optimization
  6. Coatings & Polarization
  7. Advanced Optical Design
  8. Tolerancing
  9. Lens Catalogue Integration
  10. Extending Optiland
    • Tutorial 10a - Custom Surface Types
      • Adding new surface types
    • Tutorial 10b - Custom Coating Types - Update in progress (target completion: Nov. 2024)
      • Adding new coating types
    • Tutorial 10c - Custom Optimization Algorithms - Update in progress (target completion: Nov. 2024)
      • Adding new optimization approaches
  11. Machine Learning in Optical Design
    • Tutorial 11a - Reinforcement Learning for Lens Design - Update in progress (target completion: Nov. 2024)

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Kramer Harrison - kdanielharrison@gmail.com

Acknowledgements & References