Rearranging Objects


I am trying to rearrange these objects onto different locations, allowing them to randomly rotate in 90 degree angles around themselves. My goal is also to let the number of points fade out from the center. Any help is much appreciated! (22.5 KB)

this should do the trick (no more Wasp? :smiley: )
I just added the orient component, didn’t touch how points/objects are generated (27.3 KB)

Hey Inno,

Thank you for the tip, that was really helpful! I put wasp on the shelf for now, I really wanted to learn a bit more on how to do it by hand and allow for collision :slight_smile: If I wanted to throw a 360 degree rotation in there (still in 90 degrees), would I simply have to exchange the rotate plane component?

Edit: I also would like to ask: If I want to have more control over fading out the number of points towards the edges (ergo: having more points towards the center), how could I do that? Thanks!

at the moment the orientation is capped by the lowest number of inputs:

Shortest list component in yellow means that all the A B C input list will be equally trimmed to the length of the shortest one among them (in the saved file the shortest list among ABC is the list of breps and initial planes [A and B], 64 items, so whatever number of destination planes is provided, it will just be trimmed to the first 64 items)

in general in GH if you want to do operations with lists of different lengths, GH will duplicate the very last item of the shorter lists until the length of the longest one is reached

if we remove the shortest list component and plug everything directly to Orient:

first thing we notice: it works
because we provide only 64 breps (and their reference plane) and 322 destination planes, then the very last brep and its reference plane (both at index 63) are used for all the destination planes at index 63 up to 321, which I think it’s not what you want

you can use repeat data in such a way to repeat the whole list of all the 64 breps and 64 initial planes to the final length of the destination planes
repeat data just repeats the whole list again and again until the desired length L is reached

this way, because data is repeated 322/64=5.03something it means you will have most initial breps repeated and oriented 5 times, and a few of them (the ones at the beginning of the brep list) repeated and oriented 6 times, all of those on a different destination plane

regarding their rotation: at the moment the only possible rotation is on the plane XY
first it’s generated a list of the 4 possible rotations {0, Pi/2, Pi and 3/2*Pi} then the list is duplicated to the very same length of the destination planes, then it’s mixed randomly using the seed value
this means that the each of the 4 possible rotations will always be present at 25% (or close to that value if the total length is not a multiple of 4)

you can get a rotation that is “more random” with something like this (32.5 KB)

1 Like

Hi Inno, thank you for your comprehensive reply. I really appreciate it.

Regarding the rotation: Is it possible to add another plane in there, like the XZ-plane? That way I would give the objects the option to rotate either on the one or the other and orient themselves.

*Edit: This is kind of exactly what I was going for:

I like how many objects touch and intersect each other. The flip-side of that is that many of them now look repetitive. Creating connections and intersections was part of my original plan, so it’s also a good thing. Maybe if I could rotate individual ones I will resolve that problem.

** Edit: Fixed it by shifting the list of points for the 2nd and 3rd plane with a number slider.

1 Like

It turned out quite nicely! I even like the repetitions. They kinda serve as a visual guide in the otherwise chaotic cluster.
It’s nice to see some hard surface geometry around here for once. Usually there’s too much smoothing going on. :wink:

Wasp could potentially make it easier to get more control over the aggregations. This could help you make repetitions where you want and none elsewhere.
In my opinion, it’s one of the greatest GH plug-ins ever! There are lots of tutorials on YouTube by the creator himself, if you’re interested. There’s also a Discord channel.

1 Like

Thank you! I added some attractor points that I can use to shift the cloud around, with varying number and degree of attraction. This should do for now. I am planning to dive deeper into Wasp in the future. :slight_smile: I watched some tutorials and I must say it’s a great plugin!

Continuing with the example from our previous discussion, I’ve come up with a more or less straightforward example using Wasp. An aggregation is somewhat different than what you guys have come up with here, mainly because Wasp checks for intersections and prevents them.
The results are quite interesting though, even with simple geometries like these.

Remember, in the previous example I showed you how to come up with a pool of randomized stairs, angled and straight. Now, each of these stair prototypes becomes a Wasp part with a certain number of defined connections, meaning where other parts can dock onto. If you generate 9 stairs, these geometries will be aggregated. I’ve coloured them to identify geometries of the same type within the aggregation and started from 25 different ones.

Here’s an example with 250 parts:

And here are 2500 aggregated parts:

Finally, an aggregation of 5000! Things start to get heavy for Rhino. :wink:

Of course the rules can be improved and further rules or restrictions added to get other results. The aggregation could also be restricted to a certain volume and more.

Here’s the definition, if you’re interested to see the workflow: (64.5 KB)

wow this is super nice :+1:

I have tried the most stupid thing I could think about, and provided collider geometries as tiny mesh-boxes super far from the origin… geometries intersect each other, but also sometimes kind-of duplicate over each other

pretty awesome stuff!!! <3

Haha you guys are awesome! :smiley: That looks like a lot of fun (maybe not so much for my pc), but it’s great seeing all the possibilities one has when defining aggregations and I am sure Wasp’s rules component leaves a lot of room for interesting results. Thank you!

You’re welcome. I had lots of fun with this. :slight_smile: