JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r71/three.js" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://cdn.rawgit.com/mrdoob/three.js/master/examples/js/controls/OrbitControls.js"></script>
<div id="container"></div>

JavaScript

$(function () {
    
    /*global variables*/
    var scene, camera, renderer;
    var controls, geometry, material, line;
    var stats;
    var SCREEN_WIDTH, SCREEN_HEIGHT;


    function init() {
        /*creates empty scene object and renderer*/
        scene = new THREE.Scene();
        camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, .1, 500);
        renderer = new THREE.WebGLRenderer({
            antialias: true
        });

        renderer.setClearColor(0xdddddd);
        renderer.setSize(window.innerWidth, window.innerHeight);

        /*add controls*/
        controls = new THREE.OrbitControls(camera, renderer.domElement);
        controls.addEventListener('change', render);

        /*adds helpers*/
        axis = new THREE.AxisHelper(10);
        scene.add(axis);

        /*Camera*/
        camera.position.x = 12;
        camera.position.y = 21.5;
        camera.position.z = 12;
        camera.lookAt(scene.position);

        /*Lights*/
        var ambient = new THREE.AmbientLight(0x404040);
        scene.add( ambient );
        
        // Add line
        geometry = new THREE.Geometry();
        geometry.vertices.push(new THREE.Vector3(0, 0, 0));
        geometry.vertices.push(new THREE.Vector3(5, 5, 0));
        geometry.vertices.push(new THREE.Vector3(5, 5, 0));
        geometry.vertices.push(new THREE.Vector3(0, 10, 0));
        material = new THREE.LineBasicMaterial({color: 0xcc0000, opacity: 1.0, linewidth: 3.0});
        material.vertexColors = THREE.NoColors;
        line = new THREE.Line(geometry, material, THREE.LinePieces);
        line.position.set(0, 0, 0);
        scene.add(line);

        $("#container").append(renderer.domElement);
    }
    
    function render() {}
    
    var colorsChanged = false;

    function animate() {
        requestAnimationFrame(animate);
        render();

        renderer.render(scene, camera);
        
        // Color individual vertices after first render
        if...