JSFiddle - React, Tailwind, and code Playground

HTML

<script src="//cdn.rawgit.com/mrdoob/three.js/master/build/three.min.js"></script>
<script src="//cdn.rawgit.com/mrdoob/three.js/master/examples/js/controls/OrbitControls.js"></script>
<script src="//cdn.rawgit.com/mrdoob/three.js/master/examples/js/Detector.js"></script>
<script src="//cdn.rawgit.com/mrdoob/three.js/master/examples/js/libs/dat.gui.min.js"></script>

JavaScript

(function (exampleCode) {

	var time = Date.now() * 0.003;
  var value = 0.5 * Math.sin( 0.5 * time ) + 0.3;

	setInterval( function() {
  
   	if ( value >= 1 ) {
    
    	value = 0;
      
    } else {
    
    	value += 0.00;
   
    }
  	
  } );
		
	Object.assign( exampleCode, {
  
		getValue: function() {
    
			return value;
      
    }    
	}); 		

})( window.exampleCode = window.exampleCode || {} );


////////////////////////////////////////////////////////////////////////////////////////////////////


var camera, scene, renderer;
var geometry, objects;
var mesh;

function myOptionsDefinition() {
	    return {			
	    ROTATION : false,	        
			RECORD : false,
	    };
    }
    
	var myOptions = myOptionsDefinition(); 

init();
animate();

function init() {

  camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 15000 );
  camera.position.z = 500;

  scene = new THREE.Scene();
  scene.background = new THREE.Color( 0x222222 );
  scene.fog = new THREE.Fog( 0x000000, 1, 15000 );

  var light = new THREE.PointLight( 0xff2200 );
  light.position.set( 100, 100, 100 );
  scene.add( light );

	var light = new THREE.AmbientLight( 0x111111 );
  scene.add( light );

	var geometry = new THREE.BoxGeometry( 100, 100, 100 );
	var material = new THREE.MeshLambertMaterial( { color: 0xffffff, morphTargets: true } );

	// construct 8 blend shapes
  
  for ( var i = 0; i < 8; i ++ ) {
  
  	var vertices = [];

		for ( var v = 0; v < geometry.vertices.length; v ++ ) {
		 
     vertices.push( geometry.vertices[ v ].clone() );
     
     if ( v === i ) {
     
     	vertices[ vertices.length - 1 ].x *= 2;
			vertices[ vertices.length - 1 ].y *= 2;
			vertices[ vertices.length - 1 ].z *= 2;

			}

		}

		geometry.morphTargets.push( { name: "target" + i, vertices: vertices } );

	}

	mesh = new THREE.Mesh( geometry, material );

	scene.add( mesh );

	//

	var params = {
		influence1: 0,
    
    play : function() {
			action =...