Pure THREE.JS template

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r71/three.js"></script>
<script src="http://three.thiele-medien.de/threejs-r71/examples/shared/js/ThreeCSG.js"></script>
<script src="http://three.thiele-medien.de/threejs-r71/examples/shared/js/csg.js"></script>
<script src="https://dl.dropboxusercontent.com/u/3587259/Code/Threejs/OrbitControls.js">
</script>

JavaScript

var scene, renderer, camera, controls;

init();
animate();

function init()
{	
	basicScene();
    
    var wallThickness = 0.2;
    var width = 10;
    var length = 10;
    
    var ceiling = createCeiling( width, wallThickness, length );
    
	var ceilingMaterial = new THREE.MeshPhongMaterial ( {
			color:0xFFFFFF, 
			shininess:10,
			specular: 0x555555,
        	shading: THREE.FlatShading,
        	wireframe: false,
		} );
	ceilingMaterial.color.setHSL( 0.6470588235294118, 1, 0.79 );
    
    ceiling.material = ceilingMaterial;
    
    scene.add( ceiling );
    
}

function animate()
{
	controls.update();
    requestAnimationFrame ( animate );  
	renderer.render (scene, camera);
}

function basicScene() {
 	renderer = new THREE.WebGLRenderer( {antialias:true} );
	var width = window.innerWidth;
	var height = window.innerHeight;

    renderer.setSize (width, height);
    // background color
    renderer.setClearColor( 0x55ff55, 1);
    
	document.body.appendChild (renderer.domElement);

	scene = new THREE.Scene();

	camera = new THREE.PerspectiveCamera (45, width/height, 1, 10000);
	camera.position.y = 10;
	camera.position.z = 10;
	camera.lookAt (new THREE.Vector3(0,0,0));

    controls = new THREE.OrbitControls (camera, renderer.domElement);
    
	var aL = new THREE.AmbientLight ( 0x050505 );
	scene.add( aL );
    
    var hemiLight = new THREE.HemisphereLight( 0xffffff, 0xffffff, 0.2 );
    hemiLight.color.setHSL( 0.6, 1, 0.6 );
    hemiLight.groundColor.setHSL( 0.095, 1, 0.75 );
    hemiLight.position.set( 0, 500, 0 );
    scene.add( hemiLight );

    var dirLight = new THREE.DirectionalLight( 0xffffff, 0.3 );
    dirLight.color.setHSL( 0.1, 1, 0.95 );
    dirLight.position.set( -1, 1.75, 1 );
    dirLight.position.multiplyScalar( 50 );
    scene.add( dirLight );
    
	var gridXZ = new THREE.GridHelper(100, 10);
	gridXZ.setColors( new THREE.Color(0xff0000), new THREE.Color(0xffffff) );
	scene.add(gridXZ);     
}

function createCeiling( width, wallThickness,...