int stageW = 1440; int stageH = 1440; color bgClr = #242424; // ******************************************************************************************************************** int cols = 35; int rows = 35; int total = cols * rows; float zDepth; int rSize = 100; // ******************************************************************************************************************** // gray light gray red purple red color[][] clr1 = { {102,102,102}, {153,153,153}, {236,31,39}, {102,47,144}, {236,31,39} }; int clr1Len = clr1.length; int clr1Num = total; int clr1Cnt = -1; int clr1Blk = floor(clr1Num/clr1Len); color[] clr1A = new color[clr1Num]; // ******************************************************************************************************************** void settings() { size(stageW,stageH,P3D); } void setup() { background(bgClr); // set colors for (int i = 0; i < clr1Num; ++i) { if( i%clr1Blk==0 ) clr1Cnt = (clr1Cnt+1)%clr1Len; color _c1 = color(clr1[(clr1Cnt)][0], clr1[(clr1Cnt)][1], clr1[(clr1Cnt)][2]); color _c2 = color(clr1[(clr1Cnt+1)%clr1Len][0], clr1[(clr1Cnt+1)%clr1Len][1], clr1[(clr1Cnt+1)%clr1Len][2]); clr1A[i] = lerpColor( _c1, _c2, map(i, (clr1Cnt*clr1Blk), (((clr1Cnt+1))*clr1Blk), 0.0, 1.0) ); } } void draw() { background(bgClr); strokeWeight(0); noStroke(); lights(); float pers = map(sin(radians(frameCount*0.5)), -1,1, 1.75, 7.0); perspective(PI/pers, (float)(width*2)/(height*2), 0.1, 1000000); translate((width/2), (height/2)); int frameColumns = cols; int frameRows = rows; for(int level=0; level<=ceil(cols/2); level++) { int frameWidth = frameColumns*rSize; int frameHeight = frameRows*rSize; zDepth = map(sin(radians(frameCount+level*30)), -1,1, -10, -1) * rSize; for (int c=0; c