You’re right, we should not create the array if not needed. Here’s the PR:
In fact, it’s not possible to remove the color array because the color can be set in a custom recycleParticle callback, and the code can’t know in advance that you’ll be using such functions/changing the particle color in that function (which is probably why the code was as it was).
I think the best solution for now is to call spsMesh.removeVerticesData("color") to remove the color attribute. If you want to save even more memory, you can do sps._colors32 = new Float32Array().