I started out with a CPU version (with only 250 000 particles for faster viewing) https://www.babylonjs-playground.com/#U2C1Q6#1
Then I thought I would see what would happen if I tried to do it with a shader. Since a point cloud does not use normals I thought I could use the values in the normals as the end target positions. However I am even more hopeless with shaders than I thought I was and everything goes blank!
(comment out lines lines 76 and 85 and you get the start point cloud).
Any shader experts happy to see what they can do?