As far a I see drawcalls: 128 which is way too much. Ok, but when I don’t push the second material there, and now the mesh has only one material - it now has 128 drawcalls again. But why are so many drawcalls there? Just one mat per all the same meshes… Is it possible to optimize it to 1 drawcall?
There’s a draw call per sub-mesh, as each sub-mesh can have its own material (there’s no grouping of sub-meshes per material, as it would hurt performances to perform this grouping in javascript). You should generate the checkerboard differently (with instances or thin instances, for eg, or maybe by just using a checkerboard texture?).
Note that you should not push the sub-mesh created with new SubMesh(...) to Mesh.subMeshes, because it already pushes the sub-mesh to Mesh.subMeshes: that’s why you have 128 draw calls instead of 64.