Solid with sponge-like surface?

I want to create an object with a sponge/bubble-like porous structure on the outside. It should be a solid.

What could be an elegant solution?

I’m a newbie to Grasshopper. What I tried so far:

  1. Created a sphere and linked it into Grasshopper: Brep

  2. Created random points in the bounding box of the sphere: Pop3D

  3. From the random points, created a 3D Voronoi diagram: Voronoi³

    What happens here is that around each point, a cell is constructed. The surfaces of neighboring cells coincide.

  4. Intersected the sphere with the Voronoi diagram: SInt

The result still is a sphere. Only it is assembled of irregular cells, and there is no structure on the outside. Steps that would make it work:

  1. After creating the Voronoi diagram, give a wall thickness to the cells.

  2. Intersect the walled Voronoi diagram with the sphere.

I don’t know how to do that with Grasshopper, and I don’t know if it would be a smart solution. Because: There would be unnecessary complexity on the inside, the walled cells that are invisible.


Hi Felix,

Are you looking for something similar to the shape of the Moon?
If that is so, try this: (10.3 KB)

1 Like

@djordje this is really interesting! However, the surface of a sponge looks quite different.

Hover over the image in the following link and - at least to me - it looks more like a Voronoi diagram:

Ok, I got it.
Switch between the “constant radius wholes” and “tapered holes”.
Increase the “holes number” for better effect. (19.1 KB)

1 Like

@djordje thanks - it’s great to see a different approach! However, it is not yet quite what I’m looking for.

What I tried in the meantime: Applying Facet Dome on a set of points on the surface. This looks like a 2D Voronoi mapped to the surface. I then played with Extrude Point, but got no good result.

Update: I tried the Voronoi³ approach again. Now, I have the individual cells scaled around their center, then subtracted from the sphere, also scaled down slightly. This does the trick: see attachments (9.2 KB)

Grasshopper screenshot



These articles on the main GH forum likely cover what you need:

In short, the WeaverBird plugin and Mesh Tools plugin for GH will help you greatly.


1 Like

@David thanks a lot for the links!

Only the methods shown seem to create more complex surfaces than the ones I get with my method. So I’m worried about computation time, even on a fast machine.

Yes, these kinds of operations can get heavy Felix. Although you would be working with meshes using these tools, and meshes are lighter to work with than polysurfaces. There are things you can do to keep the number of mesh faces and sub-divisions manageable.

Your booleaned polysurface looks good so far, but I think you will find it difficult/impossible to fillet all of those edges if your aim is an ‘organic’ finish.

1 Like

@DavidWood My plan is to 3D print the structure. Compared to the size of the pores, the resolution of the printer isn’t very high. So, there is no need for filleting.

I now played with @DanielPiker’s skeletal mesh alogirthm, that @David pointed me at. The most important changes that I made:

  • Removed Weaverbird’s subdivision surface smoothing, to keep polygon count low.

  • Intersected the skeletal mesh with a solid object, to give it the desired shape and to make it closed.

The result is a sponge like structure with open cells. (16.8 KB)

End result (for now):
Rendering of sponge for cleaning

It’s thing 392166 on Thingiverse, and I ordered a print from Shapeways in their experimental material Elasto Plastic.

Just thinking: If I can print them, then I don’t need to buy those sponges in the drugstore anymore! :wink:

1 Like

Just think of all the things you could do with the money you save!

1 Like

LOve it, and if you have a random number in there as well, then you can sell these as unique body-scrubs for the nerdy-rich. I want one in titanium.

I´d suggest to use some dissolvable filament as support material, made of soap :wink:


Unboxing video:

Details printed nicely, but the material has much less flex than I expected. The result is quite rigid. I wonder how it prints in NinjaFlex.

Photo of top

Photo of bottom


Hello guys! I’m new here and was wondering if any of you could share one of files from this thread? They are all unavailable by now. I’m desrately looking to create a foam-like surface in grasshopper for Rhino.

Many thanks :slight_smile: (19.1 KB) (16.8 KB)

Oops! That page doesn’t exist or is private. this issue occurs again @wim

Thanks for reporting.
Discourse tells us that there are approximately 6000 very old posts that are impacted by a different bug and that attachments in these can’t be restored by them. This only applies to “very old posts”. Sorry for the inconvenience.