Grasshopper

generative modeling for Rhino

# A staggered array of spheres on a surface

In the example below (a napkin holder), I've been doing the array of spheres by hand; basically creating section curves, then using ArrayCurve to place the spheres and adjusting where needed.

I can do something like this in GH by taking a set of curves, dividing them by a value slightly larger than the spheres and then placing a sphere at each point. This method can't stagger them the way I want to so is not useful for this type of surface population.

In this case it's an oval cylinder but in other cases it could be a half dome or flat surface.

Does anyone have a solution to this problem which produces the effect I get in my JPG?

Al

ball%20array%20example.JPG

Views: 1258

### Replies to This Discussion

Al,

You may want to look at diagrids as the skeleton for populating your spheres... There are several posts dealing with the various methods of creating diagrids on 3D surfaces and you could also look at the paneling tools plugin.

Following is one example post:

http://www.grasshopper3d.com/forum/topics/every-second-point-on-reg...

Thanks Sameer:  I've checked some of those out and they are useful in some cases.  I've also done a version using the Diamond Grid function in Lunchbox.  My particular conundrum is to how to do this with a minimum number of overlaps and while conserving the size of my spheres.  The two problems are: 1) that the number of horizontal spheres must decrease as the diameter of the surface decreases.  This would disturb the staggered tesselation but would be liveable if it populated reasonably well.

and 2) That the vertical lines are similarly effected.

I've taken a couple of hacks at it and crashed and burned.

It's kind of like automating a Pave algorithm for a jewelry surface I suppose.  Maybe hoopsnake could do it?  Or maybe a more generalized version of a "populate" function hinted at by Dave in an earlier post.

What about using Kangaroo. Because it reads as an equalisation problem between the distances of neighbouring spheres.

On the Kangaroo page there's a selection of examples and theories on can try, and read up on.

http://dl.dropbox.com/u/26034251/SimpleKangarooExamples.zip

http://spacesymmetrystructure.wordpress.com/2011/09/

I'll take a look at them.  Thanks

As it is a question of dense packing of spheres like as a Pave that in a basis the grid instead of a diamond grid should lie hexagonal grid. It is necessary to transfer on a surface hexagonal grid and in the centres of cells to place spheres. Depending on curvature and non-uniformity of a surface small errors in density of an arrangement of spheres are inevitable. I now work over such script but it while not finished. Example:

Hi Igor.  Have you tried to use it on domes and cylinders yet? let me know when you have it working.  I'd like to try to use it.

Al

Hello again Igor:  Perhaps one could dispatch the odd and even lines. Then offset the spheres on the even lines a half diameter from the odd lines.  How would I do the offsetting or move the starting point for the array?

Al

I guess one could use the "Seam" function on the odd or even rows and then populate.  That would allow an adjustable "stagger".

Or do you think that applying a HEX grid, finding the centroid and then polulating with solids is a better approach in the long run?

Al

Here's shot at the function dividing the lines by number of points.  Eventually I'll try to divide by the diameter of the spheres.

Attachments:

I did this one , it´s not perfect but maybe it can help

Anjy

Attachments:

you may want to try this to dreate the grid you need on the surface of your choice.

I'll give it a shot...thanks.  First I'll have to understand it.

All the best

Al

by stefano

by stefano

• View All