Unique Non-Flat Rotations for Adjacent Circles in a Group

I have several circles under the same circle group/node


I want that each of them to have a different angle of rotation than those adjacent to them, but never a flat rotation (here just adding a domain excluding 90/180 should be fine) or close enough rotation like 80, and 75 from the same axis or multiple

the taged should be like the circled couple, but for ALL

I have no idea about how to approach this problem, sorry I am still learning :sweat:

to build a circle you need the Plane on which the circle lies and a radius: donā€™t know how convenient is to create a circle on a plane and then rotate the circle itself, it sounds better to me to rotate the planes on which the circles get directly created

the thing of having the circles as output of a given component doesnā€™t really tell much about the data structure they are organized in :upside_down_face: please get used to internalising data and post a GH file with the geometries of interest, even if it might look silly for such a small definition :+1:

here I flattened the center point list (so the data structure is lost):


circles on random planes.gh (12.5 KB)

you could Unflatten the list of circles at the very end if the data structure of the center points is a thing you want to maintain through the definition

1 Like

thanks, but like this, it doesnt actually check if adjacent planes are oriented in the same orientation, or Iā€™m wrong?

May I know how does your ā€œlist itemā€ node have 3 outputs vs mine who has only one?

you can zoom-in more with the mouse wheel
when the component becomes big enough, some small +/- will appear on output top and bottom
clicking those +/- will allow you to increase the number of outputs

that does not work on all components, but there are a few that let you customize the number of inputs/outputs (Merge, Entwine, List Item just to name a few)

Here is a link to the Grasshopper Primer:


you are right, it just relies on the random triplets seeds to generate different-enough solutions

the concept of ā€œintroducing checksā€ could be simplified in generating a rotation value within a Range of possible values, all of which would make you equally happy
that would -maybe- simplify the process?
itā€™s like picking a random fruit from a basket of fruits knowing you donā€™t like half of those, or just putting in the basket a smaller selection of fruits all of which you like :slight_smile:

but you really need to explain more of what you are trying to achieve

As always, thanks

itā€™s actually an xy problem
So as the previous thread, if I extract the wireframe of an object, then ā€œpipe itā€ through sweep1, in some locations I get those flat or almost flat surfaces,

which I thought I may be able to get rid by having the circles, or rather the planes as you told me, in uneven rotations, which by the way, they also seem to persist even after a bool difference.

ps: I did quite enjoy the modelab guide, I wish to have learned its existance sooner, thanks

have you tried the Pipe component?
it creates a pipe (circular section) of chosen radius around a curve, and takes care of the section-circles to be always perpendicular to the curve

Works a lot better, but then I would like to remove anyway ā‰ˆ 90 degrees edges
I was playing with the following nodes

But untill now, I havent yet managed to make anything workā€¦
Also I am not totally sure about what values is the ā€œAngleā€ node bringing up in the output