Python First Workshop by Alan Roo

Fluid Form Finding Process by Siedler, Philipp + Rodríguez Carrillo, Alan

Fluid Form Finding Process

Spatial Organisation by Electric Fields – Siedler, Philipp + Alan Roo

Prof. Achim Menges
Ms. Arch. Ehsan Baharlou
Universität Stuttgart – Institut für Computerbasiertes Entwerfen [ICD]


The purpose of this final design work is create a working, readable python script with comments. Demonstrate our understanding and application of computational design techniques and design thinking skills. Test an interesting computational idea that goes beyond stadard parametric modeling practices to experiment with complex geometric form, generative design, representation and simulation.

Create dynamic spatial, biological or architectural effects that utilize multi-variant system design constraints. Show intelegent, controlled design with developed scripts.

Try to create an project that is greater than the sum of its parts. The result should not be obvious what computational techniques were used but rather develop strategies that are more explorative or combinatorial.


Project Idea

The main idea of the project “Fluid Formfinding Process – spacial organisation by electric fields” is to develop a form finding process with electric fields. A field is beeing generated by positiv and negativ magnetic forces. Field lines are beeing used to display the magnetic field and stream around the intended spaces.

This spatial system is able to adept to different surroundings and settings, different types and needs for space.

It is also possible to generate openings for entrances and view into and outside of the structures envelope. The aesthetic intention of the formfinding system is a organic and fluid appearance. Satisfying the humans eye by comparing it to geometries and forms in nature, without any corner or straight edge.

The idea of the global system is like a burrow system of a insects mound which also adds spatial complexity.


Final Project Concept

In “Fluid Formfinding Process – spacial organisation by electric fields”, four elements frame the project: A source as “Target Point”, “Field Lines”, space defining breps and their bounderies as “Deflectors” and “Attractors” to manipulate the “Field Lines”.

The working python code defines a single “Target Point” or multiple “Target Points” where also the “Field Lines” evolve. The “Target Point” has a moderat point charge. Breps around the initial “Target Point” define spaces in an urban setting, or one building. Vertices or populated points on those breps act as deflecting forces and avoid the “Field Lines” to penetrate the Brep spaces.

Attractor points are negative forces attracting the “Field Lines” and so forming the “End Points” of the force field. This static parameter influences the global shape of the “Field Line”-System in a major way.


Thesis of Single Field Line

We examined the basic concept of a “Field Line” or flow line in a force field. In this example there are three “Point Charge” forces: Vector 1, with a length of 30; Vector 2, with a length of 5; Vector 3 with a length of 10. Manual vector addition results in a “Resulting Vector”. In this example three iterations were performed, while the “Decay” of the “Point Charges” were not considered.

The last step was to sketch this manual examination in grasshopper so we could compare the results. The manual examination clearly shows higher curvature at the beginning of the “Resulting Vector”. Unfortunately the “Resulting Vector” of the “GH-Approach” does not show the curvature in a higher contrast, but is still present.



Field Thesis:

Grasshopper Integration

The Grasshopper integration was done as following:

Python-Code-Component – The “Urban Setting” is a first input as a Brep, also the “Target Points”, source of the “Field Lines” are set manually. The “Urban Setting”-Brep is exploded and it’s vertices are used as points for the “Deflector Points” in the code. Different Parameters like the “Charge Values” and number of “Attractors” or “Deflectors” are controlled with a bunch of sliders. The “Seed”-value is also controllable from outside the script. We could have added multiple different Parameters like the sphere radius for the “Target Point Spheres”.

This Python-Code-Component is followed by a “FieldLines”-Component of Grasshopper to display force field lines of the Phyton-Code-Components output, field.


A second Phyton – Code-Component is checking the “FieldLines” if they intersect with the “Urban Setting” Brep. If they collide, the lines will be culled from the list and a non-intersecting list of curves is getting returned as output. The next step is to divide those curve and rebuild them as segmented polylinecurves. Through a thickening process of the plugin “Cocoon” we generated a metaball mesh, welded it and refined the output with “Weaverbird’s Laplacian Smoothing”, “Weaverbird’s Loop Subdivision” and “Weaverbird’s Catmull-Clark Subdivision”.


Final Visualization







SAGÜES! Museum – Alan Rodriguez Carrillo

SAGÜES! Museum – Donostia-San Sebastián, España

Alan Roo

