Sunplot

Now with 0% more GPU!

Astronomy

Coordinates:
Start time:

Color

Color model:
Mirror hues
Shift hues by °

Lightness

White ceiling
Min. daytime brightness
Day-night transition width
Max. nighttime brightness
Black floor
Lightness (%)050100Azimuth (degrees)-90090

About

What is this?The image represents the position of the sun every moment of the year at your chosen coordinates. Each day is a 1px-wide column of the image, with 00:00 at the top and 23:59 at the bottom. Columns progress from left to right.

The color of a pixel describes where the sun is in the sky. Lightness represents the sun's azimuth: dark colors mean the sun is low below the horizon, and lighter colors mean the sun is higher overhead. The hue comes from mapping the sun's compass direction onto a color wheel.

How does it work?

The positions of the sun are computed in horizontal coordinates. This happens in parallel on the GPU using algorithms from Astronomy Answers. For the sake of speed, we only sample every 5 minutes, which gives plenty of resolution.

The sun's coordinates are then transformed into colors, also on the GPU. The raw colors don't tend to convey anything very clearly, so the "lightness" paramaters are used to tune colors for better contrast.

Who made it?

Danonymous, mostly. This is a much-optimized (~1000x speedup) rewrite of a project that they and DoubleAyKay created before they got good. Concept is jointl, while this implementation is solely Dan's work.

None of the code was written or assisted by LLM. Dan did use one to help find potential libraries, but writing the code is the fun part. Also, only one of those libraries (TypeGPU) actually made it into the finished project; the rest is all hand-spun as a triumph of Dan-kind.

Shoutouts to TypeGPU, which kept me from having to learn a shader language, and to Bjorn Ottoson, who created the Okhsl color space along with open-source color conversion code.