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.
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.
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”.