Algorithmic Studies - Various Experiments with Visual Programming and Code



The following examples were mainly elaborated using Grasshopper in Rhino, some plug-ins and custom made C# components. Its purpose is of a rather experimental kind than to actually design structure.


Limited Free Form Triangulation


Limited Free Form Triangulation
from Benjamin Felbrich on Vimeo.


The algorithm illustrated in the video on the left was established to discretize arbitrary free form surfaces into triangles of standard size. To do so, the algorithm is only allowed to use a limited, pre-defined set of available edge lengths.
Among others, this algorithm was used to maximise the degree of repitition in the pieces to be drawn in Kingfisher in the project Bionics in Architecture - Experiments with Multi-Agent Systems in Irregular Folded Structure. The algorihm's functionality was described in the detail in my diploma final thesis submission and can be seen here.
However, it was published in the proceedings of and presented at ICGG2014 in Innsbruck.



Swarm Particles - Ants vs. Fish


Swarm Simulation -- Self propelled particles -- Ants and Fish
from Benjamin Felbrich on Vimeo.


In this swarm simulation, the amount of particles can be set just like the speed of their movement. They are contraint to stay within a certain predefined border. "Flexibilty" range adjusts the angular range in which the particle can plan its next move. The value "swarm behavior" (to be changed with a slider) defines, how many of its neighbor particles each agent takes into considereation when planning its next step. If its set to zero, the particle moves completely randomly. If it is set to "10", the vector of the particle to move according to, is combined out of the ten neighbor particles' vectors and a certain portion of randomness.



Carica Papaya Trunk Simulation

Simulation of Papaya Trunk Growth
from Benjamin Felbrich on Vimeo.


The tropical plant "Carica Papayas" shows a stunning characteristic:
If it is bent down the ground due to heavy rain or storm it has the ability to regenerate its inital state bending towards the sun within a few days. This ability to lift itself off the ground surprises botanists, since the stem of Carica Papaya doesn't contain wood fibres. The plant rather represents a giant herb than a tree and can easily gain a height of up to ten meters. The form-regeneration is made possible by an optimized layout of fibres within the stem in which stronger secondary phloem fibre forms a tube surrounding softer, spongy secondary xylem fibres in the stem's center. The strong phloem fibre's layout represents a loose mesh pervaded by the water-carrying xylem phibres. As soon as the plant pumps more water into the spongy xylem fibres on one side of the stem, they cause the load bearing phloem fibres to spread in with. Thus, the phloem fibres shorten in lengths which results in an overall shortage of the phloem tube on one side and makes the stem bend.
This logic was abstracted and translated into a structure made of rigid material. In the simulation on the left you can see how a force widening the cells between the "fibres" of the stem tube on one side causes the stem to bend.
Carica papaya's special properties are investigated on at the Institute of Botany at Technische Universität Dresden.



Automated Puzzle Solver

Automated Puzzle Solver
from Benjamin Felbrich on Vimeo.


The video beside shows the work of a puzzle solving script established in Grasshopper in Rhino. The puzzle is represented by a dodecahedron in which the edge lengths were distorted unsymetrically in order to form unique pieces which can only be (re-)assambled in one way.
Starting with two pieces, the script tries different pieces to fit to the already existing structure. As soon as it finds a fit, the respective piece is added to the collection and the next step is executed. There are two different strategies: While the system doesn't take into consideration, which pieces were already utilized in the first strategy, it "takes note" of which pieces are no longer available in the second method. Thus, the second method works much faster.
For further information click here.



Neural Networks as Design Tools
- current project -

Backpropagation Network in Grasshopper
from Benjamin Felbrich on Vimeo.


Networks of neuron cells have been a intereseting subject of scientific research in many fields for a long time. Their computational recreation in Artificial Neural Networks started with the first mathematic model proposed by Warren McCulloch and Walter Pitts in 1943. Since that time, many new models were established and modified. Nowadays computer applications based on the idea of artificial neural networks form an essential component of machine learning strategies.
However, their implementation in 3D software for the usage as design tools hasn't been tackled yet.
The C# library NeuronDotNet3.0 established by Vijeth Dinesha represents a powerful, yet easy to handle library for artificial neural networks. The video on the left shows my first attempts to implement this library in Grasshopper. In this example the rather "classic" model of a neural network in which backpropagation is used for error correction is being utilized to make the component recognize simple patterns. In this case the input "pattern" is represented by a simple euclidean vector.
As a rather experimental toy, I didn't think about their actual use for architects so far, but some improvements in the field of smart shape generation are thinkable. Furthermore it could come in handy as a more intelligent control mechanism to Kingfisher.