Skip to main content


Useful tools for Adaptive Optics analysis for the Python Programming Language. If using this code for a publication please cite the aotools paper (M. J. Townson, O. J. D. Farley, G. Orban de Xivry, J. Osborn, and A. P. Reeves, "AOtools: a Python package for adaptive optics modelling and analysis," Opt. Express 27, 31316-31329 (2019)).

AOtools is available on github.


Simulation 'Optique Adaptative' with Python

Soapy is a Monte-Carlo Adaptive Optics Simulation toolkit written in Python. soapy can be used as a conventional end-to-end simulation, where a large number of AO configurations can be created simply by editing a configuration file. Its real power lays in modular nature of objects, such as WFSs, DMs and reconstructors which can be taken and used as building blocks to construct new and complex AO ideas and configurations.

SOAPY is available on github.


Astrosat is a Python package which calculates which satellites can be seen by a given observer in a given field of view at a given observation time and observation duration. This includes the geometry of the satellite and observer but also estimates the expected apparent brightness of the satellite to aid astronomers in assessing the impact on their observations.

If using astrosat, please cite our paper (Osborn et al., MNRAS, 509(2), 2022).

Astrosat is available on github.


Fourier domain Adaptive optics Simulation Tool

FAST is a simulation tool that utilises a Fourier domain AO model to enable rapid Monte Carlo characterisation of free space optical links between the Earth and satellites. For more details, see the paper

FAST is available on github.