Skip to main content

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

Metadata

Release files for opticalpy 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for opticalpy 1.2.0
File Size Uploaded
opticalpy-1.2.0.tar.gz 56.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for opticalpy 1.2.0
File Interpreter ABI Platform
opticalpy-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 109.6 kB

Release files / opticalpy-1.2.0.tar.gz

Download URL opticalpy-1.2.0.tar.gz
Size 56.9 kB
Tags Source
SHA-256 checksum
How to use checksums
231e35cdc9a5c0ef909c4f2f58a195c7d5750e31b58d98f206de35538c52af9e
BLAKE2b-256 checksum
How to use checksums
c48f454f2509886af947eee90c13d7ee43e10d4ea247c1cd804cff05efc0a789
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.11.5

Release files / opticalpy-1.2.0-py3-none-any.whl

Download URL opticalpy-1.2.0-py3-none-any.whl
Size 52.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
08eddf110c308060e1d14b683fb554ee3f34a574df759940471e6c60e3ecc8b6
BLAKE2b-256 checksum
How to use checksums
ad357ccc3dc4ca089a0166107fa3e66f79d3f47b0aeefdafcb2b22a7b48ab00f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.11.5

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page