import processing.opengl.*; import toxi.geom.*; import toxi.math.*; int RESX=9; int RESY=9; int RESZ=50; float noiseScaleX=10f/RESX; float noiseScaleY=10f/RESY; float noiseScaleZ=8f/RESZ; int depth; Grid grid; void setup(){ size(800,800,OPENGL); depth=width; background(255); hint(ENABLE_OPENGL_4X_SMOOTH); frameRate(20); grid = populateGrid(); } void draw(){ background(0); //pointLight(200,120,120, width/2,height/2,-800); pointLight(250,220,220, width/2,height/2,2*mouseY-1200); lights(); translate(width/2,height/2,-depth); noStroke(); grid.draw(0.9*width/(float)RESX,0.9*height/(float)RESY,4*depth/(float)RESZ,1.0f); grid = populateGrid(); } Grid populateGrid(){ Grid grid = new Grid(RESX,RESY,RESZ); int rmax =(int)random(5,25); //noiseSeed((long)random(2147483647)); for(int k=0;k