Opticalpy - Optical raytracing in Python
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 !
What makes this package special ?
-
It allows for modeling setup that use dispersive elements (gratings, prism, grism), and soon will also take dispersion in lenses into account.
-
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 !
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
- Telescopes formulas : Mike Lockwood, Amateur Telescope Making, http://loptics.com/ATM/index.html
- Optical properties of water : https://en.wikipedia.org/wiki/Optical_properties_of_water_and_ice
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)
| File | Size | Uploaded | |
|---|---|---|---|
| opticalpy-1.2.0.tar.gz | 56.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|