>>11693794Divide space into voxels of fixed size, count points per voxel and find density gradient for the global space and then finer and finer space.
Alternatively simulate the points having a attractive (gravitational like) force and see where they coalesce. In the end all coalesce into a point, so to resolve into smaller clusters you stop the process after a stop condition where one cluster has coalesced (and coalescense rate slows down). Remove all coalesced points and restart process, harvesting one cluster at a time. Granularity depends on stop condition, how much slowing down you will accept before calling it a harvested cluster.
Both processes take a bit of processing power.