What problem does it solve?
It prevents ThatOpen BIM viewers from crashing or freezing by fixing the most common causes of performance degradation: memory leaks, undisposed GPU resources, missing worker initialization, and blocking main-thread operations.
Core Features & Use Cases
- Disposal correctness for components and models: Uses
components.dispose() for full teardown and fragments.disposeModel(modelId) for per-model unloading without leaving GPU/worker state behind.
- Three.js GPU memory hygiene: Ensures geometries, materials, textures (and their maps), and render targets are explicitly disposed when created outside
components.
- Worker-first performance guarantees: Ensures
FragmentsManager is initialized with the correct worker URL to keep heavy operations off the main thread.
- Large model stability tactics: Covers fragment conversion strategy (load fragments, not raw IFC repeatedly), IFC class filtering, model federation, selective loading, and performance pitfalls like z-fighting via polygon offset.
- Practical troubleshooting guidance: Provides DevTools memory profiling steps and a checklist to diagnose leaks across load/unload cycles.
Quick Start
Use the thatopen-errors-performance skill when your ThatOpen viewer crashes, leaks memory after loading/unloading models, or becomes unresponsive due to large BIM models.