3D concave mesh from Point Clouds

Hi.

I’m trying to find the best way to make a concave 3D mesh out of high-density point cloud.
So far I have tried:

  • Delaunay (works for 2D-ish convex points)
  • Volvox (nice for managing point clouds, but doesn’t handle the mesh creation)
  • MeshEdit (all components are for convex forms)

Any advices?

https://discourse.mcneel.com/search?q=concave%20mesh%20category%3A2

I have looked through those threads. There’s no answer :confused: . Thanks anyhow!

You can attempt to use a BallPivot algo (but if the pts distribution is “not even” (or not “skin deep”) don’t expect very good results - if any at all). Of course contemporary BP is not the thing as invented by IBM Labs years ago … but I doupt that you can find source code that works (and is fast).

That said I have C# stuff that does 3d convex tri meshes (given any collection of points be these “evenly” spread or not: the recursive technique for that shares some points with the classic 2d convex hull algos). It would require major changes and/or several lines of code more in order to make - fast - a 3d concave mesh .

Screen%20Shot%20032 Screen%20Shot%20033 Screen%20Shot%20034

BTW: Are you familiar with algos that do 2d concave hulls?

Are your points on a volume or a surface ?
For volume and not too much points

Hi @Mesrop, can you post the point cloud ?

_
c.

Thank you amazing people for your responses.

@clement Here’s a portion of the cloud. I chose the concave part.Column base.3dm (1.1 MB)

@PeterFotiadis no, haven’t tried any 2d concave hulls. Any widely accepted method?

@laurent_delrieu it’s a laser scan cloud. So they are on a surface of a volumetric form let’s say. Can you upload an alpha-shape definition so I can try with this?

I would point you to go to MeshLab with this unless you need this to be done inside GH.

1 Like

Thanks @D-W. Unfortunately, it has to be specifically grasshopper. We’re developing a pipeline inside it.

I tried Rhino’s mesh from points. This is the best result so far. However there are two numerical entries which I’m not sure how to automate the knowing what values to insert (in case I manage to call it inside gh through a script). And also the results are not fully satisfactory. I get some holes as you can see in the image.
image

@DaveReeves’s ball pivot component might work for you:

2 Likes

Thanks Anders. I’ve seen the post earlier. But the link to download doesn’t work.

1 Like

@Mesrop alpha shape won’t work in this case it would have to have some sort of depth and fairly uniform sample distribution otherwise the output will be unusable I wonder if marching cubes wouldn’t do the job here.

You’ll have to join as a group(milkbox) member first.

2 Likes

Done. I have been trying to use the one from Milkbox. I plugged in 3k points and it crashed :confused:

Take a look here: https://github.com/gyetis/marching-cubes-gh

1 Like

If your collection is “uniform” (and skin deep) a proper Ball Pivot is worth trying: but the quality of the algo is everything: see 10K points (in the usual very slow I5 for testing performance) in auto R mode [yields a closed Mesh] and in user value R mode [yields a List of Meshes and - obviously - some missed stuff]:

In fact finding the R (auto mode) via the classic double Loop …

… consumes almost 20% of the Elapsed total time (Elapsed for a similar collection in an I9/Ryzen is about 10 ms).

See these 2:

ConcaveHull_201205_10.pdf (818.2 KB) ConcaveHull_ACM_MYS.pdf (1.4 MB)

Hi Again @PeterFotiadis, sorry to bother again on this matter. Could you share some working definition or component for this? Something that will not expect C# from me, please :smiley:

Well … it’s most unlikely that you could do anything on that matter without C# (and a well scheduled // approach). Is also unlikely that a similar def would be available to public eyes (i.e. not classified).