Just use a vector math library, it's kind-of-cool to do it yourself, but it quickly becomes a pain. Most rust libraries seem kind-of-sucky (poor API's, lots of indirection etc.). Maybe ultraviolet?
Even though I'm not trying to make it generic, somehow the code has grown a lot from the 790 lines in shadertoy. Some of this is expected (eg webgl setup, rust is more verbose), but some just is because????
The JS for the WASM is quite large due to all the binding code.
Firefox is slow for some reason - even though there are only a handful of draw calls....
Planned features for swoop include:
Things I'm considering: