Do you see how this code works? It proceeds sequentially through the list of rectangles and removes any other rectangles that collide with the one being examined.
This means that with the same set of random rectangles (no changes in the white group), you can get a different result by jittering the list sequence (yellow group added) prior to the Anemone loop.
I decided this old code needed an update. Added âDefine Region, Cull Intersecting Rectanglesâ (cyan group) to define a boundary and cull any rectangles that intersect it. In reality, the boundary can be any shape and orientation. (circle, diamond, zig-zag polyline, etc.)
Replaced âClassicâ Anemone loop with âFastâ, added Data Dam to make adjustments easier.
Beyond the boundary, there are eight parameters that affect the pattern of rectangles including two sliders in blue groups, Jitter âSeedâ and âmin_sepâ.