Skip to main content

Exact geometrical optics including dispersion to learn and design optical instruments

Project description

Opticalpy - Optical raytracing in Python

PyPI - Version

This package in the making offers the possibility to create optical setup and visualize the light rays going through it.

It originated as a way to better understand how instruments in astronomy worked, and allow to design them for amateur scientific endeavours. However, this package can be used in very different fields !

Czerny-Turner spectrograph

What makes this package special ?

  1. It allows for modeling setup that use dispersive elements (gratings, prism, grism), and soon will also take dispersion in lenses into account.

  2. The optical elements geometry are described by parameterized curves allowing for exact interaction bewteen light rays and optical elements. This gives way better results than using discretized elements. To make this easy to use, each optical element is defined by one set of equations, that are automatically modified to place it where and in the orientation you want. The most common optical elements are already implemented, but you can add whatever you want with the method !

Cassegrain telescope

Installation

This package can be very easily installed using pip :

pip install opticalpy

Optical elements

This package integrates the following optical elements. The elements in italic aren't developed yet but should be added soon.

  • Mirror:

    • Flat
    • Parabolic
    • Hyperbolic
    • Spherical
  • Lens:

    • Spherical
    • Doublet
    • Triplet
  • Dispersive:

    • Reflection grating
    • Transmission grating
    • Prism
    • Grism
  • Filter:

    • Filter
    • Dichroic
  • Camera

  • Telescopes

    • Newtonian
    • Cassegrain
    • Ritchey-Chrétien
    • Schmidt-Cassegrain
    • Maksutov-Cassegrain

What's coming next ?

  • More elements:

    • Materials for dispersive lenses
    • Lenses arrangment (doublet, triplet...)
    • Grisms
    • More telescopes (Newtonian, Schmidt-Cassegrain, Maksutov-Cassegrain)
  • Making it easier to use:

    • Documentation
  • Future version:

    • 3D

References

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

opticalpy-1.1.1.tar.gz (50.0 kB view hashes)

Uploaded Source

Built Distribution

opticalpy-1.1.1-py3-none-any.whl (41.9 kB view hashes)

Uploaded Python 3

Supported by

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