This is awesome. My current hobby project is getting 3D SDF meshing good enough so that I can use them instead of building out of meshes. I’m starting from marching triangles but it’s very much an open problem. Everything in JS, with the goal of building models in JS.
shadertoy: given a pixel coordinate, write a function to return a color.
geotoy: write a function to return vertices
In shadertoy, to draw cube on a 1280x720 screen requires your function to be called 921k times. To draw a cube in geotoy requires your function to be called 36 times. That's over simplifying but saying one is fast and one is a slow is comparing atoms to balls. Shadertoy = describe every atom, geotoy = describe the shape. again, bad analogy I suppose, but the orders of magnitude difference are somewhat help explain why one is fast and one is slow (yes though, you can generate a geotoy that will be slow and a shadertoy that will be fast). Similarly describing every atom means you can describe fog or god rays or caustics etc. Describing the shape won't do that.
PS: I think geotoy is cool. nothing above is meant to detract from that. Just to explain, probably poorly
In some way, multicellular lifeforms (like a cherry tree or a human) also have to contain a kind of formulation like this so that they result in the fractals of branches and blood vessels as well as the overall structure.
Unsolicited feedback: I think if rotation decelerated quickly to no velocity instead of instantly stopping when you let go, it would feel more natural.
https://cprimozic.net/blog/the-tech-behind-geotoy/#overview