
I know there are some holes but for the thickness I have got, it's not that bad

I would be interested to see other approaches to achieve a smoother seamless point filling without losing much detail.
animatrix_
It's not very special and would work for terrain like point cloud, but here is how I did it:
1. Get N nearest points for each point and compute the current point's normal by using each pair of nearest points sequentially with the current point, forming a triangle, average the result.
2. Create random points around each point inside a cone using a fixed angle. I used 60.
3. The generated points become very round like a sphere so I flattened them by 60% along the normal.
If there is a better way, please let me know