> show canvas only <


/* built with Studio Sketchpad: 
 *   https://sketchpad.cc
 * 
 * observe the evolution of this sketch: 
 *   https://dflab.sketchpad.cc/sp/pad/view/ro.U-cYe-URP5p/rev.66
 * 
 * authors: 
 *   Alexandre Alagoa

 * license (unless otherwise specified): 
 *   creative commons attribution-share alike 3.0 license.
 *   https://creativecommons.org/licenses/by-sa/3.0/ 
 */ 



float px[];
float py[];

 
int num_particles = 10;
 
 
void setup() {  
    size(500, 500); 
 
    background(0, 0, 0);
    
    px = new float[1000];
    py = new float[1000];
    

    
    for (int i = 1; i < num_particles; i++) {
        px[i] = random (width);
        py[i] = random (height);
    }
} 
 
void draw() {
    background(0, 0, 0);
    
   
    
    fill (255, 145, 0);
    ellipse (250, 250, 520, 520);
    fill (224, 255, 0);
    ellipse (250, 250, 500, 500);
    fill (11, 255, 0);
    ellipse (250, 250, 480, 480);
    fill (0, 255, 142);
    ellipse (250, 250, 460, 460);
    fill (0, 219, 255);
    ellipse (250, 250, 440, 440);
    fill (0, 44, 255);
    ellipse (250, 250, 420, 420);
    
    fill (60, 2, 162);
    ellipse (250, 250, 400, 400);
    fill (159, 2, 162);
    ellipse (250, 250, 380, 380);
    fill (162, 2, 63);
    ellipse (250, 250, 360, 360);
    fill (203, 0, 14);
    ellipse (250, 250, 340, 340);
    fill (255, 0, 17);
    ellipse (250, 250, 320, 320);
    fill (255, 111, 0);
    ellipse (250, 250, 300, 300);
    fill (255, 205, 0);
    ellipse (250, 250, 280, 300);
    fill (250, 255, 0);
    ellipse (250, 250, 260, 280);
    fill (173, 255, 0);
    ellipse (250, 250, 240, 260);
    fill (58, 255, 0);
    ellipse (250, 250, 200, 240);
    fill (0, 255, 104);
    ellipse (250, 250, 180, 220);
    fill (0, 255, 202);
    ellipse (250, 250, 160, 200);
    fill (0, 138, 255);
    ellipse (250, 250, 140, 180);
    fill (16, 0, 255);
    ellipse (250, 250, 120, 160);
    fill (255, 0, 21);
    ellipse (250, 250, 100, 140);
    fill (0, 0, 0);
    ellipse (250, 250, 80, 80);
    
       noStroke();
    fill(0, 255, 189);
    rectMode(CENTER);
    float sz = frameCount % 120;
    ellipse(width/2, height/2, 5 + sz, 5 + sz);
    
    noStroke();
    fill(255, 0, 0);
    rectMode(CENTER);
    float sz = frameCount % 80;
    ellipse(width/2, height/2, 4 + sz, 4 + sz);
    
    fill(0, 255, 0);
    rectMode(CENTER);
    float sz = frameCount % 60;
    ellipse(width/2, height/2, 4 + sz, 5 + sz);

    
    for (int i = 0; i < num_particles; i = i+1) {
        px[i] = constrain (px[i] + random (-10, 10), 50, width);
        py[i] = constrain (py[i] + random (-10, 10), 50, height);
 
 fill (0, 0, 0);
        ellipse (px[i], py[i], 144, 14);
        
        ellipse (px[i], py[i], 14, 144);
       

        ellipse (px[i], py[i], 30, 30);
         fill (270, 0, 0);
        ellipse (px[i], py[i], 4, 4);
       
    
        
    }
}