Skip to content

HarrisonKramer/optiland

Repository files navigation

Tests Stars Forks Watchers License

Optiland

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

Introduction

Optiland is a lens design and analysis program written in Python 3. It provides an intuitive and efficient interface for defining and visualizing lens systems, performing optimization of lens systems based on user-defined merit functions and variables, as well as analyzing optical systems using geometric and diffraction-based methods. Leveraging computational libraries such as NumPy and SciPy, Optiland delivers exceptional performance and efficiency in handling complex optical computations.

Get started immediately with Optiland Tutorial #1 or see the extensive Learning Guide.

U.S. patent 2959100

Python code to generate this 3D visualization:

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

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 catalogue (based on refractiveindex.info)
  • Design optimization (local and global)
  • Wavefront and Zernike analysis
  • Coating and surface scatter (BSDF) analysis

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
    • Tutorial 8a - Introduction to Tolerancing - Update in progress (target completion: Nov. 2024)
      • Sensitivity studies
    • Tutorial 8b - Advanced Tolerancing - Update in progress (target completion: Nov. 2024)
      • Monte Carlo-based Tolerancing
  9. Lens Catalogue Integration
  10. Extending Optiland
    • Tutorial 10a - Custom Surface Types - Update in progress (target completion: Nov. 2024)
      • 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 GPL-3.0 License. See LICENSE for more information.

Contact

Kramer Harrison - kdanielharrison@gmail.com

Acknowledgements & References