96c6b780cec5f61d292dd9dd22ae9431e8cb7ecb
Viewer2D (ported unchanged) has no dispose/teardown API — it attaches permanent window listeners and starts its own rAF render loop in the constructor. React StrictMode's dev-only mount→unmount→remount cycle was constructing it twice into the same container with no way to tear the first instance down, leaving two overlapping canvases and broken rendering (load reported success but nothing appeared on screen). Also defensively clear the container's children before construction so a future remount (e.g. Fast Refresh) can't repeat this. Refs #1
The file is empty.
Languages
JavaScript
58.5%
TypeScript
41.4%