class RectParticle extends Particle { public RectParticle() {} void draw() { push(); translate(pos[0], pos[1], pos[2]); if (this == mPart) { fill(#00FF00); } else if (fixed()) { fill(#FF0000); } else { fill(200); } box(10, 10, 10); pop(); } } PSystem ps; Particle a; Particle b; Particle c; Particle mPart; void setup() { size(400,400); ps = (PSystem)loadPlugin("PSystem"); a = new RectParticle(); a.setPos(width/2 + 50, height/2 - 50, 0); a.fix(); ps.addParticle(a); b = new RectParticle(); b.setPos(width/2 + 30, height/2 - 30, 0); ps.addParticle(b); c = new RectParticle(); c.setPos(width/2 + 20, height/2 - 20, 80); ps.addParticle(c); mPart = new RectParticle(); mPart.setPos(width/2, height/2, 20); mPart.fix(); ps.addParticle(mPart); ps.addMagnet(mPart, 2); ps.addSpring(a, b); ps.addSpring(b, c); } void mouseDragged() { a.setPos(mouseX, mouseY, 0); } void mousePressed() { a.setPos(mouseX, mouseY, 0); } void loop() { background(#99CCCC); ps.draw(); }