Particle3D[] tracers; Attractor attractor; Repulsor[] repulsors; Vec3D light; float MAX_STEER=.01f; float MAX_VEL=1.0f; int NUM_REPULSORS = 160; int NUM_TRACERS = 100; void setup(){ size(800,800); background(150); noStroke(); randomTracers(); Vec3D target = new Vec3D(0,0,0); attractor = new Attractor(target,100f,1f); randomRepulsors(); light = randomLight(); smooth(); } void draw(){ translate(400,400); for (int t=0;t MAX_STEER) steer = steer.mul(MAX_STEER / steer.size); tracers[t].update(steer); fill(255,120); ellipse(tracers[t].pos.x+light.x,tracers[t].pos.y+light.y,3,3); fill(0,120); ellipse(tracers[t].pos.x,tracers[t].pos.y,3,3); if(tracers[t].pos.size