Skip to main content

Tools for image forming optical design and analysis

Project description

Installation

rayoptics makes use of PyQt5 for the desktop version GUI. This software is automatically installed and available when using Anaconda. Alternatively, PyQt5 may be downloaded using pip3

> pip3 install pyqt5

rayoptics itself is installed using pip3 as well.

> pip3 install rayoptics

Documentation

The documentation for ray-optics is hosted at Read the Docs

Tools for image forming optical design and analysis

The ray-optics project has several goals, both in the optical domain and in the software development domain

  • Rethink how image forming optical calculations are done absent historical constraints on computer speed and memory

  • Serve as a reference implementation of basic ray tracing and wavefront analysis algorithms

  • Leverage Python libraries to avoid reinventing the wheel

  • Look for architectures that can be deployed on the desktop (e.g. using Qt), using (Jupyter) notebooks, and in mobile environments

Image forming optical design and analysis was one of the first domain areas to be implemented on the first electronic computing machines. The calculations were so voluminous and tedious that automation was a tremendous benefit. The computational workflow initially followed that used by the human computers of the day. The capabilities of electronic computers were also extremely limited.

Computers are vastly more powerful now than they were when the venerable CODE V program was initially developed. Zemax and Oslo date from the early IBM PC days, when both speed and memory were limiting factors. The software tools available then were limited as well. In order to gain acceptable performance, compiled languages such as C and FORTRAN were required. Graphical user interfaces were also expensive to develop and were often considered secondary in importance by vendors.

Optical calculation technology can be considered a mature field. There is a long history in the literature of investigations tying optical theory to calculation approaches that maintain accuracy, handle corner cases, etc. Much of this knowledge is embedded in production optical design software; having it available in an open source implementation brings this knowledge out of the literature and makes it accessible to students and researchers.

The advent of scripting environments like Python make a fresh look at optical design calculations worthwhile. Python has many advantages for scientific and engineering applications, including libraries for numerical calculations, a variety of graphics options including a very full featured plotting library, and support for data science applications that look promising for managing data generated during extensive analysis of optical systems. There is also good support for unit testing of Python software, as well as debugging and performance profiling.

Finally, computational notebooks, such as those of the Jupyter project, provide the ability to document reproducibly the implementation of an algorithm and results produced by the algorithm.

Note

This project has been set up using PyScaffold 3.1. For details and usage information on PyScaffold see https://pyscaffold.org/.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rayoptics-0.3.0.tar.gz (264.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rayoptics-0.3.0-py3-none-any.whl (153.9 kB view details)

Uploaded Python 3

File details

Details for the file rayoptics-0.3.0.tar.gz.

File metadata

  • Download URL: rayoptics-0.3.0.tar.gz
  • Upload date:
  • Size: 264.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.3 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.6.7

File hashes

Hashes for rayoptics-0.3.0.tar.gz
Algorithm Hash digest
SHA256 0a6c17b5e12a97ebf7bfcd300ce52dfed1005d53d9aa250c367253a6733d0e64
MD5 109487f309027e36687e60a5016c657f
BLAKE2b-256 2243236a3b8f9ef22256bb7c625fc4bcc4485cfe8b4066f11bc1b38d0e3fbdb6

See more details on using hashes here.

File details

Details for the file rayoptics-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: rayoptics-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 153.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.3 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.6.7

File hashes

Hashes for rayoptics-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 047ab78d4a2a751fa688eb882da636bcf98ad34f247300b78a5970eebd659af4
MD5 a6139fab07de3118464659f18176a567
BLAKE2b-256 833c7d7c13467da1bfad86fabeb01d48c10f718f104f247598d7642e4b759584

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page