How can I have particles not overlap on spawn?

I am trying to get my particles that are spawning on a surface to not overlap. The theoretical setup is for this to become a concert crowd, so the particles don’t really need to move around they just need to stay in their spot but not be overlapping another particle.
In red are particles that are overlapping and in green is kind of what I am going for more.

And here is the simple system I have set up

You can spawn them in a grid, which makes sure they don’t overlap:

If you set the mesh size from an array, you choose the likelihood of spawning:

350331-grid.gif

I think using the Position Based Dynamic will solve the problem.

For more information, see this video: Advanced Niagara Effects | Inside Unreal - YouTube
and the Niagara advanced level in the contents example are easy to understand.