submission by jtoy for working with circles and motion (View the other submissions)
function w(v){
  return width *v;
}
function h(v){
  return width * v;
}
function setup(){
  var myCanvas = createCanvas(windowWidth,windowHeight); //you must keep this line unmodified
}
function inner_circle(x,y,v,s,d){
  push()
  stroke(v*1239%360,v*5555%360,v*9129%360)
  fill(v*1239%360,v*5555%360,v*9129%360)

  translate(x,y)
  xx = d*sin(s*3)*w(v)
  yy = d*cos(s*3)*h(v)
  ellipse(xx,yy,w(v),h(v))
  line(0,0,xx,yy)
  if(v/2 > 0.01){
    inner_circle(xx,yy,v*.9,s*1.1,d)
  }
  pop()
}
function draw() {
  background(0,5)
  fill(0)
  strokeWeight(4)
  translate(width/2,height/2)
  stroke(255,0,0)
  s = frameCount/100
  x = sin(s)*w(0.4)
  y = cos(s)*h(0.4)
  ellipse(x,y,w(0.4),h(0.4))
  stroke(255,255,0)
  inner_circle(x,y,0.2,s,1)
  inner_circle(x,y,0.2,s,-1)
  
  nx = -sin(s)*w(0.4)
  ny = -cos(s)*h(0.4)
  ellipse(nx,ny,w(0.4),h(0.4))
  stroke(255,255,0)
  inner_circle(nx,ny,0.2,s,1)
  inner_circle(nx,ny,0.2,s,-1)
}