Without going super deep on understanding your code flow, this isn’t an answer, but it might be an interesting clue.
Final - Render on Demand: Single Asset per frame | Babylon.js Playground (babylonjs.com)
All I did here was to move the code that sets the slider value at the start to after the
onValueChanged handler is set so that that handler gets hit by the initial value set, not just later ones. Interestingly, the result of this (upon pressing “Play,” nondeterministic for me on load) is that the model momentarily appears as expected, then disappears almost immediately after. This makes me think that there’s something the logic flow that’s not just failing to render the model, it’s telling the code to not render the model even if it already has.
Best guess at the moment is that the asynchrony you’re going for here has gotten out of order, and something is happening at a time when it’s not supposed to. As crude as this mechanism is, I’d recommend good old fashioned “printf debugging” for this: litter your code with checkpoint lines such as
console.log("Checkpoint 1"), then make sure they’re all happening in the order you expect them to. If there are out-of-order operations happening, this is probably the simplest way I know to track them down. Hope this helps, and best of luck!