Optimizing a modular Architectural System in Grasshopper

I am developing a modular architectural system based on three main components: structural nodes, linear elements (bars), and tensioned surfaces. The nodes serve as connectors between the linear elements and allow specific angular configurations (0°, 45°, 90°, 135°, and 180°). Attached are some examples of these nodes. They are modeled in 3D and can be distributed along a three-dimensional axis.

The linear elements are circular-section bars with five different lengths but always the same diameter. The tensioned surfaces act as functional elements that define specific spatial roles (e.g., shading, enclosure, support) by being strategically placed between the bars.

I currently have a set of approximately 40 designed nodes. My goal is to develop a system that maximizes the number of spatial configurations using the minimum number of unique nodes. I aim to create a Grasshopper script that analyzes and optimizes which nodes are the most efficient for generating the maximum number of configurations with the smallest set of components.

Each node can be repeated as many times as necessary, and some components might remain unused in certain configurations. However, the priority is to ensure the system remains flexible and efficient, working consistently with the same set of basic pieces.

Any guidance, ideas, or resources for achieving this in Grasshopper would be greatly appreciated!


Might be something in here to get you started:

1 Like

Thank you so much! This might be very useful!

Looking up space filling polyhedrons. Those are inherently modular. Also, kangaroo is perfect for this. You can force joints to take on specific relative angles. For nodes, you also need to work with topology, my preference is Sandbox, but there are others.