Many objects, particles, shaders

I havent tried this before, and sadly dont have the time to try and create it.

I can give some pointers though:
in the material: “ParticlePosition” node outputs V3 (RGB) data representing each seperate particle’s position in world space.
This means that each particle has its own unique XYZ value.

If you can convert the XYZ output of particleposition back to RGB values within range, you’d have full control over the particle color.

Now in the initial location module in cascade you have “start location” if you set the min/max to 50/50/50 and -50/-50/-50 (XYZ)
Max location on each axis is 100, and thats a good math base to convert it to a 0-100% color range.

Also in the same initial location module you can enable “distribute over NPoints” and make this the same amount as the amount of particles you are emitting.
If cascade works fine each particle will have its own unique location each time.
Make sure to set distribution treshhold to 1, as any lower value will increases the percentage of a particle being emitted at a random location.

If you’d spawn 1000000 particles, and set the Npoints to 1000000 as well, each particle would have its own location be evenly spread over 100/100/100 (XYZ) locations and therefore able to get its own color, or at least a unique value to create colors with.

Keep in mind that cpu particles might not reach that amount, and gpu particles might not work with particleposition (havent tried yet)
i’d suggest to start with about 100 to 10000 particles.

Good luck and let me know if things work out.