00 - Presentation Render A 01 - Schwarz Plan and Top Render 02 - Concept and Top Plan03 - Floors A 03 - Floors B 03 - Floors C 03 - Floors D 04 - Sections A 05 - Facade Detail 06 - Space Section 3D 01 06 - Space Section 3D 02Photo 01 Photo 07 Photo 06 Photo 05 Photo 04 Photo 03 Photo 0200 - Presentation Render B

Bee Mover – Random Initial Structure [Alan Rodriguez Carrillo]

Srf + [ptA, ptB, ptC] System by Alan Rodriguez Carrillo

[C]haos Bridge – Python Script by Alan Rodríguez Carrillo

Parametric Bridge Script using Python on Rhinoceros 5.0


Parametric Coral Growth – Final Project by J. Barnthouse, Q. Chen, W. Lin, Rodríguez Carrillo Alan

Parametric Coral Growth

[Barnthouse, Q. Chen, W. Lin A. Rodriguez Carrillo Alan]

Prof. Achim Menges

Tutor: Ehsan Baharlou


The initial design goal was to investigate a fractal growth pattern, with design parameters to simulate natural growth pattern. We wor­ked with the idea of growth on an adjacent object and the power of the sun. Through the use of Rhino, Grasshopper, Anenome, and Kangaroo we sought to achieve a parametric form that could be manipulated with our set parameters. We also created a series of geometry within the model in to ensure successful fabrication with 3d-priting.

During the initial stages of design, we looked at examples of bio­logical fractal structures found in nature, including tree structures, human anatomy, fruits and plants. Further, corals were studied and ultimately inspired the project. A mathematic process needed to first be determined in order to generate a parametric form. We started with 2D random, 2D branching and ultimately, a 3d branching struc­ture best fit the needs of the project.

Parametric fractal forms can be found in industrial design, such as a coat hanger or a lamp cover using the 3d branching system. Growth pattern system can also be used in structural components of buil­dings like columns.


Our design concept dealt with the manipulation of the coral fractal pattern that was initially generated in Grasshopper. The thinking was that the branching sys­tem would represent the coral.

From there, we wanted to see how we could manipu­late this system beyond simple repition. To achieve this, we introduced a brep “rock” into the project that would ultimately interfere with our growth pattern. The points which fell inside this brep were then projected on its sur­face, as coral would likely grow on the surface of a rock when the two objects.

Further, we introduced an attractor point growth pat­tern of the endpoint spheres that represented growth towards the sun.

Finally, we worked with Kangaroo physics to have a sphere packing effect that would represent the real-life interaction of the final spheres.

Fractal Patterns

The initial design goal was to investigate a fractual growth pattern, with design parameters that could be manipulated to generate specific forms. These growth patterns range from simple structures to complex na­ture. Was also wanted geometrically interpret the be­havior of certain organic structures from fractal geom­etry.

Natural Growth

As the form began to grow, we hoped in simulate natural growth patterns, such as attraction towards the sun or gravitational pull of large objects. Ultimately we worked with the idea of growth on an adjacent object and the power of the sun and different environmental aspects that could influence the growth form and formal conclu­sion.


The more complex to see nature path is to study and understand their behavior and try to imitate from sci­entific and numerical human theories. The interpreta­tion of environmental and geometric parameters that were studied previously gave us the starting point to generate a study based on visual programming param­eters. Thus, each element that influenced our design interepreto with geometric and numerical parameters employing the use of software. Through the use of Rhi­no, Grasshopper, Anenome, and Kangaroo we sought to achieve a parametric form. the final result could then be manipulated based on our set parameters. The final images and representation was made with 3ds max + VRay engine.

Through anenome loops, pipe connection, brep exclusion and projec­tion we developed the 3d coral fractal pattern. Further, we set the at­tractor point (sun) and use kangaroo to pack sphere.The final design was able to be baked in Rhino and rendered using 3dsMAX + VRay. A Series of Animation slides were also rendered from a semilar pro­cess. 3D printing served as the best medium to fabricate the final ite­ration of our project. Parameters were set such that the final project would be physically stable.

For this project we wanted to generate a final design that was both beautiful and could be fabricated in real life. We wanted not to simply copy an existing form, such as coral, but rather use this natural pat­tern as an inspiration for the project.

