JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://threejs.org/build/three.min.js"></script>
<script src="http://threejs.org/examples/js/libs/stats.min.js"></script>
<script src="http://threejs.org/examples/js/controls/PointerLockControls.js"></script>

CSS

body {
    background-color: #fff;
    color: #444;
    margin: 0px;
    overflow: hidden;
    font-family: Tahoma;
    font-size: 13px;
}
#stats {
    position: absolute;
    left: 0px;
    right: 0px;
}

JavaScript

var element = document.body;

var WIDTH = window.innerWidth,
    HEIGHT = window.innerHeight;

var ASPECT = WIDTH / HEIGHT;

var UNITSIZE = 50,
    WALLSIZE = 16;

var t = THREE,
    stats, loader;
var scene, camera, renderer, clock, controls, key;

// 0 = floor, 1 = wall, 2 = spawn point
var map = [
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 0, 1],
    [1, 0, 0, 1, 1, 0, 1, 1, 0, 1],
    [1, 0, 0, 1, 1, 0, 1, 1, 0, 1],
    [1, 0, 0, 1, 1, 0, 1, 1, 0, 1],
    [1, 0, 0, 1, 0, 0, 1, 0, 0, 1],
    [1, 1, 0, 1, 0, 0, 1, 0, 0, 1],
    [1, 0, 0, 0, 0, 0, 0, 0, 2, 1],
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
];

var objects = [];

var mouse = new t.Vector2();

var player;
var spawnSet;

var scale = 5;

var stop_forward = false;
var stop_back = false;
var stop_left = false;
var stop_right = false;


var pointerlockchange = function(event) {
    if (document.pointerLockElement === element || document.mozPointerLockElement === element || document.webkitPointerLockElement === element) {
        controls.enabled = true;
    } else {
        controls.enabled = false;
    }
};

function init() {
    //stats = new Stats();
   // stats.setMode(0);
    //document.body.appendChild(stats.domElement);

    renderer = new t.WebGLRenderer();
    renderer.setSize(WIDTH, HEIGHT);
    document.body.appendChild(renderer.domElement);

    key = new Keyboard();
    player = new fPlayer();
    clock = new t.Clock();
    scene = new t.Scene();

    camera = new t.PerspectiveCamera(75, ASPECT, 1, 1000);
    controls = new t.PointerLockControls(camera);

    scene.add( controls.getObject() );
    scene.add( player.cube ); //.........???????????

    spawnSet = false;
    
    //-------------------- Lights --------------
    var ambo = new THREE.AmbientLight( 0xcccccc );
		scene.add (ambo);
    
    var directionalLight1 = new THREE.DirectionalLight( 0xffffff, 0.5 );
    directionalLight1.position.set( -20, 20, -20 );
    scene.add(...