Tracking and updating 10k+ particles

I’m trying to create a VR experience that would involve reading in position data for 10k+ small particles over the course of 100 time points (say, over 10 seconds), so 1M values. The goal is to visualize the exact paths of these particles over time, so I’m thinking some like a particle system might not work. I’d also want to be able to view these particles in 3D space.

The straightforward way is to just spawn 10k GameObjects, then have each GameObject store and update its upcoming positions. Is this volume within the capabilities of Unity / is there a better way of doing this? Let’s say for now I just want to visualize the particles with no interactions.

10k particles is not really a problem, so it should work, read your data to one big array, then assign particle positions from that per frame. (can assign 3D mesh to particles also if needed, so that its not just flat billboard)

Alternative, Unity - Scripting API: Graphics.DrawMeshInstanced

Having 10k gameobjects manually would be probably the slowest option.

Also consider Unity - Scripting API: Graphics.DrawMeshInstancedIndirect (fastest option, if you can keep all data on gpu)

Simplest way though is a particle system with the trails module enabled and some script to move the particles. If it’s fast enough :slight_smile: