Metadata-Version: 2.1
Name: rayoptics
Version: 0.4a2
Summary: Tools for image forming optical design and analysis
Home-page: https://github.com/mjhoptics/ray-optics
Author: Michael J Hayford
Author-email: mjhoptics@gmail.com
License: BSD 3 Clause
Description: ==========
        ray-optics
        ==========
        
        Installation
        ------------
        
        rayoptics is installed using ``pip3``.
        
        .. code::
        
            > pip3 install rayoptics
        
        Documentation
        -------------
        
        The documentation for **ray-optics** is hosted at `Read the Docs <https://ray-optics.readthedocs.io>`_
        
        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/.
        
Keywords: geometric optics, ray tracing, image forming optics,,paraxial optics, optical design, lens design,,aberrations, opd, psf
Platform: any
Classifier: Programming Language :: Python :: 3.6
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
Provides-Extra: testing
