# ThinInstances do not render unless mesh is added before sceneRegister()

**URL:** <https://forum.babylonjs.com/t/thininstances-do-not-render-unless-mesh-is-added-before-sceneregister/63736>\
**Category:** Bugs\
**Tags:** thininstances\
**Created:** [July 1, 2026, 9:29pm UTC](https://forum.babylonjs.com/t/thininstances-do-not-render-unless-mesh-is-added-before-sceneregister/63736 "2026-07-01T21:29:36Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![dkong](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/dkong/32/51153_2.png) [@dkong](https://forum.babylonjs.com/u/dkong)\
**Post date:** [July 1, 2026, 9:29pm UTC](https://forum.babylonjs.com/t/thininstances-do-not-render-unless-mesh-is-added-before-sceneregister/63736/1 "2026-07-01T21:29:36Z")

</div>

BabylonJS Lite issue.

> **[Babylon Lite Playground](https://liteplayground.babylonjs.com/snippet/8TWM76/v/0)**

Edit: Move back after code change to see the rendered cubes

---

<div class="post-metadata">

**Author:** ![sebavan](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/sebavan/32/57_2.png) [@sebavan](https://forum.babylonjs.com/u/sebavan)\
**Post date:** [July 2, 2026, 11:41am UTC](https://forum.babylonjs.com/t/thininstances-do-not-render-unless-mesh-is-added-before-sceneregister/63736/2 "2026-07-02T11:41:56Z")

</div>

cc @RaananW and @ryantrem

---

<div class="post-metadata">

**Author:** ![RaananW](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/raananw/32/28955_2.png) [@RaananW](https://forum.babylonjs.com/u/RaananW)\
**Post date:** [July 2, 2026, 1:20pm UTC](https://forum.babylonjs.com/t/thininstances-do-not-render-unless-mesh-is-added-before-sceneregister/63736/3 "2026-07-02T13:20:39Z")

</div>

Sorry, just to be 100% sure i am seeing the right thing - can you save two versions of the playground - one with the issue and one with how it should be?

Thanks a lot!

---

<div class="post-metadata">

**Author:** ![dkong](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/dkong/32/51153_2.png) [@dkong](https://forum.babylonjs.com/u/dkong)\
**Post date:** [July 2, 2026, 1:52pm UTC](https://forum.babylonjs.com/t/thininstances-do-not-render-unless-mesh-is-added-before-sceneregister/63736/4 "2026-07-02T13:52:11Z")

</div>

Thin instances working: [Babylon Lite Playground](https://liteplayground.babylonjs.com/snippet/8TWM76/v/2)  
Thin instances not working: [Babylon Lite Playground](https://liteplayground.babylonjs.com/snippet/8TWM76/v/3)

---

<div class="post-metadata">

**Author:** ![Deltakosh](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/deltakosh/32/26635_2.png) [@Deltakosh](https://forum.babylonjs.com/u/Deltakosh)\
**Post date:** [July 20, 2026, 2:21pm UTC](https://forum.babylonjs.com/t/thininstances-do-not-render-unless-mesh-is-added-before-sceneregister/63736/5 "2026-07-20T14:21:43Z")

</div>

checking!

---

<div class="post-metadata">

**Author:** ![Deltakosh](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/deltakosh/32/26635_2.png) [@Deltakosh](https://forum.babylonjs.com/u/Deltakosh)\
**Post date:** [July 22, 2026, 4:51am UTC](https://forum.babylonjs.com/t/thininstances-do-not-render-unless-mesh-is-added-before-sceneregister/63736/6 "2026-07-22T04:51:22Z")

</div>

Here we are!

> <https://github.com/BabylonJS/Babylon-Lite/pull/438>
>
> \## Summary
> \- rebuild a material group lazily when a thin-instanced mesh is added… after \`registerScene()\` / \`startEngine()\`
> \- keep rebuild closures scene-local and serialize runtime mesh/material work so GPU resources are replaced and retired safely
> \- preserve PBR, device-recovery, removal, and merged ShaderMaterial lifecycle behavior while keeping every bundle ceiling unchanged
> \- add focused regressions for late thin instances and runtime rebuild ownership
> 
> \## Reproduction
> \- Forum: https://forum.babylonjs.com/t/thininstances-do-not-render-unless-mesh-is-added-before-sceneregister/63736
> \- Playground \`8TWM76\` v2 works because thin instances exist before registration; v3 adds them afterward and previously reused a closure built without thin-instance shader/GPU support.
> 
> \## Validation
> \- Local replay of \`8TWM76/3\` renders one blue source cube and two spatially distinct red thin instances; the recorded render-bundle draw uses \`instanceCount: 2\`.
> \- Focused lifecycle unit suites pass.
> \- Full \`pnpm test\`: 431 passed; all bundle-size checks pass. The only failures are the five approved, reproducible local parity differences: scenes 104, 105, 106, 143, and 265.
> \- All regenerated per-scene bundle manifests are included; no ceilings or golden references were changed.
> \- \`pnpm run lint\` reaches an untouched current-master type error in \`picking/picking-vertex-data.ts\` (\`readonly GPUVertexBufferLayout\[\]\` vs the mutable WebGPU descriptor type); this PR does not modify that file.
