algorithmic modeling for Rhino
I am trying to distribute objects evenly over a hemisphere, essentially creating a hemispherical object from 145 unique objects.
At the moment, i have broken the hemisphere into 7 rings, where each is made into a grid. I am then using ptMorph3dList to distribute objects from a list of objects around each ring independently.
I am using a matrix of data where each column of data is 145 unique values (measured sky luminance). And i have about 200 columns, each represents a time series measurement of the sky dome (one day total).
Everything is working great when i reference a list of mesh objects to distribute using ptMorph3dList. But i actually want to do something a bit more simple.
I just want to distribute from a list of objects, (petals.PNG) each of which is multiple BREPs. I dont think ptMorphList can do this, and i am not interested in morphing the geometry in this case. I just want to assign a particular petal object (from 1-4) to a location on the ring (with proper orientation to the surface normal) based on an assessment of the measured luminance value from my column of data (low to high, e.g. 0 - 10,000).
Any suggestions for how to do this? Can ptMorphList accommodate these petal objects that i have created somehow? Is there a better approach using paneling tools? Or a way to do this using more basic commands?
A more basic way of asking this question would be something like this: "How can i evenly (by surface area) distribute 145 objects over a hemisphere, where, for each object it is a cube, cone, or cylinder depending on the value of a column of numerical data with 145 observations?
Then, i would like to substitute far more complex objects (or groups of objects) for the cube, cone, cylinder.
What i am trying to do is drive a dynamic surface with data from high dynamic range images of the sky, where the luminance data has been binned into 145 sky subdivisions (klems patches).
Files attached. Any suggestions would be appreciated. Having great fun with Paneling Tools!
I think the ptOrient companent in PT-GH or ptOrientToGrid command in PT-Rhino (with rigid=true) option should help, but this one takes one module and not a list of modules. ptMorph3DMap and ptMorph3DList can handle a list of modules and map (or morph) to cells. This will however involve deforming the modul.
A possibly easier approach is to place grid of points on the surface, then orient the desired module to each point. You will not need PT in this case.
I hope this is helpful.
Thank you for the prompt feedback. I can live with a bit of deformation i suppose, as i can control it.
Can ptMorph3DMap and ptMorph3DList handle modules that are not mesh? For example, could i somehow convert a collection of BREPs into a module?
I suppose i am asking for clarification on what kinds of modules ptMorph3DMap and ptMorph3DList will accept. (?)
In the "TOWER" example (great example), there were simply 8 mesh objects in a row. I am wondering how i should prepare a new list of modules.
When i tried using my petal-like groups of BREPs, ptMorph3DList mapped each petal from the first flower object independently to each grid cell. In other words, it assumed the flower was a list of shapes (which i suppose it is !) and broke it up.
Any guidance for how i can "cook" or "merge" or "group" a bunch of BREPs or geometry (in general) as one item, and then build a list of similar items to feed to ptMorph3DList?
Thanks again for your comments.