Link[] chain; void setup() { size(400, 400, P2D); frameRate(100); //smooth(); chain = new Link[40]; Link prev_link = null; for(int i = 0; i < chain.length; i++) { chain[i] = new Link(prev_link, 0, i*Link.LINK_SEPARATION); prev_link = chain[i]; } chain[0].mass = 9999999; } void draw() { chain[0].x = chain[0].px = mouseX; chain[0].y = chain[0].py = mouseY; for(int i = 0; i < chain.length; i++) chain[i].update(1.0/40); for(int i = 0; i < chain.length; i++) chain[i].relax(); //background(255); noStroke(); fill(0, 5); rect(0, 0, width, height); for(int i = 2; i < chain.length; i++) chain[i].draw(); }