# \[ANN\] AtmosphericTurbulenceSimulator.jl

**URL:** <https://discourse.julialang.org/t/ann-atmosphericturbulencesimulator-jl/137609>\
**Category:** Package Announcements\
**Tags:** package, announcement, simulations, astronomy\
**Created:** [June 13, 2026, 10:37pm UTC](https://discourse.julialang.org/t/ann-atmosphericturbulencesimulator-jl/137609 "2026-06-13T22:37:41Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![aryavorskiy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aryavorskiy/32/43466_2.png) [@aryavorskiy](https://discourse.julialang.org/u/aryavorskiy)\
**Post date:** [June 13, 2026, 10:37pm UTC](https://discourse.julialang.org/t/ann-atmosphericturbulencesimulator-jl/137609/1 "2026-06-13T22:37:41Z")

</div>

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](https://github.com/aryavorskiy/AtmosphericTurbulenceSimulator.jl) **[not registered yet]** — a package that simulates the effect of atmospheric turbulence on stellar images! 🎉

> **[GitHub - aryavorskiy/AtmosphericTurbulenceSimulator.jl: A simple toolchain for simulating atmospheric...](https://github.com/aryavorskiy/AtmosphericTurbulenceSimulator.jl)**
>
> A simple toolchain for simulating atmospheric speckles

Install by pasting this into the REPL:

```julia
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](https://github.com/oguyon/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.

---

<div class="post-metadata">

**Author:** ![aryavorskiy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aryavorskiy/32/43466_2.png) [@aryavorskiy](https://discourse.julialang.org/u/aryavorskiy)\
**Post date:** [September 9, 2026, 1:16am UTC](https://discourse.julialang.org/t/ann-atmosphericturbulencesimulator-jl/137609/2 "2026-09-09T01:16:34Z")

</div>

# Version v0.5.3 released!

The package is getting closer to becoming registration-ready. Since last announcement, some cool new features were implemented:

- Physical quantities are now supported via Unitful.jl
- Metal.jl now works as a GPU backend thanks to stricter type semantics and FFT support [finally landing in the upstream](https://github.com/JuliaGPU/Metal.jl/issues/270)
- Several bugs fixed
- Nice new logo! 🎉

Another new thing is an interactive demo, built as a Makie.jl dashboard. Just paste the following lines into your terminal to try it out!

```julia
using AtmosphericTurbulenceSimulator, GLMakie # WGLMakie will also do
speckle_viewer()

```

 ![Screenshot 2026-09-09 at 4.07.16](https://global.discourse-cdn.com/julialang/original/3X/1/8/1879f15bc823520fd6a1b50818039c492482c1e1.png)

The only thing blocking from registering this is the absence of more flexible APIs. This will land in v0.6, allowing the end user to modify the simulation pipeline much more freely.  
Also, the name. Looks like SpeckleSimulator.jl will be it. 🙃

---

<div class="post-metadata">

**Author:** ![Paulo\_Jabardo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/paulo_jabardo/32/3196_2.png) [@Paulo\_Jabardo](https://discourse.julialang.org/u/Paulo_Jabardo)\
**Post date:** [September 9, 2026, 1:19pm UTC](https://discourse.julialang.org/t/ann-atmosphericturbulencesimulator-jl/137609/3 "2026-09-09T13:19:51Z")

</div>

Very cool! It makes me miss volume 2 of Statistical Fluid Mechanics
