have a look at this commented PG : http://www.babylonjs-playground.com/#2FPT1A#89 maybe not that optimized, but didactic (I hope) : we use only one image  file :  Each box has 6 different sizes : this is done by setting the texture per side on the box model (we don't apply any texture to it). We just say each side will receive 1/6th of the image width on its width and the whole image height on its height (like we had only one row in the image file) Then at SPS initialization,