Hi @RaananW ,
I think I found the reason why this issue is happening.
The problem is in the dumpTools.ts#L40-L47.
First, it tries to create a new Engine using OffscreenCanvas and in case WebGL is not supported it falls back to normal Canvas.
But the problem is that the previously created Engine (w/ OffscreenCanvas) remains in the EngineStore but in an uninitialized state (_initFeatures was not called, etc.).
This results in 2 engines stored inside EngineStore: #1 - a fully functional Engine used by the main scene, and #2 - an uninitialized leftover created by DumpTools.
Later, when we try to load a new GLB model (or any other action using fileTools), we end up on fileTools.ts#L210 which grabs “broken” engine #2 from the EngineStore and fails on line fileTools.ts#L241 (_features was not initialized in the constructor).
I can see two possible solutions here:
a) remove the engine instance from the EngineStore before throwing an error (thinEngine.ts#L391-L404)
b) handle this situation in dumpTools.ts and remove the “broken” instance from EngineStore in line dumpTools.ts#L44 before creating another Engine instance.
Here is the PG that demonstrates the problem in any browser:
Hope this will help.