JSFiddle - React, Tailwind, and code Playground

CSS

body{
  overflow: hidden;
  margin: 0;
}

JavaScript

console.clear();
import * as THREE from "https://cdn.skypack.dev/[email protected]";
import {OrbitControls} from "https://cdn.skypack.dev/[email protected]/examples/jsm/controls/OrbitControls.js";
import { EffectComposer } from 'https://cdn.skypack.dev/[email protected]/examples/jsm/postprocessing/EffectComposer.js';
import { RenderPass } from 'https://cdn.skypack.dev/[email protected]/examples/jsm/postprocessing/RenderPass.js';
import { ShaderPass } from 'https://cdn.skypack.dev/[email protected]/examples/jsm/postprocessing/ShaderPass.js';
import { GUI } from 'https://cdn.skypack.dev/[email protected]/examples/jsm/libs/lil-gui.module.min.js';
import {GLTFExporter} from 'https://cdn.skypack.dev/[email protected]/examples/jsm/exporters/GLTFExporter.js'
import { GLTFLoader } from 'https://cdn.skypack.dev/[email protected]/examples/jsm/loaders/GLTFLoader.js';
import {STLExporter} from 'https://cdn.skypack.dev/[email protected]/examples/jsm/exporters/STLExporter.js'

const settings = {
  metalness: 1.0,
  roughness: 0.7,
  ambientIntensity: 0.2,
  aoMapIntensity: 1.0,
  envMapIntensity: 1.0,
  displacementScale: 0, // from original model
  normalScale: 1.0,
  displacementBias: 0.0,
  color: 'black',
  "saveModel": function () { exportBinary(); },
  "finalizeModel":function () {finalizeModel();}
};

let savedIndexes = [];
let scene = new THREE.Scene();
let camera = new THREE.PerspectiveCamera(60, innerWidth / innerHeight, 1, 100);
camera.position.set(0, 10, 10);
let renderer = new THREE.WebGLRenderer();
renderer.setClearColor(0x7f7f7f);
renderer.setSize(innerWidth, innerHeight);
//renderer.outputEncoding = THREE.sRGBEncoding;
renderer.shadowMap.enabled = true;
document.body.appendChild(renderer.domElement);

let controls = new OrbitControls(camera, renderer.domElement);


let light = new THREE.DirectionalLight(0xffffff, 1.0);
light.position.set(1, 1, 0);

light.castShadow = true;

light.shadow.mapSize.width = 1024;
light.shadow.mapSize.height = 1024;

const d = 10;

light.shadow.camera.left = -...