The particles interact with a field (small red dot) that repels them. In each frame we calculate the force applied in each particle, and update velocity and position.
The is a proof of concept and needs a lot of refactoring. I'm working on a v2 of the ParticleSystem that is more flexible, you can see it in the fire scene here . This example is based in the work done by Jarrod Overson that you can find here