Rendering Simulation Data (Particles)

Short version first, what is the best way to render millions of particles from a cache, visualizing individual particle attributes? Is there a particle object in the API I can instance (I can’t seem to find one)?

I am working on a scientific research visualization. The visualization is in the form of particle caches. This has nothing to do with Unreal’s particle system, to be clear. They are just snapshots of particles (millions of them) produced by an outside piece of software. Each particle has varying attributes such as mass, density, metallicity, velocity, etc, that must be visualized on a per particle basis.

I am currently reading the file in an AActor (I will probably change this). This file AActor spawns actors for each particle group it finds in the file. The particle group actors (usually 4-6 per file) read the particle data for their group (millions of particles per group) and then instance my particle object (UInstancedStaticMeshComponent). The particle object is just a plane with a material instance.

The problem I am currently having is that I cannot make these instances face forward. Every method to do this I have seen uses the actor position and what I need to base this on is the particle position on a per particle basis. I can make the particles face forward, but because the methods rely on actor position, the entire cache and all it’s particles will become sheared in the viewport at certain angles. In trying to solve this problem I have discovered that materials on UInstancedStaticMeshComponents may not be dynamic, Is this correct?

I am in a very similar boat, but my data set is smaller. Very interested in datavis myself.