Grasshopper Random Water Droplet Pattern

Hi All,

Grasshopper newbie here!

I’d like to create a “condensation” effect on a bottle shape in Rhino which I need to be part of the model for 3D printing purposes. I’ve used displacement mapping in the past with similar projects, however I’ve tried something similar for this project but I lose a lot of detail in the mesh, plus the output is a file size which is just makes further modifications very slow and not practical.

I’d like to randomly distribute spheres all over the bottle surface in varying sizes and shapes to create an effect like condensation on a glass bottle surface.


This is the sort of effect I’d like to re-create. We don’t need all of the shapes to be different, they can just vary in size which I’m hoping can be achieved in Grasshopper.

Hope someone can help!


I have no idea how big/small/complex/whatever your geometry is, but the Populate Geometry component will create evenly-ish distributed points on your geometry

at that point you could orient drops/spheres on those points, and maybe apply some sort of random scaling in such a way they are not all identical

Hi @inno,

Sorry I meant to attach the model in question to the original message -
Model.3dm (1.2 MB)

Thanks for the info about populate, when I run the populate feature, the adds the points in however they are spread out in the 3D space, is there a way to “flatten” these on to the surface and then assign droplets to the points?

Maybe something from this thread can help

You could generate the pattern in 2d first, then wrap it onto your cylinder

that looks like Populate 3D, here is Populate Geometry

Populate (116.9 KB)

Laurent’s component in Daniel’s link is also very nice, and allows for a lot of customization!

I can propose another way, that could work on quite all 3d shapes. Funny thing @DanielPiker pointed a tool and I wanted to test another of my tool and (re)discovered its works in 3D !!!
As there are many many variation, here is one way but many parts could be changed …
I began by meshing you bottle using Triremesh.
Then I wanted to apply some colors in order to have different size of droplets. So I use Mesh Noise from Nautilus with some Scale NU in order to have elongated shapes.

Then I generate many points on the mesh, too mush indeed. I use my tool from Nautilus, no need to have a nice distribution. Then for each point I measure the color that is transformed to points in a box [-1,-1,-1][1,1,1]. So the distance from point of color to [-1,-1,-1] gives a sort of brightness. Graph mapper is there to no have 0 radius sphere. Indeed I use circles (lighter than sphere)

Then I use my magic tool, remove overlapping circle that also work in 3d (I didn’t remember that !!!). I measure the arc in order to have a point and radius.

Some transformation and you have some ellipsoid.

Spheres without radius change, 50000 initial points

100000 initial points

test (2.0 MB)


Hi @inno & @laurent_delrieu,

Thanks so much for your help, you have helped me to achieve exactly what we were looking for. I’m just starting out with Grasshopper so all this info is very helpful for me to understand the software as well :slight_smile:.