curiously other pages with three.js demos at the landjng page like svelteflow.dev/ doesn't have this issue
i think the trick is to not attempt to render at each frame (that is, don't try to provide something similar to a game engine). just render it based on user input, like the page I linked