Alpha Shape 3D

Here is an implementation of 3D alpha shape, it is using 3D DelaunayCell (standard GH component ??).
https://doc.cgal.org/latest/Alpha_shapes_3/index.html
https://doc.cgal.org/latest/Alpha_shapes_2/index.html

I liked a lot the explanation of Alpha Shape of CGAL site “Imagine a huge mass of ice-cream making up the space R3R3 and containing the points as “hard” chocolate pieces. Using one of these sphere-formed ice-cream spoons, we carve out all parts of the ice-cream block we can reach without bumping into chocolate pieces, thereby even carving out holes in the inside
The little sphere gives the size of the “spoon”

The script has 2 flavors, one single CPU and one Multithreaded (2-4 times faster with 8 CPU)

16 Likes

Nice! 3D DelaunayCell is from mesh edit

There are some problems, my way of doing is not very good. I must see if output of 3D Delaunay Cell is ordered !
Meshes have duplicate faces. So at the moment I have no better solutions than removing them !! But there are other problems. It will take some times to solve.

1 Like

Meshes have duplicate faces. So at the moment I have no better solutions than removing them

Try that

http://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Geometry_Collections_MeshFaceList_ExtractDuplicateFaces.htm

Thanks Mickael,
but this command add holes in my mesh so I wrote mine command and add some others tests. It seems now that my script is more robust, except for little radius.

Alpha Shape 3D Legacy.gh (54.7 KB)

7 Likes

Carving Ice Cream I found the analogy very good.

10 Likes

You are not allowed to have so much fun here
Really nice study!

1 Like

Thanks,
It is fun yes and I wanted to go a bit deeper in Alpha Shape and trying to generate a Brep with “spoon” cutters. Depending on the shape there are some holes.
here a Wip Mesh cutter

mesh carving.gh (7.7 KB)

4 Likes

Beautiful work!
Thanks!

What a great shape that is - thanks Laurent. I’m going to make a 3D print of it.

To do that I had to whack off enough of the bottom so there was a flat surface big enough to adhere well to the print bed.

I’ll post a pic of the print when it’s finished.

1 Like

I especially like how the surface is comprised of both hexagons and pentagons at the same time. I’m going to make a larger one that can accommodate an LED light inside and post it for others to print.

Is it OK if I call it Laurent1?

Hello, no problem for the name and why not LaurentPointilleux (LaurentPicky), little French play on word and more accurate

Thanks Laurent - I appreciate all the contributions you’ve made here. This is just another example of one I’ve used to make something I could not have developed on my own.

Here’s an image of what I think I’m going to print next.

The little mouse hole at the bottom is for the wire to the LED light. I need to do a bit more verification that it will in fact print OK, but the final result should look very much like this one.

I like your proposed name, but it really is too long for publishing. People are used to fairly short names, and they often have to retype them when doing a search etc. I’ll post another message here when the print is done.

Thanks again for this - I’m going to check out your C code once I get the print started. Even though, as an old Fortran programmer, all those ; and { make me nervous.

1 Like

The print finished OK:

I did look at your code and found it to be less confusing than I expected. It looks like the first one creates a modified dodecahedron, and the second one uses it’s faces to create points in space that are the centers of spheres that cut out parts of the dodecahedron.

I tried replacing your dodecahedron with a Weaverbird one of about the same size, but I ended up with a much simpler result that was not nearly as nice. I also looked at the equations you used in the second module and must say they are strange indeed and not like anything I’ve seen before.

Thanks again for posting your script - it’s a very unique design for sure and I expect there will be a number of prints made by people worldwide.

3 Likes