Well, #genuary29 is SDF's and #genuary30 is shaders, which often use SDF's. Seems natural to combine them. Last year,'s Genuary the SDF prompt lead me to spend February and March learning shaders. However... as soon as I learned enough to make something decent, I went right back to Javascript. So this sad blob is a slight reworking of where I left off in my shader journey.
Code at: https://openprocessing.org/sketch/2159483
"Universe man, Universe man
Size of the entire universe man"
https://infinitefunspace.com/p5/fly/ lets you fly through this "infinite" toroidal cube of 1M particles of ray-marched geometry spread by a moving noise function for extra texture.
Use the arrows and ASDW to move. [ and ] change the number of shapes. T toggles the text. N toggles the noise. L toggles layers.
"Particle man, particle man
Doing the things a particle can"
Play with this image live (and check out its source code) at https://infinitefunspace.com/p5/ball/ Drag with the mouse or your finger to spin it around.
It uses buffer-less rendering of 100,000 screen-aligned triangles textured with spheres. Each one is sized, colored, and animated entirely within the vertex shader.
My version of a kishimisu (instagram.com/kishimisu/) style shader, after following his YouTube tutorial but in #webgpu. Mostly all things are translatable from #glsl to #wgsl