If all boxes have the same dimensions you may use Instances or even Thin Instances as described here - Instances | Babylon.js Documentation
(I would recommend to start with ‘usual’ Instances since they are simpler).
It also may depend on boxes materials. How much of them do you need for your app?
So, the first thing is to reduce draw calls number with instancing where possible.
Currently your PG example has too much draw calls (3077)