    
         program.cameraLookat = gl.getUniformLocation(program, "cameraLookat");
         gl.uniform3f(program.cameraLookat, config.lookat.x, config.lookat.y, config.lookat.z);
         
         program.lightDir = gl.getUniformLocation(program, "lightDir");
         // pre normalise light dir
         var x = config.lightDir.x, y = config.lightDir.y, z = config.lightDir.z;
         var len = x*x + y*y + z*z;
         len = 1.0 / Math.sqrt(len);
         gl.uniform3f(program.lightDir, config.li