Utilizes Raylib for Go bindings available here
The latest version of this concept is written in C, located here under src/rlu. Some good examples are under src/modules/atmos.c. The bindings are pretty much 1:1 for what the Go bindings cover, so the code can be made to be the same in Go as in C.
go get -v -u github.com/gen2brain/raylib-go/raylib