I designed this tool primarily for my own research, but now it is mostly ready for regular use, so now I am happily announcing…
AtmosphericTurbulenceSimulator.jl [not registered yet] — a package that simulates the effect of atmospheric turbulence on stellar images! ![]()
Install by pasting this into the REPL:
using Pkg
Pkg.add(url="https://github.com/aryavorskiy/AtmosphericTurbulenceSimulator.jl")
What’s inside
- Phase perturbations modeled following Kolmogorov turbulence
- The image is formed using Fourier optics framework
- Three true sky models supported (single, double, extended sky)
- Can simulate long exposures and wide spectral bands
- High-performance — supports multi-threading and CUDA.jl
- Kinda like AtmosphericTurbulenceSimul, but in Julia
- May be useful for testing HCI algorithms or possibly designing instruments
What’s next
There are features I am planning to implement before registering the package — namely proper frozen-flow so that adjacent frames are no longer independent, more flexible aperture function helpers, Unitful.jl support, better interactivity to simulate images on-demand and some other things.
Also this package needs a shorter name. Possibly SpeckleSimulator.jl?
AI usage disclosure
AI assistance was involved in the development process of this package for implementing part of the features, writing part of the unit tests, documentation and release notes (not including this post!). All changes made by AI were manually reviewed and almost always heavily refactored.