JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/108/three.js"></script>
<script src='https://stemkoski.github.io/Three.js/js/OrbitControls.js'></script>
<script src='https://stemkoski.github.io/Three.js/js/THREEx.KeyboardState.js'></script>
<script src='https://stemkoski.github.io/Three.js/js/THREEx.FullScreen.js'></script>
<script src='https://stemkoski.github.io/Three.js/js/THREEx.WindowResize.js'></script>
<script src='https://stemkoski.github.io/Three.js/fonts/helvetiker_bold.typeface.js'></script>

CSS

body {
	  margin: 0;
}
canvas {
	display: block;
}

JavaScript

var scene, camera, renderer, controls;
var keyboard = new THREEx.KeyboardState();
var clock = new THREE.Clock();
	//polygon points array
var polygonPoints = [{"x":-317.8337097167969,"y":283.7328186035156,"z":0},{"x":324.4554748535156,"y":290.35455322265625,"z":0},{"x":364.1678161621094,"y":-173.14523315429688,"z":0},{"x":-36.41810989379883,"y":191.02955627441406,"z":0},{"x":-374.10302734375,"y":-83.75933837890625,"z":0},{"x":-370.8056335449219,"y":273.8002624511719,"z":0},{"x":-370.8056335449219,"y":273.8002624511719,"z":0},{"x":-370.8056335449219,"y":273.8002624511719,"z":0},{"x":-317.8337097167969,"y":283.7328186035156,"z":0}];

var binPaneSize = { x: 50, y: 30 };
var binPaneOffset = {x:5,y:5};
// custom global variables
var cube;

	scene = new THREE.Scene();

	var SCREEN_WIDTH = window.innerWidth, SCREEN_HEIGHT = window.innerHeight;	
	// camera attributes
	var VIEW_ANGLE = 45, ASPECT = SCREEN_WIDTH / SCREEN_HEIGHT, NEAR = 0.1, FAR = 20000;
	// set up camera
	camera = new THREE.PerspectiveCamera( VIEW_ANGLE, ASPECT, NEAR, FAR);
	// add the camera to the scene
	scene.add(camera);
	
	camera.position.set(0,150,400);
	camera.lookAt(scene.position);	
	camera.position.z = 500;
	camera.up.set( 0, 0, 1 );

	renderer = new THREE.WebGLRenderer( {antialias:true} );
	
	renderer.setSize(SCREEN_WIDTH, SCREEN_HEIGHT);
	document.body.appendChild(renderer.domElement);
	
	// automatically resize renderer
	THREEx.WindowResize(renderer, camera);
	// toggle full-screen on given key press
	THREEx.FullScreen.bindKey({ charCode : 'm'.charCodeAt(0) });
	
	controls = new THREE.OrbitControls( camera, renderer.domElement );
	
	var light = new THREE.PointLight(0xffffff);
	light.position.set(0,0,0);
	scene.add(light);
	
 gridGround = new THREE.GridHelper(1000, 30, 0x3f3f3f, 0x3f3f3f);
gridGround.rotation.x = Math.PI / 2;
  scene.add(gridGround);
drawbinsInPolygon();
	
	// fog must be added to scene before first render
	scene.fog = new THREE.FogExp2( 0x9999ff, 0.00025 );

(function...