Creating boundaries around densities of points


I previously posted this topic, which was resolved for a more simple surface. I am now trying to create the same output of a curve around the most dense areas of points from a point cloud generated from analysing topography for water flow.

I thought I could possibly do this by culling points based on their distance from other points and then using alpha shape, or using rectangle, then culling points whose rectangles don’t intersect with other, and then using region union. I thought another option was creating a quadmesh and then colouring the squares based on how many points are in them, and then culling based on colour mesh and using the boundary.

I have been trying these, but trying to apply this to larger set of points keeps crashing the set up. Could someone help with either a light way of doing this or how to apply the current method to a large set of points?

I have attached the gh. with internalised data and a link to the previous topic. Please help!


20230322 Building Organisation Mesh (1.9 MB)

You can make a Voronoi with points
Then measure the surface of each cell
The surface will be the metric you apply on each point of the point cloud (Voronoi cells in Garsshopper are in the same order as the input points, just look that there is no duplicate points)
You can then apply some Kernel Smoothing

Amazing thank you!

Here is a script.
The main things are:

  • Cull Duplicates point (tolerance =1)
  • Delaunay mesh (to have a mesh to cut)
  • Voronoi to calculate the surface, I add an offset in order to not divide too much the polygons on the border)
  • Some area treatment,
  • Then mesh iso splitting (component now on Nautilus plugin)

    No filtering

    100 m filtering

Filtering is very long (30 s), I made hundred of simulations of debris falling on earth and I didn’t remember it was so long. I’ll have to look in the files I really used.

Some change in coloring logic and also calculation logic (parallel calculation). It could be optimized more, with RTree for example or some grid. If kernel is 100 m, looking at 400 m is enough.

filter data (2.1 MB)

1 Like