We found that exploring a number of corals gave us a variety of ways to think about growth patterns. Also, how these corals interacted with their environments played a role in our design process. For example, we looked at how some coral grew vertically towards the sun, while others grew in accordance to their surroundings. The idea that these corals sprung up from the sea floor and would inevitably interact with other types of geology inspired the idea of introducing a rock into the project.

As for computation representation, we wanted a design concept that was based in mathematics, but also had a level of unpredictability to the final product. To achieve this, we introduced a number of ways to manipulate the final design in different stages of the growth system. For example, the number of brances, size of branches, number of loops, and number of interferences can be controlled within the final script. Also, the physical aspect of the project, the Kangaroo sphere packing, can also be adjusted to give a different final result.

When it to came to final production, we wanted to explore the use of 3D printing with our model. For that, we needed to build a structure that could support itself and could be understood by machine fabrica­tion. The final model clearly shows the design intent, and alludes to how the design could be used in a real-world setting.

02Mathematic Approach

A mathematic process needed to first be determined in order to generate the parametric form. ultimately, a 3-D branching structure best fit the needs of the project.

2-D Random

The first method to try to imitate and represent a growth pattern in nature, was to establish a pattern of growth determined by a standard 2-D who was represented by lines and divisions. The pattern of growth in 2-D enabled us to successfully manage growth in two dimensions of the final order and served as a basis for establishing the final dimensions based on the number of divisions and segments that could have our system.

This system allows us to control from Anemone plugin iterations and divisions from specific control points.

2-D Branching

This system was developed from the concept of branch­ing and controlled subdivision from studies of organic and plant systems such as the lungs, the human cen­tral nervous system and fractals found in the nature of plants and microorganisms.

The development of a system based on ramifiación of division XY / 4 from each of our initial lines and expand­ed exponentially and, if a branch has one line, then af­ter 4 and 16 have branches with three iterations growth 2-D. This rule can be represented by 1=1, 2=4, 3=16, etc, where the unit represents the interaction growth and the numbers 1, 4 and 16 the braching system in 2-D space.

3-D Random

The structures found in nature tends to grow at random, but always tends to follow specific sources such as the sun or moving water energy due to static and dynamic force. Therefore, as well as human and living beings on this planet we are influenced by these energy sources.

The interpretation was performed from the movement of the sun and the way it has this in changing the geom­etry of 3D structure from a checkpoint that was used for this purpose. This checkpoint was modified from physi­cal components such as gravity and wind forces that affect natural systems.

The movement of the sun represented by a checkpoint, gave us the opportunity to have different spatial config­uration structures from physical forces interacting in it.

3-D Branching

By having a static element as it is a rock or a body with inertia 0, we use the 3D branching system in order to control the growth of our geometric body in three-dimensional space, the above was performed following the pattern of growth 2-D logarithmic but applied to 3D space with physical forces encountered in space, such as gravity and compression interpreted and carried out with the Kangaroo plugin.

With a branching system in three dimensional space, the growth pattern and geometric formal outcome of our body, had resulted in a system that could satisfac­torily mimic a natural system, besides being able to control your character through mathematical param­eters and numerical.


When working with 3D editing programs and 3D graph­ics, the easiest way was to represent our prototype based on the use of a printer to give us the opportunity to build our design successfully without errors. The fi­nal product should be formed such that it could be real­ized with the use of 3-D printing. with that, we created a number of design iterations that could be phyically help together once fabricated.

Technical Development

Architecture and design, concerned with control over rhythm, and with such fractal concepts as the progression of forms from a distant view down to the intimate details, can benefit from the use of this relatively new mathematical tool. Fractal geometry is a rare example of a technology that reaches into the core of design composition, allowing the architect or designer to express a complex understanding of nature. Rapid prototyping tools and 3D printers have made posible to actualize the intricate digital designs to physical forms easily and quickly.

Idea from Nature

The concept of Biomimicry, considered as the science and philosophy of learning from nature , is a source of design inspiration with different approaches undertaken by designers that refer nature. Often, nature as inspiration is combined with mathematics in order to move beyond the superficial inspiration and realize structurally designs. Mathematics offer rules which guide designers to understand the complexity of natural shapes.

The irregular non-Euclidean geometry of natural tres have been now possible to explain through mathematics by the concept of complex, non-linear and fractal geometries (Casti, 1989). ‘Fractal ׳, coined by Benoit Mandelbrot in the 1970s, can theoretically define the geometry of many natural objects (Mandelbrot, 1982).


Get every new post delivered to your Inbox.

Join 745 other followers