What would be the best way to patch this?

This could help

But now I will advise you to use Dendro plugin if you are OK with meshes

I downloaded and installed the Dendro plugin but have yet to give it a try. I’ll see if there’s a component in there that might do.what I’m imagining.

BTW: In case that you try a nurbs compromised solution and if you use Polyline Centroid … then IF the “connecting” curves are bezier spans and the end tangent is horizontal [some recursion could attempt to do the “ideal” other tangent] … then the surf combo could (?) look “smoother” (?).

But if I was you I would forget the Vor topology and use 4/3 pts (normalized or random) surfaces and then “inflate” them in a couple of milliseconds. That’s a very clean and very fast solution mind (shown a random inflation depth and random elimination result by projecting flat stuff in some revolved target surface) :

@TheCyclist here a solution using Dendro plugin

I used Dendro Point To Volume with a center and radius coming from Sphere Fit

And here with a smoothing

2018.08.23_mcneel_forum_LD.gh (22.7 KB)

Other view smoothed on top


Simple way of generating it as NURBS, using only native components, and avoiding a solid boolean of everything with everything else:

scallop.gh (10.3 KB)


What a nice, simple solution, thank you! I think I just need to think about these situations more. When I see your approach, it makes the most sense.

Thank you! Unfortunately, I’m having trouble getting Dendro to recognize the dendroAPI.dll file. I want to experiment with this plugin though. I would like to try and mimic OMA’s sponge wall from the Prada Beverly Hills store.

The rendered images you posted of this too look amazing.

Did you follow the instructions and turn off COFF?

When I type the command ‘Grasshopperdevelopersettings’ a window pops up with a blank libraries folder box and a check box labeled ‘memory load *.gha assemblies using COFF byte arrays’. I assume this is the COFF check box?

EDIT: It’s working now!

Nice Daniel but I think it must work just with constant radius sphere. Here radius is increasing inside.

Good point. I haven’t tried it yet with varying cell size

It’s true this approach relies on using spheres of the same size (otherwise you’d need to calculate a weighted Voronoi diagram). The size of the Voronoi cells doesn’t need to be linked to sphere radius though - that’s just a result of how his points are distributed.
Talking of distribution, a suggestion for one way of getting a nicer distribution here would be to apply a few iterations of Lloyd’s algorithm (repeatedly moving the Voronoi points to their cell centroids). Making the cells more centroidal means their boundaries will be at more equal heights:

scallopsizes.gh (19.3 KB)


very nice spherical solution. it would be way better (computing wise) to first filter out the curves by a simple ie. curve end point distance from a plane sort filter. this way you will have half the intersections to calculate and no area calculations needed later. In complex definitions avoiding areas and intersections that are not needed in the beginning, can make a real difference, especially as the geometry data adds up.

in this definition (scalop.gh) you may earn half the power, roughly from 3.1 down to 2.3 sec, which is not bad at all. in the case of scallopsizes.gh, it drops from 30 to 7 seconds, giving a real advantage.

Thanks for the input! Can you upload your files so I can take a look?

i recreated it with end points because had not saved them at all. first version was with evaluate curve to find the middle of each curve, which may be a tad slower, or not. the logic is just to find a point to compare against it’s projected one anyway.

the reason scallopsizes_distance.gh gains 23 seconds is because the last, intersection / splitting part is the most resource intensive, so numbers of intersections goes up, times goes down.

in general, try to avoid calculations, especially geometry ones. the basic problem of grasshopper is that in every almost step it creates geometries, so it is very resource intensive, as opposed to non graphical programming. that what is being said at least, i am no expert.

furthermore, it does not use the outputs very interactively, which is another talk, for GH2.

edit: correct definitions. check what time gains we have, things can slip.

scallop_distance_1.gh (12.0 KB)
scallopsizes_distance_1.gh (16.4 KB)

This is fantastic. Is there any capability to get this into a Nurbs from dendro? Just quadremesh?

@flatform @DanielPiker
I have checked you files, was amazing.
How do we add that script in revolve surface, I have attached rhino base file.

Thank you!
test revolve.3dm (4.3 MB)

Try to Unroll the Surface, then feed it to the same script, and roll it back? Otherwise you would have to work with normals and projections based on that.

Hello - thanks for uploading this very helpful. I am trying to scale the pattern to larger size, say 24" x 24" but when I redraw the rectangle and then change around the radius and number of points, the desired surface is not showing up. I am new to grasshopper so any help with this would be great! Thanks

I tried to replicate this approach but somehow on the BREP | BREP Join, it falls apart and I cant figure out why, the ultimate goal would be to combine the voronoi structure with another surface
textured_surface.gh (474.5 KB)