Not very well at all. O(particles*gravity wells). I’m rendering 4000 particles here with 30 gravity wells.
I had to do a similar thing for this for one of my final year uni projects, only rendering the scene in 2D through vga manually (lol) and exporting all of the mathematics to an FPGA to speed things up. I was able render 12,000 particles with 50 attractors and 10 walls at 30fps.
Just took a few extra lines of code to port my solution to 3D and make the camera follow one of the particles