Optics Tool Kit
Project description
otk - optics toolkit
Toolkit for doing optics in Python
Features include
- 3D engine based on sphere tracing for simple robust implicit surfaces and constructive solid geometry,
- nonsequential ray tracing engine,
- programmatic lookup of full RefractiveIndex.INFO database,
- import of lenses and glass catalogs from Zemax.
Installation
Installation methods include:
- Clone repository and interact with it using Poetry e.g.
poetry run view-zmx <zemax-file>
orpoetry shell
. - Install from package repository (e.g. PyPi) with pip:
pip install otk
. - Development mode with [:
poetry add <path-to-local-repo>
. - From package repository (e.g. PyPi) with Poetry:
poetry add otk
.
Getting started
- Check out the scripts in examples.
- View one of the lenses in designs with the command line tool
view-zmx
.
Documentation
(Yep, this is it at the moment.)
Command line tools
view-zmx <zemaxfile>
launches a viewer of a Zemax lens.
Packages
otk.sdb
- Geometry library based on signed distance bounds.otk.rt1
- First attempt at ray tracing package. Superseded by otk.rt2.otk.rt2
- Ray tracing package with flexible geometry based on otk.sdb. See alsootk.rt2_scalar_qt
.otk.asbp
- Angular spectrum beam propagation.otk.abcd
- 1D ray transfer matrix ("ABCD matrices") tools.otk.rtm4
- abstractions for 1D ray transfer matrices, building uponotk.abcd
.otk.pgb
- parabasal Gaussian routines for doing wave optical calculations with ray tracing results. Builds uponotk.rt1
.otk.h4t
- homogeneous 4x4 transformation matrices.otk.paraxial
- basic paraxial optics calculations.otk.math
- various optics-specific math functions.otk.pov
- tools for generating POV-Ray scenes of optical setups.otk.pov
- for calculating properties of prisms.otk.qt
- Qt-related utilitiesotk.ri
- refractive index tools.otk.trains
- axially symmetric optical systemsotk.v3
- operations on homogeneous vectors in 2Dotk.v4
- operations on homogeneous vectors in 3Dotk.v4b
- broadcasting operations on homogeneous vectors in 3Dotk.zemax
- reading Zemax files
Roadmap
- Import of wavelengths, field, and stop from Zemax.
- Variables to allow rapid changes for animation and optimization.
- Cool demos: rainbow, lighthouse.
- Improve physical & wave optics.
- Upgrade parabasal Gaussians to use rt2.
- Upgrade asbp to use rt2.
- Demos e.g. spherical aberration acting on Gaussian beam, Arago spot.
Folder contents
otk
- the Python package itself. Package data includesotk/properties
- material properties databases.otk/notes
- miscellaneous notes including derivations.
examples
- example scripts.
Package management
otk uses Poetry for package management. This means that dependencies, version, entry points etc are all defined in pyproject.toml
.
Using PyPi test instance
To setup, add test.pypi.org to your Poetry configuration with poetry config repositories.test https://test.pypi.org/legacy/
. Note the trailing slash.
To publish (after poetry build
), poetry publish -r test
.
To test that it installs properly,
- create and activate a virtual environment, and
- per instructions,
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple otk
.
However, I was unable to re-upload the same version (i.e. to correct a mistake) to test.pypi.org (even after logging in to the website and deleting the release).
Testing
Test framework is pytest and tox.
Contributing
Please do.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file otk-0.1.2.tar.gz
.
File metadata
- Download URL: otk-0.1.2.tar.gz
- Upload date:
- Size: 1.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.0 Darwin/18.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf5b86301555082e973d1c9223c3e7f26d3d9c49295c3bf829400601481feedb |
|
MD5 | 0ff4a4df2ab74f4e8ca5751518159a71 |
|
BLAKE2b-256 | acacab75ae03afef2222c999a37988d6dca17e6d4e57e099c67a552c5ae54594 |
File details
Details for the file otk-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: otk-0.1.2-py3-none-any.whl
- Upload date:
- Size: 2.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.0 Darwin/18.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 179716458ccc1e8a0119c50fb834ff9be50f99bb458026bc4114fa923ac4f3d5 |
|
MD5 | d329a7baff62eea0ae14b23df0b3d4d1 |
|
BLAKE2b-256 | 73cdb26c2be5eeb29bad4dc615eaaa8839ee1551ccfe5b602a9d2a21b465fbc7 |