JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r73/three.js"></script>
http://jsfiddle.net/6hfxng8n/2/#run
JavaScript
var container, camera, renderer, scene, directionalLight, fillLight, raycaster, mouse;
var WIDTH = window.innerWidth - 30;
var HEIGHT = window.innerHeight - 30;
// camera
var angle = 45;
var aspect = WIDTH / HEIGHT;
var near = 0.1;
var far = 10000;
// objects
var cube;
var sphere;
setupScene();
addObjects();
animate();
function setupScene(){
container = document.createElement('div');
document.body.appendChild(container);
camera = new THREE.PerspectiveCamera(angle, aspect, near, far);
camera.position.set(0, 0, 5);
scene = new THREE.Scene();
camera.lookAt(scene.position);
fillLight = new THREE.HemisphereLight( 0xffffff, 0x0ffffff, 1 );
scene.add(fillLight);
renderer = new THREE.WebGLRenderer({antialias : true});
renderer.setClearColor(0xffffff, 1);
renderer.setSize(WIDTH, HEIGHT);
renderer.shadowMap.enabled = true;
renderer.shadowMap.type = THREE.PCFSoftShadowMap;
container.appendChild(renderer.domElement);
raycaster = new THREE.Raycaster();
mouse = new THREE.Vector2();
document.addEventListener('mousedown', onDocumentMouseDown, false);
}
function addObjects(){
var geometry = new THREE.SphereGeometry(1, 16, 8);
var material = new THREE.MeshLambertMaterial({color: 0xaa0044});
sphere = new THREE.Mesh(geometry, material);
// test rotation by offsetting to 45 deg Y
// sphere.rotateOnAxis(new THREE.Vector3(0, 1, 0), 45 * Math.PI / 180);
scene.add(sphere);
addAxisHelper(sphere, 200);
addWireframeHelper(sphere, 0xffffff, 1);
}
function addWireframeHelper(mesh, color, width){
var helper = new THREE.WireframeHelper(mesh, color);
helper.material.linewidth = width;
scene.add(helper);
}
function addAxisHelper(target, size){
var helper = new THREE.AxisHelper(size);
target.add(helper);
}
function onDocumentMouseDown(event){
mouse.x = ( event.clientX / renderer.domElement.width ) * 2 - 1;
...