import processing.opengl.*; // camera settings float eyeX = 311; float eyeY = 55; float eyeZ = -275; float viewX = 400; float viewY = 50; float viewZ = 0; float camSpeed = 5; // like pixel arrays, led brightness addresses from top left, // increments to the right by one, and end bottom right // fill this array to add content // each brighness is ranging from black = 0.0 to green = 255.0 float[] ledBrightness = new float[300]; // temp is used for interpolated change float[] ledBrightnessTemp = new float[300]; // bouncing ball variables float ballX = 0; float ballY = 0; float ballXSpeed = 0; float ballYSpeed = 0; // noise scale used for Perlin Noise generation float noiseScale=0.12; float noiseZ = 0.0; void setup() { size(800, 400, OPENGL); colorMode(HSB, 100); frameRate(30); // generate bouncing ball direction ballXSpeed = random(6.0); ballYSpeed = random(2.0); } void draw() { background(0,0,0); //lights pointLight(0, 0, 100, 35, 600, -400); pointLight(20, 50, 70, 200, 20, 15); // content if (second() < 10) { if (frameCount%60 == 0) randomNoise(); interpolateLeds(6); } else if (second() < 20) { waveLight(); } else if (second() < 30) { niceSine(); } else if (second() < 40) { bounceBall(); } else if (second() < 50) { if (frameCount%1 == 0) randomNoise(); interpolateLeds(1); } else if (second() < 60) { perlinNoise(); } // draw drawFacade(); drawLeds(); // see camera(eyeX, eyeY, eyeZ, viewX, viewY, viewZ, 0.0, -1.0, 0.0); navigation(); } // CONTENT ********************************************************************** void perlinNoise(){ for(int i = 0; i 100 && noiseVal < 130) ledBrightness[i] = 255; } } void bounceBall() { ballX += ballXSpeed; ballY += ballYSpeed; if (ballX > 60 || ballX < 0) ballXSpeed = -ballXSpeed; if (ballY > 5 || ballY < 0) ballYSpeed = -ballYSpeed; for(int i = 0; i 0 && treshold < 0.5) ledBrightness[i] = 255; } } void randomNoise() { for(int i = 0; i