I did some reading and learned that I should use Scene.dispose() to remove everything in a scene, but my assets are being loaded as ISceneLoaderAsyncResult and there is no such method on that interface.
const myLoadedGltf = await SceneLoader.ImportMeshAsync("", baseFilePath, filePath, this.scene);
// do stuff with the loaded asset
myLoadedGltf.dispose() // Property 'dispose' does not exist on type 'ISceneLoaderAsyncResult'.
Do I need to go through all meshes, skeletons etc and call dispose on them individually?
removeAllFromScene method doesn’t dispose the container assets (only removes them so they can be added later), but there is dispose method as well - https://playground.babylonjs.com/#0VHCTL#214