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.
but like even if you have a lot of meshes in babylon.js, u also have the same scene in three.js and if three.js can perform this good using webgl then babylon.js should also do the same
unreal is already trash it has one of the worst performance. unreal doesn’t even count. even unity which is not a very optimized engine for rendering is faster than unreal in terms of rendering speed and draw calls. and if u talk about nanite, then nanite is just automatic lods. if u make over draw focused lods and add some cullings in three.js or unity then u will have WAY better performance compared to unreal. if people say that unreal is powerful, then its powerful only on a rtx 5090. and i don’t have the scene’s files cuz this is not my post. the creator of this post has one and he also told that both babylon.js and three.js version have same scene