I have several particles in random motion, I want to maintain a regular velocity between them…

I have calculated the average velocity by using the framevelocity node, summing the output and dividing by the number of objects.

how would I implement

pvj = (pvj/n-1)-average_velocity;

return pvj/8;

where pvj is a vector representing each object’s percieved velocity and n is the number of objects??

Do I need some sort of feedback loop? When I tried this, I just got an infinite loop…

Any help would be much appreciated!

Full pseudocode here

Rule 3: Boids try to match velocity with near boids.

This is similar to Rule 1, however instead of averaging the positions of the other boids we average the velocities. We calculate a ‘perceived velocity’, pvJ, then add a small portion (about an eighth) to the boid’s current velocity.

```
PROCEDURE rule3(boid bJ)
Vector pvJ
FOR EACH BOID b
IF b != bJ THEN
pvJ = pvJ + b.velocity
END IF
END
pvJ = pvJ / N-1
RETURN (pvJ - bJ.velocity) / 8
END PROCEDURE
```