Three JS

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r70/three.js"></script>

CSS

body {
    margin: 0;
}
canvas { 
    border: 2px solid #abc; 
    box-sizing: border-box;
    width: 100%;
    height: 100% 
}

JavaScript

var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );

var renderer = new THREE.WebGLRenderer({antialias: true, preserveDrawingBuffer: true});

renderer.setSize( window.innerWidth - 4, window.innerHeight - 4 );
document.body.appendChild( renderer.domElement );

var geometry = new THREE.BoxGeometry( 2, 1, 1 );
var material = new THREE.MeshPhongMaterial( { color: 0xa0ff00 } );
var cube = new THREE.Mesh( geometry, material );
scene.add( cube );

camera.position.z = 5;

var directionalLight = new THREE.DirectionalLight( 0xaabbcc, 0.8 );
directionalLight.position.set( -10, 30, 0 );
console.log(directionalLight);
scene.add( directionalLight );

var pointLight = new THREE.PointLight( 0xbbbbbb, 0.8 );
pointLight.position.set( 10, -20, 0 );
scene.add( pointLight );

function render() {
	requestAnimationFrame( render );
	renderer.render( scene, camera );
    
    cube.rotation.x += 0.01;
    cube.rotation.y += 0.03;

}
render();