JSFiddle - React, Tailwind, and code Playground

by navinleon

HTML

<script src="http://threejs.org/build/three.min.js"></script>
<script src="http://threejs.org/examples/js/controls/OrbitControls.js"></script>

CSS

body {
	background-color: #000;
	margin: 0px;
	overflow: hidden;
}

JavaScript

// Simple three.js example

var mesh_1, mesh_2, renderer, scene, camera, controls;

init();
animate();

function init() {

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

    // scene
    scene = new THREE.Scene();
    
    // camera
    FRUSTUM_SIDE = 20
    camera = new THREE.OrthographicCamera(-FRUSTUM_SIDE/2, FRUSTUM_SIDE/2, 
                                           FRUSTUM_SIDE/2, -FRUSTUM_SIDE/2,
                                          -FRUSTUM_SIDE/2, FRUSTUM_SIDE/2);
    // position the camera on the edge of the frustum looking inside
    camera.position.z = FRUSTUM_SIDE/2;

    // controls
    controls = new THREE.OrbitControls( camera,renderer.domElement );
    
    // ambient
    scene.add( new THREE.AmbientLight( 0xffffff ) );
    
    // light
    var light = new THREE.DirectionalLight( 0xffffff, 1 );
    light.position.set( 0, 0, 10 );
    scene.add( light );
    
    // axes
    scene.add( new THREE.AxisHelper( 20 ) );
    
    // create two triangular plane geometries
    var geometry_1 = new THREE.Geometry();
    var v1 = new THREE.Vector3(0,0,0);
    var v2 = new THREE.Vector3(3,0,0);
    var v3 = new THREE.Vector3(0,3,0);
    geometry_1.vertices.push(v1); 
    geometry_1.vertices.push(v2); 
    geometry_1.vertices.push(v3);
    geometry_1.faces.push(new THREE.Face3(0, 1, 2));
    //geometry_1.faces.push(new THREE.Face3(0, 2, 1));
    
    /*var geometry_2 = new THREE.Geometry();
    var v1 = new THREE.Vector3(0,0,0);
    var v2 = new THREE.Vector3(3,0,0);
    var v3 = new THREE.Vector3(0,3,0);
    geometry_2.vertices.push(v1); 
    geometry_2.vertices.push(v2); 
    geometry_2.vertices.push(v3);
    geometry_2.faces.push(new THREE.Face3(0, 2, 1));*/
 
    // create a double sided material
    var material = new THREE.MeshPhongMaterial({
         color:     0x3096ca,
         emissive:  0x160909,
         specular: ...