# Questions about ModelInstanceCollection and PrimitiveCollection as an alternative

**URL:** https://community.cesium.com/t/questions-about-modelinstancecollection-and-primitivecollection-as-an-alternative/42459
**Category:** CesiumJS
**Created:** [August 1, 2025, 2:11pm UTC](https://community.cesium.com/t/questions-about-modelinstancecollection-and-primitivecollection-as-an-alternative/42459 "2025-08-01T14:11:43Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![hh\_q](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/hh_q/32/15854_2.png) [@hh\_q](https://community.cesium.com/u/hh_q)
#### Post date: [August 1, 2025, 2:11pm UTC](https://community.cesium.com/t/questions-about-modelinstancecollection-and-primitivecollection-as-an-alternative/42459/1 "2025-08-01T14:11:43Z")

</div>

Hi Cesium team and community，

I have a couple of questions about model instancing in Cesium.

I noticed that ModelInstanceCollection is no longer available in the latest versions.

Will this feature ever come back? It used to be super helpful when placing lots of identical glTF models—great performance, low GPU usage, and fewer draw calls.

Also, I’m currently trying to load about 5,000 identical glTF models (fire extinguisher boxes, ~370KB each) into a Cesium scene. Each model needs to be editable and movable individually, not just displayed.

Can PrimitiveCollection be used for this kind of scenario? Or is there a better way to do this now?

Would love to hear what the best practice is with the current Cesium setup.

Thanks a lot!

— Hang

---

<div class="post-metadata">

### Author: ![Luke\_McKinstry](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/luke_mckinstry/32/25557_2.png) [@Luke\_McKinstry](https://community.cesium.com/u/Luke_McKinstry)
#### Post date: [August 1, 2025, 6:20pm UTC](https://community.cesium.com/t/questions-about-modelinstancecollection-and-primitivecollection-as-an-alternative/42459/2 "2025-08-01T18:20:41Z")

</div>

Hi @hh_q ,

Thanks for your post and for being part of the Cesium community.

We will be bringing back ModelInstanceCollection very soon. We have a PR to add it back that is very far along [Add back ModelInstance class by lukemckinstry · Pull Request #12588 · CesiumGS/cesium · GitHub](https://github.com/CesiumGS/cesium/pull/12588/) but did not quite make this month’s release. It is likely to be in the next release at the start of September. Feel free to checkout the branch if you want to see the sandcastle example. And even better try the code with your glTF and anticipated scene and let us know if you have any feedback regarding how easy or hard it is to use the new API to create your scene and move the model instances as you envision. You can leave feedback here or on the PR.

Thanks,  
Luke

---

<div class="post-metadata">

### Author: ![hh\_q](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/hh_q/32/15854_2.png) [@hh\_q](https://community.cesium.com/u/hh_q)
#### Post date: [August 1, 2025, 11:30pm UTC](https://community.cesium.com/t/questions-about-modelinstancecollection-and-primitivecollection-as-an-alternative/42459/3 "2025-08-01T23:30:40Z")

</div>

Thanks so much for all your hard work, team! 🙏

Big thanks to Luke for the quick reply and for bringing back ModelInstanceCollection —I’m really looking forward to testing it in my project. I’ll be sure to let you know right away if I run into any issues during testing.

Thanks again!

— Hang

---

<div class="post-metadata">

### Author: ![hh\_q](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/hh_q/32/15854_2.png) [@hh\_q](https://community.cesium.com/u/hh_q)
#### Post date: [August 2, 2025, 2:31am UTC](https://community.cesium.com/t/questions-about-modelinstancecollection-and-primitivecollection-as-an-alternative/42459/4 "2025-08-02T02:31:57Z")

</div>

Hi, after debugging the sandbox project on GitHub, I found that when rendering 5,000 models simultaneously, `ModelInstanceCollection` reduces GPU usage by about 60% compared to `PrimitiveCollection`, which is indeed a great performance optimization.

However, I have a question. In Three.js, similar `InstancedMesh` does not support adding or removing individual instances. So, will `ModelInstanceCollection` support adding/removing individual instances in the future, dynamically editing the position of a single model, and storing properties for each individual model?

Thank you,  
Hang.

---

<div class="post-metadata">

### Author: ![Luke\_McKinstry](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/luke_mckinstry/32/25557_2.png) [@Luke\_McKinstry](https://community.cesium.com/u/Luke_McKinstry)
#### Post date: [August 4, 2025, 1:27pm UTC](https://community.cesium.com/t/questions-about-modelinstancecollection-and-primitivecollection-as-an-alternative/42459/5 "2025-08-04T13:27:24Z")

</div>

Glad to hear the performance improvement.

The `ModelInstanceCollection` class will support adding or removing instances (which are specified with the `ModelInstance` class) from the collection. Each instance will have its transform stored individually, so you can edit the transform of a specific instance.

Thanks for mentioning needing to debug the sandcastle, I pushed up a fix that should correctly scale the wind turbine model in the `3D Model Instancing Terrain` example so it appears as expected on initial load. If you look at the `3D Model Instancing` sandcastle, you can see in the setTimeout loop how the transform for each instance is being recalculated and reset 6 seconds after it loads.

You can also see documentation for the new classes in the branch when running the dev local server, you just need to run `npm run build-docs` to build the documentation pages.

Thanks again for the feedback and let us know if you have more!  
Best,  
Luke

---

<div class="post-metadata">

### Author: ![hh\_q](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/hh_q/32/15854_2.png) [@hh\_q](https://community.cesium.com/u/hh_q)
#### Post date: [August 6, 2025, 10:43am UTC](https://community.cesium.com/t/questions-about-modelinstancecollection-and-primitivecollection-as-an-alternative/42459/6 "2025-08-06T10:43:04Z")

</div>

Thanks, Luke! I’ll dive in, test it thoroughly, and let you know if I spot any issues. Really appreciate your help!

---

<div class="post-metadata">

### Author: ![hh\_q](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/hh_q/32/15854_2.png) [@hh\_q](https://community.cesium.com/u/hh_q)
#### Post date: [March 27, 2026, 10:05am UTC](https://community.cesium.com/t/questions-about-modelinstancecollection-and-primitivecollection-as-an-alternative/42459/7 "2026-03-27T10:05:56Z")

</div>

Many people are really looking forward to this feature. May I ask if this feature will be added again in the future? Thank you.

---

<div class="post-metadata">

### Author: ![tjw2066](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/tjw2066/32/30591_2.png) [@tjw2066](https://community.cesium.com/u/tjw2066)
#### Post date: [March 28, 2026, 2:14am UTC](https://community.cesium.com/t/questions-about-modelinstancecollection-and-primitivecollection-as-an-alternative/42459/8 "2026-03-28T02:14:44Z")

</div>

I noticed the relevant branch is currently in PR status. Could you kindly share why it hasn’t been merged yet?
