POPPY (Physical Optics Propagation in PYthon) is a Python package that simulates physical optical propagation including diffraction. It implements a flexible framework for modeling Fraunhofer (far-field) diffraction and point spread function formation, particularly in the context of astronomical telescopes. POPPY was developed as part of a simulation package for JWST, but is more broadly applicable to many kinds of imaging simulations.
What this software does:
What this software does not do:
While this current version only supports far-field calculations, future versions may add near-field (Fresnel) calculations as well, if interest and usage warrant that.
Quickstart IPython Notebook
This documentation is complemented by an IPython Notebook format quickstart tutorial.
Downloading and running that notebook is a great way to get started using POPPY. The documentation following here provides greater details on the algorithms and API.