How do I make a more user-friendly initial load?

Hi there, I used BabylonJS for a game jam with a 13KB (outside of the babylon lib) limit, and near the end it was loading almost everything at the beginning, so it would sit at a white screen for 10-15 seconds if it worked. I’d like to know how to have some sort of “Loading” screen to start and perhaps a way to load meshes without hanging the main process. Would there be a way to pop-in shapes as they are loaded without missing render updates (which make VR users sick)?

In my game, I make a ‘puzzle’ by combining a bunch of ExtrudeShapes to make one model on one axis, then another on another axis, then combining with CSG intersect. Obviously this is very processor intensive, and takes a few seconds to load. Is there a way to make this process happen more in the background? I realize while typing this out that it might have been good to take the result and save as an obj somehow to cut down on work, but the size limitation of the game jam don’t make that a viable option all the time (I use the extruded shapes multiple times in different ways)

https://www.babylonjs-playground.com/#4MU13A

JS13k - Backlit if you want to try it (it needs a 6dof controller like a Vive)

I have three thoughts:
Place a minimal dom element inline in your html before running the script.
Render a minimal scene and build at runtime, rendering intermediary steps.
Save the completed object for reuse.

I know a little more now, and so anyone coming in later can try these:
Babylon does have a Load Screen, which you can activate manually, load stuff, then remove.
There are a lot of async functions too, it’ll make it a bit easier to load other stuff in the background.