JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://rawgit.com/BabylonJS/Babylon.js/v1.12/babylon.1.12.js"></script>
<script src="https://rawgit.com/kostar111/TiledGroundBJS/master/createTiledGround.js"></script>
 <body>
    <div id="rootDiv">
        <canvas id="canvas_renderer">              </canvas>
    </div>
 </body>

CSS

html, body, div, canvas {
    width: 100%;
    height: 100%;
    padding: 0;
    margin: 0;
    overflow: hidden;
}

JavaScript

// Scene initialization
var canvas, engine, scene, light, camera, invaderCoordinates;
init_scene();

////////////////////////////////////////////////////////////////////////
// Create tileGround
var xmin = -6.5;
var zmin = -5.5;
var xmax = 6.5;
var zmax = 5.5;
var precision = {
    "w" : 1,
    "h" : 1
};
var subdivisions = {
    'h' : 11,
    'w' : 13
};
var vData = createTiledGround(xmin, zmin, xmax, zmax, precision, subdivisions);
var ground = new BABYLON.Mesh("ground", scene);
vData.applyToMesh(ground);

////////////////////////////////////////////////////////////////////////
// Create Multi Material
var backgroundMaterial = new BABYLON.StandardMaterial("Background", scene);
backgroundMaterial.diffuseColor = new BABYLON.Color3(1, 1, 1);

var invadersMaterial = new BABYLON.StandardMaterial("Invader", scene);
invadersMaterial.diffuseColor = new BABYLON.Color3(0.6, 0, 0.6);

var multimat = new BABYLON.MultiMaterial("multi", scene);
multimat.subMaterials.push(backgroundMaterial);
multimat.subMaterials.push(invadersMaterial);
ground.material = multimat;

////////////////////////////////////////////////////////////////////////
// Apply Multi Material to the ground
ground.subMeshes = [];
var verticesCount = ground.getTotalVertices();

var tileIndicesLength = 6 * precision.w * precision.h;
var base = 0;
for (var row = 0; row < subdivisions.h; row++) {
    for (var col = 0; col < subdivisions.w; col++) {
        if (isInvaderPosition(col, row))
            ground.subMeshes.push(new BABYLON.SubMesh(1, 0, verticesCount, base , tileIndicesLength, ground));
        else
            ground.subMeshes.push(new BABYLON.SubMesh(0, 0, verticesCount, base , tileIndicesLength, ground));
        base += tileIndicesLength;
    }
}

////////////////////////////////////////////////////////////////////////
// Render Loop
engine.runRenderLoop(function () {
    scene.render();
});



////////////////////////////////////////////////////////////////////////
function init_scene(){
    //...