bryancole / raypier_optics

A raytracing toolkit for optical design
Other
58 stars 8 forks source link

========================================================= Raypier - A Non-sequential optical ray-tracing framework

Raypier is a non-sequential ray-tracing framework for modelling optical systems. Its main features are:

. It's pretty fast. The tracing algorithms are written in Cython (i.e. C) and use efficient data-structures for handling many thousands of rays.

. Correctly handles polarisation

. Sequential and non-sequential tracing.

. Support for dispersion including a comprehensive library of glass-types (taken from refractive-index.info)

and diffraction-gratings

. Point Spread Function (PSF) and E-Field evaluation by summation of of Gaussian modes.

. Paraxial Gaussian mode evaluation covers generally astigmatic modes.

. Tracing support for conics section, general aspherics (conic + polnomial) and 2D polynomial surfaces.

. Zurnike polynomial surface distortions.

. An interactive user-interface with 3D model/ray rendering through VTK. Tracing is performed "live".

. A modest selection of optic-types including singlet and achromatic doublet lenses (with AR coating), plane-mirrors,

ellipsoidal mirrors, prisms

. STEP model/trace export for integration with external CAD systems

There are still a few "big" features missing:

. The documentation is not comprehensive (yet).

Requirements

Raypier requires:

Installation

The best way to install and run Raypier is using a Conda environment.

. Install miniconda (or the full Anaconda distribution)

. Create a fresh conda-environment using the environment.yml file included

in this raypier repo.