# What kind of a tree does a HISM build

**URL:** <https://forums.unrealengine.com/t/what-kind-of-a-tree-does-a-hism-build/450326>\
**Category:** C++\
**Tags:** Hierarchical-Instanced-Static-Mesh, hism, data-structures, unreal-engine, instancing, CPP, question\
**Created:** [June 8, 2019, 7:02am UTC](https://forums.unrealengine.com/t/what-kind-of-a-tree-does-a-hism-build/450326 "2019-06-08T07:02:52Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![GlassBeaver](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/glassbeaver/32/551492_2.png) [@GlassBeaver](https://forums.unrealengine.com/u/GlassBeaver)\
**Post date:** [June 8, 2019, 7:02am UTC](https://forums.unrealengine.com/t/what-kind-of-a-tree-does-a-hism-build/450326/1 "2019-06-08T07:02:52Z")

</div>

A HISM builds a tree representation of its instances every so often via `FClusterBuilder::BuildTree()`

What I’d like to know is what kind of a tree this is: a k-d tree, an R-tree, an octree…

I’ve been looking at BuildTree’s source code and have even made some optimizations to it here and there, but still don’t get the bigger picture of what type of tree I am optimizing.

Please provide as much detail as you can, it will go a long way to making everyone understand how it all works. I’ll do a PR with docs & comments once I understand the inner mechanics.

---

<div class="post-metadata">

**Author:** ![GlassBeaver](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/glassbeaver/32/551492_2.png) [@GlassBeaver](https://forums.unrealengine.com/u/GlassBeaver)\
**Post date:** [July 19, 2019, 9:15am UTC](https://forums.unrealengine.com/t/what-kind-of-a-tree-does-a-hism-build/450326/2 "2019-07-19T09:15:58Z")

</div>

Turns out it’s a so-called cluster tree: [Hierarchical clustering - Wikipedia](https://en.wikipedia.org/wiki/Hierarchical_clustering)
