From f9e379cff4767cd02d4e830051dd999de98e3e65 Mon Sep 17 00:00:00 2001 From: remo-lab Date: Mon, 26 Jan 2026 22:24:05 +0530 Subject: [PATCH] fix(import-manager): dispose intermediate geometries after GLTF merge Signed-off-by: remo-lab --- .../src/managers/three-manager/import-manager.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/phoenix-event-display/src/managers/three-manager/import-manager.ts b/packages/phoenix-event-display/src/managers/three-manager/import-manager.ts index 8cb98759..c24619a1 100644 --- a/packages/phoenix-event-display/src/managers/three-manager/import-manager.ts +++ b/packages/phoenix-event-display/src/managers/three-manager/import-manager.ts @@ -436,12 +436,17 @@ export class ImportManager { // Improve renderorder for transparent materials scene.remove(...scene.children); for (const val of Object.values(materials)) { - const mesh = new Mesh( - BufferGeometryUtils.mergeGeometries((val as any).geoms), - (val as any).material, - ); + const intermediateGeoms = (val as any).geoms; + const mergedGeometry = + BufferGeometryUtils.mergeGeometries(intermediateGeoms); + const mesh = new Mesh(mergedGeometry, (val as any).material); mesh.renderOrder = (val as any).renderOrder; scene.add(mesh); + + // Dispose intermediate geometries to free GPU memory + for (const geom of intermediateGeoms) { + geom.dispose(); + } } this.processGeometry(