JSFiddle - React, Tailwind, and code Playground

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/three.js/r61/three.min.js"></script>

JavaScript

// revolutions per second
     var angularSpeed = 0.1;
     var lastTime = 0;

     // this function is executed on each animation frame
     function animate() {
         // update
         var time = (new Date()).getTime();
         var timeDiff = time - lastTime;
         var angleChange = angularSpeed * timeDiff * 2 * Math.PI / 1000;
         cube.rotation.y += angleChange;
         lastTime = time;
 camera.position.z += 0.1;
         // render
         renderer.render(scene, camera);

         // request new frame
         requestAnimationFrame(function () {
             animate();
              
         });
     }

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

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

     // scene
     var scene = new THREE.Scene();

     // material
     var material = new THREE.MeshLambertMaterial({
         map: THREE.ImageUtils.loadTexture('http://m.c.lnkd.licdn.com/media/p/3/000/122/194/00859a7.jpg')
     });

     // cube
     var cube = new THREE.Mesh(new THREE.CubeGeometry(100, 100, 100), material);
     cube.overdraw = true;
     cube.rotation.x = Math.PI * 0.1;
     scene.add(cube);

     // add subtle ambient lighting
     var ambientLight = new THREE.AmbientLight(0xbbbbbb);
     scene.add(ambientLight);

     // directional lighting
     var directionalLight = new THREE.DirectionalLight(0xffffff);
     directionalLight.position.set(1, 1, 1).normalize();
     scene.add(directionalLight);
  
     // start animation
     animate();