Poke (pronounced /poʊˈkeɪ/ or po-kay) is a ray-based physical optics module for Python. It's named this because the name encodes the k-vector (which we are raytracing!) and the E-vector (which we are propagating!). Also I came up with the name before lunchtime, when I was craving fish from Suisan.
Poke is a package to interface with industry-standard raytracing engines to do physical optics calculations based on ray data. The goal is to open-source the ray-based propagation physics and only rely on the raytracers (Zemax OpticStudio, CODE V, etc.) to do raytracing. The development was inspired by the need to add more propagation physics modules for Coronagraphs to expand the design space, but Poke has been used to characterize existing observatories as well.
Presently Poke supports:
Disclaimer: Poke is currently in very early stages of development. Documentation, unit tests, and more features are being developed and added daily. If you'd like to contribute to Poke, please open an issue to start a discussion.
If you are interested in contributing / using Poke, feel free to open an issue or contact me at jashcraft@arizona.edu.
Poke is actively developing so we reccomend installation by cloning the repository and running setup.py
git clone https://github.com/Jashcraf/poke/
cd poke
pip install .
If you wish to use Poke with a commercial ray tracer, we require optional additional dependencies to run the raytrace via the API
zosapi
package that is up on PyPi by Michael Humphreyspywin32
installedContributors:
Acknowledgements:
Thanks to Dr. Max Millar-Blanchaer for inspiring the Raybundle class, and Dr. Ramya Anchce for overall helpful discussions on polarization ray tracing. Thanks to Trent Brendel, Kevin Z. Derby, and Henry Quach for helpful discussions and testing during the initial development phase. Thanks to Brandon Dube for the sage Python advice. Thanks to Kian Milani for helping test poke on supercomputer GPUs. This work was supported by a NASA Space Technology Graduate Research Opportunity.
References
Other Acknowledgements