Skip to main content

RayOpt

https://travis-ci.org/jordens/rayopt.svg https://ci.appveyor.com/api/projects/status/6e97f8o94v7r5bpb/branch/master?svg=true https://codecov.io/github/jordens/rayopt/coverage.svg?branch=master https://anaconda.org/jordens/rayopt/badges/installer/conda.svg https://img.shields.io/pypi/l/rayopt.svg

Introduction

Optics design (lenses, cavities, gaussian optics, lasers). Geometric, paraxial, and gaussian ray tracing.

Installation

Install like any usual Python package using pip, easy_install, or plain setup.py. Anaconda packages from three operating systems and three current Python versions are available through Anaconda. Install with:

conda install -c https://conda.anaconda.org/jordens/channel/ci rayopt

The distribution already contains all materials from http://refractiveindex.info/.

More materials and lenses catalogs can be obtained from the freely available versions of Oslo and Zemax, copied to catalog/ and then parsed using rayopt/library.py (see there for details on where the files are expected):

get and install http://www.lambdares.com/images/OSLO/OSLO662_EDU_Installer.exe
get and install http://downloads.radiantsourcemodels.com/Downloads/Zemax_2015-03-03_x32.exe
$ python -m rayopt.library \
  Users/Public/Documents/OSLO66\ EDU/bin/lmo \
  Users/Public/Documents/OSLO66\ EDU/bin/glc \
  Users/$USER/My\ Documents/Zemax/Glasscat \
  Users/$USER/My\ Documents/Zemax/Stockcat

Examples

Usage examples are at in their own repository as IPython Notebooks, specifically also the Tutorial.

Notes

Distance

The choice of prescription specification is a little different from most other lens design and ray tracing programs. RayOpt associates with an element (surface):

  • distance (or directional offset, measured in the global, unrotated coordinate system) of the element’s apex relative to the previous element’s apex.

  • orientation (x-y-z Euler angles in the rotating frame) with respect to the directional offset

  • element properties (type of element, curvature, aspheric and conic coefficients, focal length of an ideal element)

  • optionally, the material after the element (behind the surface)

Ray data are given at (ray intercepts) or just after (direction cosines, paraxial slopes) the respective element unless stated otherwise (e.g. incidence angles).

The choice of associating the “distance to” and not the “thickness after” with a surface has several advantages: shifts, offsets, tolerances can be implemented in a more straight forward manner, ray propagation becomes more natural and efficient (transfer, intercept, refraction), ray data at the surfaces’ apex planes does not need to be tracked. The “thickness after” does not have much meaning in ray trace data as it can only be used later when tracing toward the next element and its direction is typically ill defined. Compared to most other programs the distance data is the thickness data shifted by one element towards the object.

Object and Image

Object and image are located at the first (index 0) and last (index -1) surface respectively. This naturally allows tracking their positions, material and shape data and supports curved objects and images naturally. Further data like pupils data are maintained in the two Conjugate s of the System.

Therefore, a minimal system of a single lens consists of fours surfaces: object, the two lens surfaces (one of which can be the aperture stop) and the image surface. The offset data of the first (object) surface does play a role in ray tracing but it can be useful as it locates the global coordinate system’s origin. The material of the last (image) surface is used as it can cause incident rays to be evanescent at the image surface. This can also be compared to other programs where the thickness of the image surface is never relevant or the material in object space and the position of the lens has to be tracked somewhere else depending on the implementation.

Metadata

Release files for rayopt 0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rayopt 0.2
File Size Uploaded
rayopt-0.2.tar.gz 1.3 MB Details

Release files / rayopt-0.2.tar.gz

Download URL rayopt-0.2.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
aa4f4bbca362083f01b19365d2f3ba6aeba6fced3a122f9675c9cd45ef5e441c
BLAKE2b-256 checksum
How to use checksums
83817cb43697df1f49667485ee4179ef9962dc91b0d1e5ac0d2a19994ef7130c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2 This release

1 release file

0.1

1 release file

0.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page