The performance of your app is probably degraded by the amount of draw calls. Hence, consider to use instanced rendering. An easy way to do this (without modifying shaders) is the usage of THREE.InstancedMesh. Check out the documentation page and the respective examples in order to get familiar with this class.