ArrayList hos;// = new ArrayList(); float SZ=500; void setup(){ size(500,500); reset(); } void reset(){ hos = new ArrayList(); } void draw(){ background(255); for(Ho ho : hos){ ho.draw(); } //noCursor(); } void keyPressed(){ if(key==' ') reset(); } void mousePressed(){ hos.add(new Ho(mouseX,mouseY)); } class Ho { float x,y; color c; Ho(float px, float py){ x = px; y = py; if(random(100) < 50){ c = color(255,0,0); } else { c = color(0,255,0); } as = random(-.5,0); } color c; float a; float as; float out = SZ*3; float MR = random(.5,3); void draw(){ stroke(c); a += as; float M = MR * SZ/100; strokeWeight(M); noFill(); pushMatrix(); translate(x-3.5*M,y); rotate(sin(a)*2/3); translate(3.5*M,0); out *= .75; //make the H line(-5*M ,-3*M- out,-5*M ,3*M-out); line(-9*M,-3*M+out,-9*M,3*M+out); line(-9*M-out,0,-5*M-out,0); ellipse(0,0,M*6,M*6); popMatrix(); } }