You can quickly proto-type this with text layers that have a right pointing arrow: “→”
and a particle text-layer “O”
Each arrow-layer would need an expression for rotation, for 2D that would be:
particleLayer = thisComp.layer("O");
p= position - particleLayer.position;
radiansToDegrees(Math.atan2(p[1],p[0]));
And also an expression for scale, based on the distance towards the central particle. I suppose it would be the inverse square so:
particleLayer = thisComp.layer("O");
strength = 10;
d= length(position - particleLayer.position);
value * strength*(1/Math.sqrt(d));
(this would give an divide by zero error if an arrow is at the exact same location as the particle, but I guess that’s physically accurate 🙂 )