JSFiddle - React, Tailwind, and code Playground

HTML

<!DOCTYPE html>
<html>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/93/three.min.js"></script>
<script src="https://threejs.org/examples/js/controls/OrbitControls.js"></script>
  <head>
    <title>Shapes</title>
    
    <style>
      body {
        margin: 0;
        overflow: hidden;
      }

    </style>
  </head>

  <body>

    <div id="output">
    </div>

  </body>

</html>

JavaScript

const COLOR_BLUE = 0x2194ce;
var container = document.getElementById('output');
var raycaster = new THREE.Raycaster();
var scene = new THREE.Scene();
var mouse = new THREE.Vector2();
var renderer = new THREE.WebGLRenderer({
  antialias: true
});
var lineMaterial = new THREE.LineBasicMaterial({
  color: COLOR_BLUE
});
var camera, geometry;
var trimaterial = new THREE.MeshBasicMaterial({
  color: COLOR_BLUE,
  wireframe: true
});
var geometry = new THREE.Geometry();

var controls = {};


renderer.setSize(window.innerWidth, window.innerHeight);


raycaster.linePrecision = 3;

camera = new THREE.OrthographicCamera(window.innerWidth / -7, window.innerWidth / 7, window.innerHeight / 7, window.innerHeight / -7, 1, 1000);
camera.zoom = 35;
camera.position.x = 2.5;
camera.position.y = -100;
camera.position.z = 8;
camera.lookAt(scene.position);

camera.updateProjectionMatrix();


container.appendChild(renderer.domElement);
scene.add(new THREE.AmbientLight(0xffffff));

drawTri();
drawQuad();

geometry.computeBoundingBox();
geometry.computeBoundingSphere();

document.addEventListener('mouseup', onMouseUp, true);

controls = new THREE.OrbitControls(camera, renderer.domElement);
controls.target.copy(geometry.boundingSphere.center);
controls.nozoom = true;

animate();

function drawTri() {


  var vecs = [];
  var length;
  var color = new THREE.Color("rgb(255,0,0)");
  var triangles;

  vecs[0] = new THREE.Vector3(1, 0, 3);
  vecs[1] = new THREE.Vector3(0, 0, 3);
  vecs[2] = new THREE.Vector3(0.5, 0, 4);
  vecs[3] = new THREE.Vector3(3, 0, 3);
  vecs[4] = new THREE.Vector3(2, 0, 3);
  vecs[5] = new THREE.Vector3(2.5, 0, 4);
  vecs[6] = new THREE.Vector3(5, 0, 3);
  vecs[7] = new THREE.Vector3(4, 0, 3);
  vecs[8] = new THREE.Vector3(4.5, 0, 4);



  for (var vecPointer = 0; vecPointer < vecs.length; vecPointer += 3) {

    for (var i = 0; i < 3; i++) {
      geometry.vertices.push(vecs[i + vecPointer]);
    }

    length = geometry.vertices.length;

    geometry.faces.push(new...