JSFiddle - React, Tailwind, and code Playground

HTML

<script src="//cdn.rawgit.com/mrdoob/three.js/master/build/three.js"></script>
<script src="//cdn.rawgit.com/mrdoob/three.js/master/examples/js/controls/TrackballControls.js"></script>

JavaScript

var container;

var camera, scene, renderer, controls;

init();
animate();

function init() {

  //SCENE SETUP
  renderer = new THREE.WebGLRenderer();
  renderer.setPixelRatio( window.devicePixelRatio );
  renderer.setSize( window.innerWidth, window.innerHeight );
  document.body.appendChild( renderer.domElement );

  scene = new THREE.Scene();
  scene.background = new THREE.Color( 0x222222 );

  camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 1000 );
  camera.position.set( -250, 150, 200 );
  camera.lookAt(new THREE.Vector3(0, -50, 0))
  controls = new THREE.TrackballControls( camera, renderer.domElement );
  controls.minDistance = 200;
  controls.maxDistance = 500;

  scene.add( new THREE.AmbientLight( 0x222222 ) );

  var light = new THREE.PointLight( 0xffffff );
  light.position.copy( camera.position );
  scene.add( light );


  //PROFILE SHAPE
  var spts = [];
  spts.push(new THREE.Vector2(0, 0));
  spts.push(new THREE.Vector2(10, 0));
  spts.push(new THREE.Vector2(10, 25));
  spts.push(new THREE.Vector2(-5, 25));
  spts.push(new THREE.Vector2(-5, 20));
  spts.push(new THREE.Vector2(0, 20));


  //PATH POINTS
  var ppth = []
  ppth.push(new THREE.Vector3(0,0,10));
  ppth.push(new THREE.Vector3(100, 0,10));
  ppth.push(new THREE.Vector3(100, 200,10));
  ppth.push(new THREE.Vector3(0, 200,10));

  //-----------------------------------------------EXTRUSION PATH AS A CURVEPATH 
  var cpth = new THREE.CurvePath()

  //THE FOLLOWING STATEMENT APEARS TO CREATE NO NEW CURVES
  cpth.createGeometry(ppth)

  //ADD CURVES EXPLICITELY
  var v1 = new THREE.LineCurve(new THREE.Vector3(0,0,0), new THREE.Vector3(100,0,0));
  var v2 = new THREE.LineCurve(new THREE.Vector3(100,0,0), new THREE.Vector3(100,200,0));
  var v3 = new THREE.LineCurve(new THREE.Vector3(100, 200, 0), new THREE.Vector3(0, 200, 0));
  var v4 = new THREE.LineCurve(new THREE.Vector3(0, 200, 0), new THREE.Vector3(0, 0, 0));

  cpth.add(v1);
  cpth.add(v2);
 ...