//////////////////////////////////////////////////////////////////////////////////
/// Rainbow ferris wheel by Michael Wang ///
/// Move mouse until dark and press mouse, the rainbow ferris whellshow up ///
/// source of inspiration is my hometown's ferris wheel like london eye ///
//////////////////////////////////////////////////////////////////////////////////
void setup() { // sets the size of window and framerate
size(400,400);
smooth();
frameRate(60);
}
void draw() {
background(253,173,163); // background
frameRate(60);
//////////////////////
// Colour of day ------------ daytime to dusk , color change by mouseY
/////////////////////
rectMode(CORNERS);
fill(172,231,242,350-mouseY*2);
rect (0,0,400,400);
////////////////////
// Colour of night ------------ dusk to night , color change by mouseY
///////////////////
fill(#0A0E1A,(mouseY)/1.5);
rect (0,0,400,400);
////////////////////
// River of day ------------ daytime to dusk , color change by mouseY
///////////////////
fill(108,220,237,350-mouseY*2);
rect(0,260,400,400);
//////////////////
// River of night ------------ dusk to night , color change by mouseY
//////////////////
fill(#0A0E1A,(mouseY)/1.5);
rect(0,260,400,400);
////////////////
//Clouds ------------- move left to right , use frameCount to change coordinate X
////////////////
rectMode(RADIUS);
noStroke();
fill(#FFFFFF, 100);
rect(0 + frameCount / 5.5, 90, 40, 10, 10);
fill(#FFFFFF, 110);
rect(120 + frameCount / 5.5, 60, 40, 10, 10);
fill(#FFFFFF, 80);
rect(80 + frameCount / 5.5, 120, 40, 10, 10);
//////////////////////////
//ferris wheel outer ring
/////////////////////////
stroke(1);
ellipseMode(CENTER);
stroke(1);
noFill();
strokeWeight(1);
ellipse(200, 130, 220, 220);
//////////////////////////
//ferris wheel inner ring
//////////////////////////
ellipseMode(CENTER);
noFill();
ellipse(200, 130, 200, 200);
translate(200, 130); // --------------- translate the oringinal coordinate and make following rotations
stroke(1);
strokeWeight(0.3);
////////////////////////////////////////////////////////////////////////////////////////////
// Boxes ------------------- to define the position of Boxes , solve by following formula
// Center of the Box (x1,y1) Center of the circle (x0,y0)
// x1 = x0 + r * cos(angle * PI / 180)
// y1 = y0 + r * sin(angle * PI / 180)
///////////////////////////////////////////////////////////////////////////////////////////
rectMode(CENTER); // Set rectMode to CENTER
fill(#030101);
rect(112 * cos(1 + frameCount * 0.005), 112 * sin(1 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(1.2 + frameCount * 0.005), 112 * sin(1.2 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(1.4 + frameCount * 0.005), 112 * sin(1.4 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(1.6 + frameCount * 0.005), 112 * sin(1.6+ frameCount * 0.005), 10, 6.5);
rect(112 * cos(1.8 + frameCount * 0.005), 112 * sin(1.8 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(2 + frameCount * 0.005), 112 * sin(2 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(2.2 + frameCount * 0.005), 112 * sin(2.2 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(2.4 + frameCount * 0.005), 112 * sin(2.4 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(2.6 + frameCount * 0.005), 112 * sin(2.6 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(2.8 + frameCount * 0.005), 112 * sin(2.8 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(3 + frameCount * 0.005), 112 * sin(3 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(3.2 + frameCount * 0.005), 112 * sin(3.2 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(3.4 + frameCount * 0.005), 112 * sin(3.4 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(3.6 + frameCount * 0.005), 112 * sin(3.6 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(3.8 + frameCount * 0.005), 112 * sin(3.8 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(4.0 + frameCount * 0.005), 112 * sin(4.0 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(4.2 + frameCount * 0.005), 112 * sin(4.2 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(4.4 + frameCount * 0.005), 112 * sin(4.4 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(4.6 + frameCount * 0.005), 112 * sin(4.6 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(4.8 + frameCount * 0.005), 112 * sin(4.8 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(5.0 + frameCount * 0.005), 112 * sin(5.0 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(5.2 + frameCount * 0.005), 112 * sin(5.2 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(5.4 + frameCount * 0.005), 112 * sin(5.4 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(5.6 + frameCount * 0.005), 112 * sin(5.6 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(5.8 + frameCount * 0.005), 112 * sin(5.8 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(6.0 + frameCount * 0.005), 112 * sin(6.0 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(6.2 + frameCount * 0.005), 112 * sin(6.2 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(6.4 + frameCount * 0.005), 112 * sin(6.4 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(6.6 + frameCount * 0.005), 112 * sin(6.6 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(6.8 + frameCount * 0.005), 112 * sin(6.8 + frameCount * 0.005), 10, 6.5);
rect(112 * cos(7.05 + frameCount * 0.005), 112 * sin(7.05 + frameCount * 0.005), 10, 6.5);
//////////////////////////////////
// The Cable ------------- rotate by framecount
/////////////////////////////////
stroke(1);
strokeWeight(0.3); // make the cable thin
line(0, 0, 100 * cos(1 + frameCount * 0.005), 100 * sin(1 + frameCount * 0.005));
line(0, 0, 100 * cos(1.1 + frameCount * 0.005), 100 * sin(1.1 + frameCount * 0.005));
line(0, 0, 100 * cos(1.2 + frameCount * 0.005), 100 * sin(1.2 + frameCount * 0.005));
line(0, 0, 100 * cos(1.3 + frameCount * 0.005), 100 * sin(1.3 + frameCount * 0.005));
line(0, 0, 100 * cos(1.4 + frameCount * 0.005), 100 * sin(1.4 + frameCount * 0.005));
line(0, 0, 100 * cos(1.5 + frameCount * 0.005), 100 * sin(1.5 + frameCount * 0.005));
line(0, 0, 100 * cos(1.6 + frameCount * 0.005), 100 * sin(1.6 + frameCount * 0.005));
line(0, 0, 100 * cos(1.7 + frameCount * 0.005), 100 * sin(1.7 + frameCount * 0.005));
line(0, 0, 100 * cos(1.8 + frameCount * 0.005), 100 * sin(1.8 + frameCount * 0.005));
line(0, 0, 100 * cos(1.9 + frameCount * 0.005), 100 * sin(1.9 + frameCount * 0.005));
line(0, 0, 100 * cos(2 + frameCount * 0.005), 100 * sin(2 + frameCount * 0.005));
line(0, 0, 100 * cos(2.1 + frameCount * 0.005), 100 * sin(2.1 + frameCount * 0.005));
line(0, 0, 100 * cos(2.2 + frameCount * 0.005), 100 * sin(2.2 + frameCount * 0.005));
line(0, 0, 100 * cos(2.3 + frameCount * 0.005), 100 * sin(2.3 + frameCount * 0.005));
line(0, 0, 100 * cos(2.4 + frameCount * 0.005), 100 * sin(2.4+ frameCount * 0.005));
line(0, 0, 100 * cos(2.5 + frameCount * 0.005), 100 * sin(2.5+ frameCount * 0.005));
line(0, 0, 100 * cos(2.6 + frameCount * 0.005), 100 * sin(2.6+ frameCount * 0.005));
line(0, 0, 100 * cos(2.7 + frameCount * 0.005), 100 * sin(2.7+ frameCount * 0.005));
line(0, 0, 100 * cos(2.8 + frameCount * 0.005), 100 * sin(2.8+ frameCount * 0.005));
line(0, 0, 100 * cos(2.9 + frameCount * 0.005), 100 * sin(2.9+ frameCount * 0.005));
line(0, 0, 100 * cos(3 + frameCount * 0.005), 100 * sin(3 + frameCount * 0.005));
line(0, 0, 100 * cos(3.1 + frameCount * 0.005), 100 * sin(3.1 + frameCount * 0.005));
line(0, 0, 100 * cos(3.2+ frameCount * 0.005), 100 * sin(3.2+ frameCount * 0.005));
line(0, 0, 100 * cos(3.3+ frameCount * 0.005), 100 * sin(3.3+ frameCount * 0.005));
line(0, 0, 100 * cos(3.4+ frameCount * 0.005), 100 * sin(3.4+ frameCount * 0.005));
line(0, 0, 100 * cos(3.5+ frameCount * 0.005), 100 * sin(3.5+ frameCount * 0.005));
line(0, 0, 100 * cos(3.6+ frameCount * 0.005), 100 * sin(3.6+ frameCount * 0.005));
line(0, 0, 100 * cos(3.7+ frameCount * 0.005), 100 * sin(3.7+ frameCount * 0.005));
line(0, 0, 100 * cos(3.8+ frameCount * 0.005), 100 * sin(3.8+ frameCount * 0.005));
line(0, 0, 100 * cos(3.9+ frameCount * 0.005), 100 * sin(3.9+ frameCount * 0.005));
line(0, 0, 100 * cos(4.0+ frameCount * 0.005), 100 * sin(4.0+ frameCount * 0.005));
line(0, 0, 100 * cos(4.1+ frameCount * 0.005), 100 * sin(4.1+ frameCount * 0.005));
line(0, 0, 100 * cos(4.2+ frameCount * 0.005), 100 * sin(4.2+ frameCount * 0.005));
line(0, 0, 100 * cos(4.3+ frameCount * 0.005), 100 * sin(4.3+ frameCount * 0.005));
line(0, 0, 100 * cos(4.4+ frameCount * 0.005), 100 * sin(4.4+ frameCount * 0.005));
line(0, 0, 100 * cos(4.5+ frameCount * 0.005), 100 * sin(4.5+ frameCount * 0.005));
line(0, 0, 100 * cos(4.6+ frameCount * 0.005), 100 * sin(4.6+ frameCount * 0.005));
line(0, 0, 100 * cos(4.7+ frameCount * 0.005), 100 * sin(4.7+ frameCount * 0.005));
line(0, 0, 100 * cos(4.8+ frameCount * 0.005), 100 * sin(4.8+ frameCount * 0.005));
line(0, 0, 100 * cos(4.9+ frameCount * 0.005), 100 * sin(4.9+ frameCount * 0.005));
line(0, 0, 100 * cos(5.1+ frameCount * 0.005), 100 * sin(5.1+ frameCount * 0.005));
line(0, 0, 100 * cos(5.2+ frameCount * 0.005), 100 * sin(5.2+ frameCount * 0.005));
line(0, 0, 100 * cos(5.3+ frameCount * 0.005), 100 * sin(5.3+ frameCount * 0.005));
line(0, 0, 100 * cos(5.4+ frameCount * 0.005), 100 * sin(5.4+ frameCount * 0.005));
line(0, 0, 100 * cos(5.5+ frameCount * 0.005), 100 * sin(5.5+ frameCount * 0.005));
line(0, 0, 100 * cos(5.6+ frameCount * 0.005), 100 * sin(5.6+ frameCount * 0.005));
line(0, 0, 100 * cos(5.7+ frameCount * 0.005), 100 * sin(5.7+ frameCount * 0.005));
line(0, 0, 100 * cos(5.8+ frameCount * 0.005), 100 * sin(5.8+ frameCount * 0.005));
line(0, 0, 100 * cos(5.9+ frameCount * 0.005), 100 * sin(5.9+ frameCount * 0.005));
line(0, 0, 100 * cos(6.1+ frameCount * 0.005), 100 * sin(6.1+ frameCount * 0.005));
line(0, 0, 100 * cos(6.2+ frameCount * 0.005), 100 * sin(6.2+ frameCount * 0.005));
line(0, 0, 100 * cos(6.3+ frameCount * 0.005), 100 * sin(6.3+ frameCount * 0.005));
line(0, 0, 100 * cos(6.4+ frameCount * 0.005), 100 * sin(6.4+ frameCount * 0.005));
line(0, 0, 100 * cos(6.5+ frameCount * 0.005), 100 * sin(6.5+ frameCount * 0.005));
line(0, 0, 100 * cos(6.6+ frameCount * 0.005), 100 * sin(6.6+ frameCount * 0.005));
line(0, 0, 100 * cos(6.7+ frameCount * 0.005), 100 * sin(6.7+ frameCount * 0.005));
line(0, 0, 100 * cos(6.8+ frameCount * 0.005), 100 * sin(6.8+ frameCount * 0.005));
line(0, 0, 100 * cos(6.9+ frameCount * 0.005), 100 * sin(6.9+ frameCount * 0.005));
line(0, 0, 100 * cos(5.0+ frameCount * 0.005), 100 * sin(5.0+ frameCount * 0.005));
line(0, 0, 100 * cos(7.0+ frameCount * 0.005), 100 * sin(7.0+ frameCount * 0.005));
line(0, 0, 100 * cos(6.0+ frameCount * 0.005), 100 * sin(6.0+ frameCount * 0.005));
line(0, 0, 100 * cos(7.1+ frameCount * 0.005), 100 * sin(7.1+ frameCount * 0.005));
line(0, 0, 100 * cos(7.2+ frameCount * 0.005), 100 * sin(7.2+ frameCount * 0.005));
if (mousePressed == false) { // --------------- Show normal yellow lights when mouse did not press
//////////////////////////////////
// Lights of Boxes
//////////////////////////////////
fill(35+mouseY*0.5, 36+mouseY*0.5, 18+mouseY*0.2); // ---------------- normal yellow lights , lights show change by mouseY
rect(112 * cos(1 + frameCount * 0.005), 112 * sin(1 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(1.2 + frameCount * 0.005), 112 * sin(1.2 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(1.4 + frameCount * 0.005), 112 * sin(1.4 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(1.6 + frameCount * 0.005), 112 * sin(1.6+ frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(1.8 + frameCount * 0.005), 112 * sin(1.8 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(2 + frameCount * 0.005), 112 * sin(2 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(2.2 + frameCount * 0.005), 112 * sin(2.2 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(2.4 + frameCount * 0.005), 112 * sin(2.4 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(2.6 + frameCount * 0.005), 112 * sin(2.6 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(2.8 + frameCount * 0.005), 112 * sin(2.8 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(3 + frameCount * 0.005), 112 * sin(3 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(3.2 + frameCount * 0.005), 112 * sin(3.2 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(3.4 + frameCount * 0.005), 112 * sin(3.4 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(3.6 + frameCount * 0.005), 112 * sin(3.6 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(3.8 + frameCount * 0.005), 112 * sin(3.8 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(4.0 + frameCount * 0.005), 112 * sin(4.0 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(4.2 + frameCount * 0.005), 112 * sin(4.2 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(4.4 + frameCount * 0.005), 112 * sin(4.4 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(4.6 + frameCount * 0.005), 112 * sin(4.6 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(4.8 + frameCount * 0.005), 112 * sin(4.8 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(5.0 + frameCount * 0.005), 112 * sin(5.0 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(5.2 + frameCount * 0.005), 112 * sin(5.2 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(5.4 + frameCount * 0.005), 112 * sin(5.4 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(5.6 + frameCount * 0.005), 112 * sin(5.6 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(5.8 + frameCount * 0.005), 112 * sin(5.8 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(6.0 + frameCount * 0.005), 112 * sin(6.0 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(6.2 + frameCount * 0.005), 112 * sin(6.2 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(6.4 + frameCount * 0.005), 112 * sin(6.4 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(6.6 + frameCount * 0.005), 112 * sin(6.6 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(6.8 + frameCount * 0.005), 112 * sin(6.8 + frameCount * 0.005), 4.5, 6.5);
rect(112 * cos(7.05 + frameCount * 0.005), 112 * sin(7.05 + frameCount * 0.005), 4.5, 6.5);
translate(-200, -130); // translate back
translate(200, 375); // translate the oringinal point into the river and make some shadows
//////////////////////////////////////////////////
// LIGHTS SHADOW
/////////////////////////////////////////////////
fill(#FFFCAD, mouseY-200); // normal yellow lights shadows
noStroke();
rect(-112 * cos(1 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(1.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.2 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(1.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.4 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(1.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.6+ frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(1.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.8 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(2.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.2 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(2.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.4 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(2.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.6 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(2.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.8 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(3 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(3.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3.2 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(3.4 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(3.4 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(3.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3.6 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(3.8 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(3.8 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(4.0 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(4.0 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(4.2 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(4.2 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(4.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(4.4 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(4.6 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(4.6 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(4.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(4.8 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(5.0 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.0 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(5.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(5.2 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(5.4 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.4 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(5.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(5.6 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(5.8 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.8 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(6.0 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.0 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(6.2 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(6.2 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(6.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.4 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(6.6 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(6.6 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(6.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.8 + frameCount * 0.005), 4.5, 6.5);
rect(-112 * cos(7.05 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(7.05 + frameCount * 0.005), 4.5, 6.5);
///////////////////////////////
//Shadow faint
//////////////////////////////
fill(#C1BD3E, mouseY-320);
rect(-112 * cos(1 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(1.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.2 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(1.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.4 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(1.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.6+ frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(1.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.8 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(2.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.2 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(2.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.4 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(2.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.6 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(2.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.8 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(3 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(3.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3.2 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(3.4 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(3.4 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(3.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3.6 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(3.8 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(3.8 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(4.0 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(4.0 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(4.2 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(4.2 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(4.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(4.4 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(4.6 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(4.6 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(4.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(4.8 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(5.0 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.0 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(5.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(5.2 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(5.4 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.4 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(5.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(5.6 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(5.8 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.8 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(6.0 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.0 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(6.2 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(6.2 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(6.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.4 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(6.6 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(6.6 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(6.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.8 + frameCount * 0.005), 9.5, 12.5);
rect(-112 * cos(7.05 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(7.05 + frameCount * 0.005), 9.5, 12.5);
///////////////////////////////
//Shadow faint 2
//////////////////////////////
fill(#C1BD3E, mouseY-350);
rect(-112 * cos(1 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(1.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.2 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(1.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.4 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(1.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.6+ frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(1.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.8 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(2.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.2 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(2.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.4 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(2.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.6 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(2.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.8 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(3 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(3.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3.2 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(3.4 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(3.4 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(3.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3.6 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(3.8 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(3.8 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(4.0 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(4.0 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(4.2 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(4.2 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(4.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(4.4 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(4.6 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(4.6 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(4.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(4.8 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(5.0 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.0 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(5.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(5.2 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(5.4 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.4 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(5.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(5.6 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(5.8 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.8 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(6.0 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.0 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(6.2 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(6.2 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(6.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.4 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(6.6 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(6.6 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(6.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.8 + frameCount * 0.005), 15.5, 18.5);
rect(-112 * cos(7.05 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(7.05 + frameCount * 0.005), 15.5, 18.5);
translate(-200, -375); //translate back
} else { // ------------ show fancy rainbow lights and shadows when mouse pressed
////////////////////////////////////
// Rainbow lights
////////////////////////////////////
fill(#FF0A0A, mouseY/2); //red
rect(112 * cos(1 + frameCount * 0.005), 112 * sin(1 + frameCount * 0.005), 4.5, 6.5);
fill(#FF580A, mouseY/2);
rect(112 * cos(1.2 + frameCount * 0.005), 112 * sin(1.2 + frameCount * 0.005), 4.5, 6.5);
fill(#FF810A, mouseY/2);
rect(112 * cos(1.4 + frameCount * 0.005), 112 * sin(1.4 + frameCount * 0.005), 4.5, 6.5);
fill(#FFA20A, mouseY/2);
rect(112 * cos(1.6 + frameCount * 0.005), 112 * sin(1.6+ frameCount * 0.005), 4.5, 6.5);
fill(#FFBE0A, mouseY/2);
rect(112 * cos(1.8 + frameCount * 0.005), 112 * sin(1.8 + frameCount * 0.005), 4.5, 6.5);
fill(#FFE70A, mouseY/2);
rect(112 * cos(2 + frameCount * 0.005), 112 * sin(2 + frameCount * 0.005), 4.5, 6.5);
fill(#F6FF0A, mouseY/2);
rect(112 * cos(2.2 + frameCount * 0.005), 112 * sin(2.2 + frameCount * 0.005), 4.5, 6.5);
fill(#D1FF0A, mouseY/2);
rect(112 * cos(2.4 + frameCount * 0.005), 112 * sin(2.4 + frameCount * 0.005), 4.5, 6.5);
fill(#B1FF0A, mouseY/2);
rect(112 * cos(2.6 + frameCount * 0.005), 112 * sin(2.6 + frameCount * 0.005), 4.5, 6.5);
fill(#7BFF0A, mouseY/2);
rect(112 * cos(2.8 + frameCount * 0.005), 112 * sin(2.8 + frameCount * 0.005), 4.5, 6.5);
fill(#53FF0A, mouseY/2);
rect(112 * cos(3 + frameCount * 0.005), 112 * sin(3 + frameCount * 0.005), 4.5, 6.5);
fill(#36FF0A, mouseY/2);
rect(112 * cos(3.2 + frameCount * 0.005), 112 * sin(3.2 + frameCount * 0.005), 4.5, 6.5);
fill(#0AFF30, mouseY/2);
rect(112 * cos(3.4 + frameCount * 0.005), 112 * sin(3.4 + frameCount * 0.005), 4.5, 6.5);
fill(#0AFF62, mouseY/2);
rect(112 * cos(3.6 + frameCount * 0.005), 112 * sin(3.6 + frameCount * 0.005), 4.5, 6.5);
fill(#0AFF86, mouseY/2);
rect(112 * cos(3.8 + frameCount * 0.005), 112 * sin(3.8 + frameCount * 0.005), 4.5, 6.5);
fill(#0AFFB7, mouseY/2);
rect(112 * cos(4.0 + frameCount * 0.005), 112 * sin(4.0 + frameCount * 0.005), 4.5, 6.5);
fill(#0AFFD4, mouseY/2);
rect(112 * cos(4.2 + frameCount * 0.005), 112 * sin(4.2 + frameCount * 0.005), 4.5, 6.5);
fill(#0AFFED, mouseY/2);
rect(112 * cos(4.4 + frameCount * 0.005), 112 * sin(4.4 + frameCount * 0.005), 4.5, 6.5);
fill(#0AEDFF, mouseY/2);
rect(112 * cos(4.6 + frameCount * 0.005), 112 * sin(4.6 + frameCount * 0.005), 4.5, 6.5);
fill(#0AC8FF, mouseY/2);
rect(112 * cos(4.8 + frameCount * 0.005), 112 * sin(4.8 + frameCount * 0.005), 4.5, 6.5);
fill(#0A9FFF, mouseY/2);
rect(112 * cos(5.0 + frameCount * 0.005), 112 * sin(5.0 + frameCount * 0.005), 4.5, 6.5);
fill(#0A72FF, mouseY/2);
rect(112 * cos(5.2 + frameCount * 0.005), 112 * sin(5.2 + frameCount * 0.005), 4.5, 6.5);
fill(#0A41FF, mouseY/2);
rect(112 * cos(5.4 + frameCount * 0.005), 112 * sin(5.4 + frameCount * 0.005), 4.5, 6.5);
fill(#0D0AFF, mouseY/2);
rect(112 * cos(5.6 + frameCount * 0.005), 112 * sin(5.6 + frameCount * 0.005), 4.5, 6.5);
fill(#460AFF, mouseY/2);
rect(112 * cos(5.8 + frameCount * 0.005), 112 * sin(5.8 + frameCount * 0.005), 4.5, 6.5);
fill(#800AFF, mouseY/2);
rect(112 * cos(6.0 + frameCount * 0.005), 112 * sin(6.0 + frameCount * 0.005), 4.5, 6.5);
fill(#A80AFF, mouseY/2);
rect(112 * cos(6.2 + frameCount * 0.005), 112 * sin(6.2 + frameCount * 0.005), 4.5, 6.5);
fill(#D50AFF, mouseY/2);
rect(112 * cos(6.4 + frameCount * 0.005), 112 * sin(6.4 + frameCount * 0.005), 4.5, 6.5);
fill(#FA0AFF, mouseY/2);
rect(112 * cos(6.6 + frameCount * 0.005), 112 * sin(6.6 + frameCount * 0.005), 4.5, 6.5);
fill(#FF0AC2, mouseY/2);
rect(112 * cos(6.8 + frameCount * 0.005), 112 * sin(6.8 + frameCount * 0.005), 4.5, 6.5);
fill(#FF0A75, mouseY/2);
rect(112 * cos(7.05 + frameCount * 0.005), 112 * sin(7.05 + frameCount * 0.005), 4.5, 6.5);
translate(-200, -130); //translate back
translate(200, 375); // translate the oringinal point into the river and make some fancy shadows
///////////////////////////////
// rainbow LIGHTS SHADOW
///////////////////////////////
noStroke();
fill(#0AFFB7, mouseY/2);
rect(-112 * cos(1 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1 + frameCount * 0.005), 4.5, 6.5);
fill(#0AFFD4, mouseY/2);
rect(-112 * cos(1.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.2 + frameCount * 0.005), 4.5, 6.5);
fill(#0AFFED, mouseY/2);
rect(-112 * cos(1.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.4 + frameCount * 0.005), 4.5, 6.5);
fill(#0AEDFF, mouseY/2);
rect(-112 * cos(1.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.6+ frameCount * 0.005), 4.5, 6.5);
fill(#0AC8FF, mouseY/2);
rect(-112 * cos(1.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.8 + frameCount * 0.005), 4.5, 6.5);
fill(#0A9FFF, mouseY/2);
rect(-112 * cos(2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2 + frameCount * 0.005), 4.5, 6.5);
fill(#0A72FF, mouseY/2);
rect(-112 * cos(2.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.2 + frameCount * 0.005), 4.5, 6.5);
fill(#0A41FF, mouseY/2);
rect(-112 * cos(2.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.4 + frameCount * 0.005), 4.5, 6.5);
fill(#0D0AFF, mouseY/2);
rect(-112 * cos(2.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.6 + frameCount * 0.005), 4.5, 6.5);
fill(#460AFF, mouseY/2);
rect(-112 * cos(2.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.8 + frameCount * 0.005), 4.5, 6.5);
fill(#800AFF, mouseY/2);
rect(-112 * cos(3 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3 + frameCount * 0.005), 4.5, 6.5);
fill(#A80AFF, mouseY/2);
rect(-112 * cos(3.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3.2 + frameCount * 0.005), 4.5, 6.5);
fill(#D50AFF, mouseY/2);
rect(-112 * cos(3.4 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(3.4 + frameCount * 0.005), 4.5, 6.5);
fill(#FA0AFF, mouseY/2);
rect(-112 * cos(3.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3.6 + frameCount * 0.005), 4.5, 6.5);
fill(#FF0AC2, mouseY/2);
rect(-112 * cos(3.8 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(3.8 + frameCount * 0.005), 4.5, 6.5);
fill(#FF0A75, mouseY/2);
rect(-112 * cos(4.0 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(4.0 + frameCount * 0.005), 4.5, 6.5);
fill(#FF0A0A, mouseY/2); //red
rect(-112 * cos(4.2 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(4.2 + frameCount * 0.005), 4.5, 6.5);
fill(#FF580A, mouseY/2);
rect(-112 * cos(4.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(4.4 + frameCount * 0.005), 4.5, 6.5);
fill(#FF810A, mouseY/2);
rect(-112 * cos(4.6 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(4.6 + frameCount * 0.005), 4.5, 6.5);
fill(#FFA20A, mouseY/2);
rect(-112 * cos(4.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(4.8 + frameCount * 0.005), 4.5, 6.5);
fill(#FFBE0A, mouseY/2);
rect(-112 * cos(5.0 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.0 + frameCount * 0.005), 4.5, 6.5);
fill(#FFE70A, mouseY/2);
rect(-112 * cos(5.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(5.2 + frameCount * 0.005), 4.5, 6.5);
fill(#F6FF0A, mouseY/2);
rect(-112 * cos(5.4 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.4 + frameCount * 0.005), 4.5, 6.5);
fill(#D1FF0A, mouseY/2);
rect(-112 * cos(5.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(5.6 + frameCount * 0.005), 4.5, 6.5);
fill(#B1FF0A, mouseY/2);
rect(-112 * cos(5.8 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.8 + frameCount * 0.005), 4.5, 6.5);
fill(#7BFF0A, mouseY/2);
rect(-112 * cos(6.0 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.0 + frameCount * 0.005), 4.5, 6.5);
fill(#53FF0A, mouseY/2);
rect(-112 * cos(6.2 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(6.2 + frameCount * 0.005), 4.5, 6.5);
fill(#36FF0A, mouseY/2);
rect(-112 * cos(6.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.4 + frameCount * 0.005), 4.5, 6.5);
fill(#0AFF30, mouseY/2);
rect(-112 * cos(6.6 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(6.6 + frameCount * 0.005), 4.5, 6.5);
fill(#0AFF62, mouseY/2);
rect(-112 * cos(6.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.8 + frameCount * 0.005), 4.5, 6.5);
fill(#0AFF86, mouseY/2);
rect(-112 * cos(7.05 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(7.05 + frameCount * 0.005), 4.5, 6.5);
///////////////////////////////
// rainbow LIGHTS SHADOW faint
///////////////////////////////
fill(#0AFFB7, mouseY/6);
rect(-112 * cos(1 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1 + frameCount * 0.005), 9.5, 12.5);
fill(#0AFFD4, mouseY/6);
rect(-112 * cos(1.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.2 + frameCount * 0.005), 9.5, 12.5);
fill(#0AFFED, mouseY/6);
rect(-112 * cos(1.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.4 + frameCount * 0.005), 9.5, 12.5);
fill(#0AEDFF, mouseY/6);
rect(-112 * cos(1.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.6+ frameCount * 0.005), 9.5, 12.5);
fill(#0AC8FF, mouseY/6);
rect(-112 * cos(1.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.8 + frameCount * 0.005), 9.5, 12.5);
fill(#0A9FFF, mouseY/6);
rect(-112 * cos(2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2 + frameCount * 0.005), 9.5, 12.5);
fill(#0A72FF, mouseY/6);
rect(-112 * cos(2.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.2 + frameCount * 0.005), 9.5, 12.5);
fill(#0A41FF, mouseY/6);
rect(-112 * cos(2.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.4 + frameCount * 0.005), 9.5, 12.5);
fill(#0D0AFF, mouseY/6);
rect(-112 * cos(2.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.6 + frameCount * 0.005), 9.5, 12.5);
fill(#460AFF, mouseY/6);
rect(-112 * cos(2.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.8 + frameCount * 0.005), 9.5, 12.5);
fill(#800AFF, mouseY/6);
rect(-112 * cos(3 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3 + frameCount * 0.005), 9.5, 12.5);
fill(#A80AFF, mouseY/6);
rect(-112 * cos(3.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3.2 + frameCount * 0.005), 9.5, 12.5);
fill(#D50AFF, mouseY/6);
rect(-112 * cos(3.4 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(3.4 + frameCount * 0.005), 9.5, 12.5);
fill(#FA0AFF, mouseY/6);
rect(-112 * cos(3.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3.6 + frameCount * 0.005), 9.5, 12.5);
fill(#FF0AC2, mouseY/6);
rect(-112 * cos(3.8 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(3.8 + frameCount * 0.005), 9.5, 12.5);
fill(#FF0A75, mouseY/6);
rect(-112 * cos(4.0 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(4.0 + frameCount * 0.005), 9.5, 12.5);
fill(#FF0A0A, mouseY/6); //red hun
rect(-112 * cos(4.2 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(4.2 + frameCount * 0.005), 9.5, 12.5);
fill(#FF580A, mouseY/6);
rect(-112 * cos(4.4 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(4.4 + frameCount * 0.005), 9.5, 12.5);
fill(#FF580A, mouseY/6);
rect(-112 * cos(4.6 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(4.6 + frameCount * 0.005), 9.5, 12.5);
fill(#FF810A, mouseY/6);
rect(-112 * cos(4.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(4.8 + frameCount * 0.005), 9.5, 12.5);
fill(#FFA20A, mouseY/6);
rect(-112 * cos(5.0 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.0 + frameCount * 0.005), 9.5, 12.5);
fill(#FFBE0A, mouseY/6);
rect(-112 * cos(5.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(5.2 + frameCount * 0.005), 9.5, 12.5);
fill(#FFE70A, mouseY/6);
rect(-112 * cos(5.4 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.4 + frameCount * 0.005), 9.5, 12.5);
fill(#F6FF0A, mouseY/6);
rect(-112 * cos(5.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(5.6 + frameCount * 0.005), 9.5, 12.5);
fill(#D1FF0A, mouseY/6);
rect(-112 * cos(5.8 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.8 + frameCount * 0.005), 9.5, 12.5);
fill(#B1FF0A, mouseY/6);
rect(-112 * cos(6.0 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.0 + frameCount * 0.005), 9.5, 12.5);
fill(#7BFF0A, mouseY/6);
rect(-112 * cos(6.2 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(6.2 + frameCount * 0.005), 9.5, 12.5);
fill(#53FF0A, mouseY/6);
rect(-112 * cos(6.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.4 + frameCount * 0.005), 9.5, 12.5);
fill(#36FF0A, mouseY/6);
rect(-112 * cos(6.6 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(6.6 + frameCount * 0.005), 9.5, 12.5);
fill(#0AFF30, mouseY/6);
rect(-112 * cos(6.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.8 + frameCount * 0.005), 9.5, 12.5);
fill(#0AFF62, mouseY/6);
rect(-112 * cos(7.05 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(7.05 + frameCount * 0.005), 9.5, 12.5);
///////////////////////////////
// rainbow LIGHTS SHADOW faint 2
///////////////////////////////
fill(#0AFFB7, mouseY/8);
rect(-112 * cos(1 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1 + frameCount * 0.005), 15.5, 18.5);
fill(#0AFFD4, mouseY/8);
rect(-112 * cos(1.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.2 + frameCount * 0.005), 15.5, 18.5);
fill(#0AFFED, mouseY/8);
rect(-112 * cos(1.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.4 + frameCount * 0.005), 15.5, 18.5);
fill(#0AEDFF, mouseY/8);
rect(-112 * cos(1.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.6+ frameCount * 0.005), 15.5, 18.5);
fill(#0AC8FF, mouseY/8);
rect(-112 * cos(1.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(1.8 + frameCount * 0.005), 15.5, 18.5);
fill(#0A9FFF, mouseY/8);
rect(-112 * cos(2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2 + frameCount * 0.005), 15.5, 18.5);
fill(#0A72FF, mouseY/8);
rect(-112 * cos(2.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.2 + frameCount * 0.005), 15.5, 18.5);
fill(#0A41FF, mouseY/8);
rect(-112 * cos(2.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.4 + frameCount * 0.005), 15.5, 18.5);
fill(#0D0AFF, mouseY/8);
rect(-112 * cos(2.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.6 + frameCount * 0.005), 15.5, 18.5);
fill(#460AFF, mouseY/8);
rect(-112 * cos(2.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(2.8 + frameCount * 0.005), 15.5, 18.5);
fill(#800AFF, mouseY/8);
rect(-112 * cos(3 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3 + frameCount * 0.005), 15.5, 18.5);
fill(#A80AFF, mouseY/8);
rect(-112 * cos(3.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3.2 + frameCount * 0.005), 15.5, 18.5);
fill(#D50AFF, mouseY/8);
rect(-112 * cos(3.4 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(3.4 + frameCount * 0.005), 15.5, 18.5);
fill(#FA0AFF, mouseY/8);
rect(-112 * cos(3.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(3.6 + frameCount * 0.005), 15.5, 18.5);
fill(#FF0AC2, mouseY/8);
rect(-112 * cos(3.8 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(3.8 + frameCount * 0.005), 15.5, 18.5);
fill(#FF0A75, mouseY/8);
rect(-112 * cos(4.0 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(4.0 + frameCount * 0.005), 15.5, 18.5);
fill(#FF0A0A, mouseY/8);
rect(-112 * cos(4.2 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(4.2 + frameCount * 0.005), 15.5, 18.5);
fill(#FF580A, mouseY/8);
rect(-112 * cos(4.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(4.4 + frameCount * 0.005), 15.5, 18.5);
fill(#FF810A, mouseY/8);
rect(-112 * cos(4.6 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(4.6 + frameCount * 0.005), 15.5, 18.5);
fill(#FFA20A, mouseY/8);
rect(-112 * cos(4.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(4.8 + frameCount * 0.005), 15.5, 18.5);
fill(#FFBE0A, mouseY/8);
rect(-112 * cos(5.0 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.0 + frameCount * 0.005), 15.5, 18.5);
fill(#FFE70A, mouseY/8);
rect(-112 * cos(5.2 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(5.2 + frameCount * 0.005), 15.5, 18.5);
fill(#F6FF0A, mouseY/8);
rect(-112 * cos(5.4 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.4 + frameCount * 0.005), 15.5, 18.5);
fill(#D1FF0A, mouseY/8);
rect(-112 * cos(5.6 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(5.6 + frameCount * 0.005), 15.5, 18.5);
fill(#B1FF0A, mouseY/8);
rect(-112 * cos(5.8 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(5.8 + frameCount * 0.005), 15.5, 18.5);
fill(#7BFF0A, mouseY/8);
rect(-112 * cos(6.0 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.0 + frameCount * 0.005), 15.5, 18.5);
fill(#53FF0A, mouseY/8);
rect(-112 * cos(6.2 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(6.2 + frameCount * 0.005), 15.5, 18.5);
fill(#36FF0A, mouseY/8);
rect(-112 * cos(6.4 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.4 + frameCount * 0.005), 15.5, 18.5);
fill(#0AFF30, mouseY/8);
rect(-112 * cos(6.6 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(6.6 + frameCount * 0.005), 15.5, 18.5);
fill(#0AFF62, mouseY/8);
rect(-112 * cos(6.8 + frameCount * 0.005)+sin(millis()/100)*1, 112 * sin(6.8 + frameCount * 0.005), 15.5, 18.5);
fill(#0AFF86, mouseY/8);
rect(-112 * cos(7.05 + frameCount * 0.005)+sin(millis()/100)*1.5, 112 * sin(7.05 + frameCount * 0.005), 15.5, 18.5);
translate(-200, -375);
} // end of the script
///////////////////////
//Holders
///////////////////////
rectMode(CORNERS); // ser the rectmode to CORNERS
noStroke();
fill(161-mouseY*0.5, 163-mouseY*0.5, 167-mouseY*0.5);
rect(0, 240, 400, 260);
rect(195, 120, 205, 190);
quad(110, 240, 90, 240, 200, 180, 200, 195);
quad(290, 240, 310, 240, 200, 180, 200, 195);
//Holders LIGHT
fill(#C1BD3E, mouseY-200);
rect(197, 125, 203, 135);
rect(198, 140, 202, 160);
rect(198, 165, 202, 184);
//Holders LIGHT Shadow
fill(#FAFF0A, mouseY-200);
rect(197, 367, 203, 376);
rect(198, 360, 202, 340);
rect(198, 335, 202, 316);
fill(#FAFF0A, mouseY-300);
rect(194, 364, 206, 379);
rect(195, 364, 205, 337);
rect(195, 338, 205, 313);
//MOON go up and down by mouseY color changing as same as day-dust-night
fill (#FCFCFC, mouseY-200);
ellipse (360,400-mouseY*0.90, 30,30);
fill (#FCFCFC, mouseY-300);
ellipse (360,400-mouseY*0.90, 50,50);
//Sun go up and down by mouseY color changing as same as day-dust-night
fill (255,255-mouseY*0.5,33-mouseY*0.5,200-mouseY);
ellipse (50,41+mouseY*0.8, 30,30);
fill (255,255-mouseY*0.5,33-mouseY*0.5,100-mouseY);
ellipse (50,41+mouseY*0.8, 50,50);
/////////////////////////
//BIG flicker STARs
/////////////////////////
fill(#F6FA86, 35+mouseY/2);
ellipse(45, 30, sin(frameCount/19)*3, 10);
ellipse(45, 30, 10, sin(frameCount/19.1)*3);
ellipse(20, 120, (sin(100+frameCount*0.05)*3), (sin(frameCount*0.05)*11));
ellipse(20, 120, (sin(75+frameCount*0.05)*11), (sin(frameCount*0.05)*3));
ellipse(155, 92, (cos(110+frameCount*0.05)*2), (cos(frameCount*0.05)*9));
ellipse(155, 92, (cos(85+frameCount*0.05)*9), (cos(frameCount*0.05)*2));
ellipse(260, 22, (sin(100+frameCount*0.05)*3), (sin(frameCount*0.05)*11));
ellipse(260, 22, (sin(75+frameCount*0.05)*11), (sin(frameCount*0.05)*3));
ellipse(370, 112, (sin(100+frameCount*0.05)*3), (sin(frameCount*0.05)*11));
ellipse(370, 112, (sin(75+frameCount*0.05)*11), (sin(frameCount*0.05)*3));
filter(BLUR, -397+mouseY); // blur the whole picture when mouse touch down
///////////////////////////
//small STARs
///////////////////////////
fill(#F6FA86, 35+mouseY/2);
ellipse(85, 70, 3, 3);
ellipse(95, 20, 2, 2);
ellipse(145, 50, 3, 2);
ellipse(125, 140, 3, 3);
ellipse(285, 43, 2, 3);
ellipse(375, 25, 3, 3);
ellipse(360, 110, 2, 4);
//////////////////////////////////////////////
// River waves ========================== day to dust
//////////////////////////////////////////////
fill(#83B1BF, 350-mouseY*2);
rect(0,(float)(250+Math.sin(frameCount*.02-2.5)),400,400);
fill(#85B4C1,340-mouseY*2);
rect(0,(float)(270+Math.sin(frameCount*.02-1.4)*2),400,400);
rectMode(CORNERS);
fill(#8ABBC9, 335-mouseY*2);
rect(0,(float)(290+Math.sin(frameCount*.02-.8)*6),400,400);
fill(#8CBDCB,320-mouseY*2);
rect(0,(float)(325+Math.sin(frameCount*.02)*12),400,400);
fill(#8CBDCB,310-mouseY*2);
rect(0,(float)(350+Math.sin(frameCount*.02)*12),400,400);
fill(#92C9D8,350-mouseY*2);
rect(0,(float)(375+Math.sin(frameCount*.02+.8)*18),400,400);
////////////////////////////////////////////////////
// River waves ============================= dust to night
///////////////////////////////////////////////////
fill(#0A0E1A, mouseY/4);
rect(0,(float)(255+Math.sin(frameCount*.01-2.4)),400,400);
fill(#0A0E1A,mouseY/4);
rect(0,(float)(272+Math.sin(frameCount*.01-1.6)*2),400,400);
rectMode(CORNERS);
fill(#0A0E1A, mouseY/4);
rect(0,(float)(290+Math.sin(frameCount*.01-.8)*6),400,400);
fill(#0A0E1A,mouseY/4);
rect(0,(float)(325+Math.sin(frameCount*.01)*12),400,400);
fill(#0A0E1A,mouseY/4);
rect(0,(float)(350+Math.sin(frameCount*.01)*12),400,400);
fill(#0A0E1A,mouseY/4);
rect(0,(float)(375+Math.sin(frameCount*.01+.8)*18),400,400);
}