Fantastic stuff!
May I ask, how are you doing diffuse on the GPU? Are you using LOVE 12 compute shaders or some other method?
Thank you!
I had no idea that LOVE 12 will support compute shaders, that's nice to read :)
I diffused the image and decayed the color using a pixel shader (Available since LOVE 0.9) , and processed the agents logic on the CPU, that's why you can't really go too high with agent numbers.
I apologize for the intrusion but I unwiggled your balls unfused your binary to have a look, seems like you're using the canvas:newImageData() method, which halves the framerate, making it unusable for my purposes.
No worries! I've already rewritten my diffuse as a C library that LOVE calls, currently I can do 640x360@3ms which is fast enough for my purposes