Zdog – Pseudo-3D JavaScript engine for Canvas and SVG
I notice that there are some issues with depth sorting (which I guess would be expected). It'd be complicated, but one way you could do the same effect without that issue is to use signed distance fields in a shader:https://www.iquilezles.org/www/articles/distfunctions/distfu...(Demo at the bottom of the page)