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

Hi Anjy:  Try this surface and see what you can do with it.

Attachments:

Hi Al,

Script a little heavy and slow. As I do it for automatic Pave it has the nuances. It should work for all surfaces, but with a dome is worse, as the dome has the big difference in sizes at the basis and at top. In case of a dome it will be necessary to reduce radius of spheres... or see the topic about geodesic dome Geodesic Dome...   Best Regards

Attachments:

Thanks my friend.  I'll fool around with it a bit.  Looks rather interesting.  I think I might try to find a way to play with the hex grid as it approaches the crown of a dome.  Reducing the count while maintaining the size.  (I admit to having no particular solution in mind).

Al

Hi Igor and Anjy:  Try playing around with this surface.  I've been messing with it a bit and have had some peculiar results.  I'm interested in seeing what you fellows can do with it.

Attachments:

What is missing is how to change the radius of the sphere in order to make tangent to the one next to it.

Maybe somebody else has an idea ?

In this case it is link to the curvature of the dome which can be turn into a function.

Attachments:

This is an interesting problem and I've been thinking about it a great deal.

When I first started experimenting with this, if you look at my earlier GH, I used divide by length upon the ISOcurves rather than number, where length was the fixed diameter of my prototype sphere.

That way, I thought, as the length of the ISOcurves changes along the height of my dome/shape the number of spheres along the line would change to fit.  This works pretty well.  The problem was shifting the alternate ISOcurve seams to get a psuedo staggered effect.  I don't mind some overlap if the result is aesthetically pleasing (wink).

This only worked along the ISOcurves until the length started to change appreciably.  Then the stagger factor varied. This was okay for my purposes since I was working with a fixed size sphere and could expect this.

I suppose that one could very slightly change the diameter of the spheres to make them fit more closely.  If this variance stayed very low (maybe in the 1 or 2% range) then this would give the effect of a consistent tessellation.

Igor's Idea of using a hexagonal grid and placing spheres at the centroids is an excellent one as well.

The problem is that once you begin to vary the curvature of the target surface, as in my dome, the hex cells compress because he's using a rectangular array and projecting it onto a domed surface.  If there was some way to reduce the cell count as the ISO curve length decreased then this might work better as well.

Another solution might be, as hinted at by Igor, using a geodesic dome with regular cells approximating the dome structure.  Since my proto sphere diameter is typically 1 unit and the dimensions are typically around 40 x 18 x 20 units this result in a density of 14400 per dome.  The faceted nature of the Geodesic would be smoothed out by the  sheer number of cells.  Another way to look at this would be to populate the vertices of a polyhedron which approximates the dome.

Unfortunately I have no idea how to do this. But I'm really eager to see what you folks come up with.  Meanwhile I'm playing with both sets of definitions to understand them.

Hi Igor,

the point is to create a definition where sphere are perfectly tangent.

Do you think it can be achieved or maybe it is already the case ,if yes why these corrections ?

Hi friends.

In the definition I have found out serious errors over which now I work. The basic idea was to arrange objects structured on hexagonal grid according to curvature and non-uniformity of a surface. As it is known with hexagons it is possible ideally tilling a plane but not a curve surface. For example the size of a dome along the basis is more than at the top. Therefore there was an idea to measure (for example) a dome along some isolines, to compare to the same measurements along an ideal surface on which the initial grid is located, and according to these measurements to arrange the grid centres on a dome in regular intervals(to stretch or compress along these directions). The received factors of change of length can be used for change of diameters of spheres.

Ufff.... I hope you understend my english...

For an example of Geodesic Dome a script written by Gabriel Krause, difficult enough, but giving excellent splitting.

Attachments:

by stefano

by stefano

• View All