JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r77/three.js"></script>
<script src="https://rawgit.com/mrdoob/three.js/master/examples/js/controls/OrbitControls.js"></script>
JavaScript
var scene =new THREE.Scene();
var camera =new THREE.PerspectiveCamera(60,window.innerWidth/window.innerHeight,1,100);
//camera.position.set( 0.54, 6.85, -13.41 );
var renderer =new THREE.WebGLRenderer();
renderer.setClearColor(0x000000, 1.0);
renderer.setSize(window.innerWidth,window.innerHeight);
renderer.shadowMap.enabled = true;
//renderer.shadowMap.type = THREE.PCFShadowMap;
document.body.appendChild(renderer.domElement);
var axes = new THREE.AxisHelper( 20 );
scene.add(axes);
var planeGeometry = new THREE.PlaneGeometry(30,40,1,1);
var planeMaterial = new THREE.MeshLambertMaterial({color: 0x777777});
var plane = new THREE.Mesh(planeGeometry,planeMaterial);
plane.rotation.x=-0.5*Math.PI;
plane.position.x = 0;
plane.position.y = -5;
plane.position.z = 5;
plane.receiveShadow = true;
scene.add(plane);
var cubeGeometryBT = new THREE.CubeGeometry( 10, 5, 0.2 );
var cubeMaterial = new THREE.MeshLambertMaterial( {color: 0xcccccc} );
var cubeBT = new THREE.Mesh( cubeGeometryBT, cubeMaterial );
cubeBT.position.x = 0;
cubeBT.position.y = -2.5;
cubeBT.position.z = -5;
cubeBT.castShadow = true;
scene.add(cubeBT);
var cubeGeometryBB = new THREE.CubeGeometry( 10, 1, 0.2 );
var cubeBB = new THREE.Mesh( cubeGeometryBB, cubeMaterial );
cubeBB.position.x = 0;
cubeBB.position.y = 4.5;
cubeBB.position.z = -5;
cubeBB.castShadow = true;
scene.add(cubeBB);
var cubeGeometryBL = new THREE.CubeGeometry( 3, 4, 0.2 );
var cubeBL = new THREE.Mesh( cubeGeometryBL, cubeMaterial );
cubeBL.position.x = -3.5;
cubeBL.position.y = 2;
cubeBL.position.z = -5;
cubeBL.castShadow = true;
scene.add(cubeBL);
var cubeGeometryBR = new THREE.CubeGeometry( 3, 4, 0.2 );
var cubeBR = new THREE.Mesh( cubeGeometryBR, cubeMaterial );
cubeBR.position.x = 3.5;
cubeBR.position.y = 2;
cubeBR.position.z = -5;
cubeBR.castShadow = true;
scene.add(cubeBR);
var cubeGeometryL = new THREE.CubeGeometry( 20, 10, 0.2 );
var cubeL = new THREE.Mesh( cubeGeometryL, cubeMaterial );
cubeL.position.x =...