Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
//////////////////////////////////////////////////////////////////////////////////
///                           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);
  
}