Tools and tutorial on practical ray tracing for microscopy

Neurophotonics. 2021 Jan;8(1):010801. doi: 10.1117/1.NPh.8.1.010801. Epub 2021 Jan 21.

Abstract

Significance: An advanced understanding of optical design is necessary to create optimal systems but this is rarely taught as part of general curriculum. Compounded by the fact that professional optical design software tools have a prohibitive learning curve, this means that neither knowledge nor tools are easily accessible. Aim: In this tutorial, we introduce a raytracing module for Python, originally developed for teaching optics with ray matrices, to simplify the design and optimization of optical systems. Approach: This module is developed for ray matrix calculations in Python. Many important concepts of optical design that are often poorly understood such as apertures, aperture stops, and field stops are illustrated. Results: The module is explained with examples in real systems with collection efficiency, vignetting, and intensity profiles. Also, the optical invariant, an important benchmark property for optical systems, is used to characterize an optical system. Conclusions: This raytracing Python module will help improve the reader's understanding of optics and also help them design optimal systems.

Keywords: coding; illumination; imaging systems; optical engineering.