The seminar mainly focused on the computational thinking and logic to design assemblages using iterative algorithmic strategies starting from a single module made out of basic cubes. The designed module was treated as the basic unit of computation, able to store and compute data. Starting from this initial element and position, the growth process was driven by internal and external conditions which limited and enhanced the growth structure and system qualities. The final aggregation was then investigated through the lens of constructability and robotic automation.

The approach was to first design a module using basic cubes and set planes on the surface, which behave as joining planes for further modules. In order to automate the process, the entire exercise was broken down into logical steps and embedded in an anemone loop. The first part of the studio focused on a few pre-dictated parameters that we learnt to construct into the workflow – which were mainly cross referencing all the combinations of secondary modules, checking for collisions and randomizing the selection of joining planes.

Initially, we designed multiple modules by varying the pattern and number of cubes. This was done do to compare the differences in growth pattern and collisions.

We then set the loop number to 50 iterations to compare the growth patterns while changing the seed number which controls the random pattern generation.

The second part of the studio focused on coming up with our own parameters that control the growth pattern of the modules. We chose to work with two parameters. First, to make sure that the growth pattern remains above the xy plane on the positive side. This was done by eliminating modules with negative z coordinates.

The second parameter was to develop the growth pattern as close as possible to the centroid of the previous modules(s). This results in two outcomes. First, we get the most stable form possible using any module. Second, it has a practical approach while trying to figure out the robotic process of building the blocks.

In order to add variation and randomness, we structured the code to pick one from the permutation of secondary modules that have the five closest centroid distances from the previous ones.

The exercises done during the course of this seminar helped us understand the logical approach to design while also having fun with our project. Along the way we have observed and learnt a few things which we feel will be interesting to the readers of this blog.

  • Simple logical steps can generate infinite possibilities.
  • Intelligence starts from designing of the individual component and connection planes.
  • Filtering out permutations with different logical steps produces streamlined results. 
  • Adding connection planes increases the number of iterations exponentially.
  • Rotating and changing positions of the connection planes varies the iterations and the number of collisions.
  • Keeping the connection planes too close to each other limits the number of iterations as collisions increase.
  • Changing the seed, sometimes, changes the direction of growth drastically.