submission by jtoy
function setup(){
  var myCanvas = createCanvas(windowWidth,windowHeight); //you must keep this line unmodified
  colors=[[255,0,0],[255,127,0],[255,255,0],[0,255,0],[0,0,255],[75,0,130],[148,0,211]]
  x = 0 
  y=0 
t = 0
timer = millis()
remove_timer = millis()
commets=[]
}

function draw() {
  background(123)

  //start writing your code here
  noStroke()
translate(width/2,height/2)
  push()
  for(i=colors.length-1;i>=0;i--){
   //console.log(i)
    fill(colors[i][0],colors[i][1],colors[i][2])

    ellipse(x,y,i*30+20,i*30+20)
   rect(y+80,x+80,i*30+20,i*30+20)
   triangle(x-120*i,y*i,x-150*i,y-30*i,x-90*i,y*i)
   rotate(millis()/10000)

  }
pop()
 t+= 0.01
translate(0,0)
 if( millis()-3000> timer){
   timer=millis()
console.log('add commet')
  strokeWeight(20)
  line(0,0,width,height)
  commets.push({x:random(0,width),y:random(0,height),xd:random(0,4)-2,yd:random(0,4)-2})
  }

   if( millis()-6000> remove_timer){
     remove_timer=millis()
    console.log('remove commet')
    commets.pop()
  }
  for(ii=0;ii<commets.length;ii++){
   c = commets[ii]
   c.x+=c.xd
  c.y+= c.yd
  commets[ii] = c
   for(i=colors.length-1;i>=0;i--){
     //console.log(i)
     fill(colors[i][0],colors[i][1],colors[i][2])
     ellipse(c.x,c.y,i*23,i*23)

    }
  }
  console.log(commets)

}