Cube made of cylinders (three.js)

by Mikel Ortega

JavaScript

var camera, scene, renderer;
var mouseX = 0, mouseY = 0;
var windowHalfX = window.innerWidth / 2;
var windowHalfY = window.innerHeight / 2;

init();
animate();

function init() {

    scene = new THREE.Scene();

    camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 10000);
    camera.position.z = 100;
    scene.add(camera);

    var material = new THREE.MeshLambertMaterial({color: 0xaabbff});
    geomCyl  = new THREE.CylinderGeometry(1, 1, 20, 32, 1, true);

    cylinder = new THREE.Mesh(geomCyl, material);
    cylinder.rotation.set(Math.PI*0.5,0,0);
    cylinder.position.set(-10,-10,0);
    scene.add(cylinder);
    cylinder = new THREE.Mesh(geomCyl, material);
    cylinder.rotation.set(Math.PI*0.5,0,0);
    cylinder.position.set(10,-10,0);
    scene.add(cylinder);
    cylinder = new THREE.Mesh(geomCyl, material);
    cylinder.rotation.set(Math.PI*0.5,0,0);
    cylinder.position.set(-10,10,0);
    scene.add(cylinder);
    cylinder = new THREE.Mesh(geomCyl, material);
    cylinder.rotation.set(Math.PI*0.5,0,0);
    cylinder.position.set(10,10,0);
    scene.add(cylinder);
    cylinder = new THREE.Mesh(geomCyl, material);
    cylinder.rotation.set(0,0,Math.PI*0.5);
    cylinder.position.set(0,10,-10);
    scene.add(cylinder);
    cylinder = new THREE.Mesh(geomCyl, material);
    cylinder.rotation.set(0,0,Math.PI*0.5);
    cylinder.position.set(0,10,10);
    scene.add(cylinder);
    cylinder = new THREE.Mesh(geomCyl, material);
    cylinder.rotation.set(0,0,Math.PI*0.5);
    cylinder.position.set(0,-10,-10);
    scene.add(cylinder);
    cylinder = new THREE.Mesh(geomCyl, material);
    cylinder.rotation.set(0,0,Math.PI*0.5);
    cylinder.position.set(0,-10,10);
    scene.add(cylinder);
    cylinder = new THREE.Mesh(geomCyl, material);
    cylinder.position.set(-10,0,10);
    scene.add(cylinder);
    cylinder = new THREE.Mesh(geomCyl, material);
    cylinder.position.set(-10,0,-10);
    scene.add(cylinder);
    cylinder = new...