ParticlesGPU Sync across multiple pc

Hi, I’m trying to figure how sync multiple ParticlesGpu components in a distributed network

Let me try to explain, I’ve a couple Pcs running @ 60fps in an installation to compose a big screen as Mattew Ragan explains in his tutorials.
Everything is synced with a master clock sended in UDP @ 120fps, so it can sync video files or image transformation within a range of 1-2 frames (@ 60 fps) which not noticeable by normal human beings but seen when captured with a camera.

Now i need to sync particle systems to obtain the same result.

Is there a way to also sync particlegpu.tox?
I’ve tried to use UDP framesync in particlesGPU/transform1par tx and ty, using the function tdu.rand (which is pseudo random) and make sure all other noise seeds are the same across the various instances, but unsuccessfully.

Even with the same geo, sort seed, and turbolence parameters i can’t get the same result.

Is there something i’m missing?

Anyone faced this kind of problems before?

Thanks!

If you peek inside particlesGPU, you’ll notice most of it is driven by textures so you would need to sync those up across the multiple computers. It could be challenging to get good sync across a network with the number of textures you’ll need to send.

You can’t really sync particle systems or similar simulations across different systems (or even processes), since they aren’t deterministic, they use their previous frames data to create next frames data. So if any machine computes slightly different for a frame or drops a frame, the systems won’t be 1 frame off, they’ll stray completely off from each other.

What you can do alternatively, is either frame sync your inputs as Ben was saying, but you could still run into the above issue if anything deviates (if I remember the component well), or depending on the application, generate the particle system offline on a single process before you need it and output all the point positions into a texture that you can read back on the machines then keep the movie files in sync.

What’s the goal you have? Maybe we can recommend an alternate method to reach it.