Wow that's really cool! Any performance challenges?
The biggest win really is to avoid allocating memory when the scene plays. So as you set up your scene, I have all sorts of tricks to pre-evaluate what the scene will need, and allocate that once only. That's probably what made the biggest difference to keep a smooth FPS. But that's only on the javascript side, there is more pitfalls when generating shaders.
And for the CAD part, it's powered by opencascade/wasm, so that's reasonably fast for now. But I'm sure this will get battle tested soon, with larger models and nodes setups.