How to replicate this procedure in Grasshopper?


I’ve recently stumbled on this twitter post from Frederik Vanhoutte (author of the HeMesh library for Processing) where he shows how he created what appears to be a shell that has been carved and smoothed through subdivision.

Here’s how I see this:

1. create a sphere
2. randomly pick some vertices (~20)
3. construct a convex hull
4. select the center point of each face of that hull
5. construct some other shape from those points (not a 3D hull, neither an alpha shape)
6. Offset the crest lines along the faces of this shape
7. Use those offsets to carve the shape
8. Smooth the whole thing

I first thought it would be quite straightforward to replicate in Grashopper but I found myself stuck on step 5 where a shape (right figure below), that I’m unable to identify, is created from the points selected at the previous step (face centers on the figure on the left)

That shape looks like a 3D concave hull (not convex since it appears to be slightly hollowed) but still seems to differ from a traditional Alpha Shape.


  • How do you think that shape is made ?
  • How would you select the crest lines / edges ?
  • What could be a different approach to create similar outputs ?

– failed attempt –
Smooth (19.4 KB)

Here’s a simple way with subd, without any plugins or scripting (17.6 KB)


Thank you ! I’m always learning a lot from studying your definitions, very insightful.

Now I’m wondering how I could get a shell with faces of various sizes, like in the example picture. The facet dome component that you’re using gives very homogeneous faces. Maybe a simple convex hull with uneven faces could bring some contrast. I’ll give it a try.

Anyway, thanks again, your approach was very helpful.

It’s not the facet dome component itself that is causing similar sized faces, but the distribution of points going into it. If you have some points closer together on the sphere you’ll get smaller faces there. Same for the convex hull (which facet dome gives the dual of).