Render 300 Different Body Types with 40 Instances Each

Question

I have 300 THREE.InstancedMesh objects, and each InstancedMesh contains 40 instances, for a total of 12,000 bodies.

I understand that each InstancedMesh is rendered with one draw call, so my current scene requires approximately 300 draw calls.

Is it possible to merge or batch the geometry of these 300 InstancedMesh objects so that all 12,000 bodies can be rendered in one draw call, while keeping the 300 different body geometries?

If BufferGeometryUtils.mergeGeometries() cannot be used directly with InstancedMesh, what would be the recommended approach in Three.js to achieve fewer draw calls?

Study this