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)
  • Optical design:

    • Spot shape at focal plane
    • Design optimization (fixed and variable geometrical and shape parameters and optimization of spot sizes)
  • 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.2.0.tar.gz (56.9 kB view details)

Uploaded Source

Built Distribution

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

opticalpy-1.2.0-py3-none-any.whl (52.7 kB view details)

Uploaded Python 3

File details

Details for the file opticalpy-1.2.0.tar.gz.

File metadata

  • Download URL: opticalpy-1.2.0.tar.gz
  • Upload date:
  • Size: 56.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.5

File hashes

Hashes for opticalpy-1.2.0.tar.gz
Algorithm Hash digest
SHA256 231e35cdc9a5c0ef909c4f2f58a195c7d5750e31b58d98f206de35538c52af9e
MD5 2b571bf561c06a19cfe60a440f51bd92
BLAKE2b-256 c48f454f2509886af947eee90c13d7ee43e10d4ea247c1cd804cff05efc0a789

See more details on using hashes here.

File details

Details for the file opticalpy-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: opticalpy-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 52.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.5

File hashes

Hashes for opticalpy-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 08eddf110c308060e1d14b683fb554ee3f34a574df759940471e6c60e3ecc8b6
MD5 b2e7b030473bcc375a4bce1b4f202116
BLAKE2b-256 ad357ccc3dc4ca089a0166107fa3e66f79d3f47b0aeefdafcb2b22a7b48ab00f

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