I have started babylon.js for a while, there are so many amazing features that I love it so much. Only one thing make me headache is the fps is very low for big model cases.
First welcome!
I knows three.js little so I don’t know how it does, but there is too many draw calls in your scene, maybe you could try to merge your meshes which have the same material.
If you would like to use BJS to do the merge: Merging Meshes | Babylon.js Documentation
Calling scene.freezeActiveMeshes(true) will help getting 3/4 more fps, but you have way too many meshes/draw calls (21000+ draw calls): the GPU rendering time for a frame is 130-140ms on my computer so the fps can’t be more than 7fps whatever the js code is doing.