1. //vapor_140721c

     
  2. //vapor_140721b

     
  3. //vapor_140721a

     
  4. //iris_140719b
    ArrayList<PointPosition> pointPosition = new ArrayList();
    color pColor;
    int width = 500,
        height = 750;

    void setup(){
      background(255);
      size(width,height);
      startScatter();
    }

    void draw(){
      if (frameCount % 12 == 0) {
        pColor = color(
                  red(int(map(randomNormal(),0,1,0,153))),
                  green(int(map(randomNormal(),0,1,0,153))),
                  blue(int(map(randomNormal(),0,1,0,153)))
                 );
      }
      fill(pColor,10);
      stroke(pColor,10);
      rect(-2,-2,width+2,height+2);
      stroke(255,5);
      translate(width/2,height/2);
      int i = 0;
      for(PointPosition p:pointPosition){
        i++;
        p.tpos.x = p.tpos.x+cos(millis()/3)*width/i*12;
        p.tpos.y = p.tpos.y+sin(millis())*width/i*12;
        p.update();
        p.render();
      }
    }

    class PointPosition {
      PVector pos = new PVector();
      PVector tpos = new PVector();
      void update(){
        pos.lerp(tpos,0.01);
      }
      void render(){
        point(pos.x,pos.y);
        line(pos.x,pos.y,tpos.x,tpos.y);
      }
    }

    void startScatter(){
      for (int i=0; i<width*10; i++) {
        PointPosition p = new PointPosition();
          p.pos.x = 0;
          p.pos.y = 0;
          p.tpos.x = cos(i)*width/3;
          p.tpos.y = sin(i)*width/3;
        pointPosition.add(p);
      }
    }

    float randomNormal() {
      float x = 1.0, y = 1.0, s = 2.0;
      while (s >= 1.0) {
        x = random(-1.0f, 1.0f);
        y = random(-1.0f, 1.0f);
        s = x*x + y*y;
      }
      return x * sqrt(-2.0f * log(s)/s);
    }

     
  5. //iris_140719c

     
  6. //iris_140719a

     
  7. steps_140720c

     
  8. steps_140720b

     
  9. steps_140720a

     
  10. //sandstorm_140716c