Thanks :) Glad you enjoyed it!
I’m using 2d signed distance fields and exponential smooth minimum.
https://www.iquilezles.org/www/articles/distfunctions2d/distfunctions2d.htm
https://www.iquilezles.org/www/articles/smin/smin.htm
The cool thing about the exponential smooth min is you can add an arbitrary number of sdfs together smoothly and very efficiently.
The parts of the rings are vesica sdfs transformed by the first part of exp smoothmin with additive blending into a framebuffer. I then do a second pass to “decode” the framebuffer, applying the last part of exp smoothmin and colorizing it.
Sorry if that was a very dense explanation.
Btw, I almost ended up not submitting the game because I spent most of the game jam fiddling with those sdf rings and had no idea what to use them for until the very last hours.