INSPIRATION
Delicate crusts, fine vases, massive lumps or branched structures: Nature contains over 5000 different species of sponges with various shapes and sizes. Their growth depends on the milieu and the diet, always adapted for a maximal efficiency of water flow. The design is inspired by a specific type of demosponges recognizable by its characteristic leaves.
CONCEPT
The design aims to create a space as a protected place and meeting point based on the organic shapes of sponges. Therefore, a growing process and pattern related to time and a certain behavior is implemented. By starting with a minimal input and playing with different components, a variety of designs regarding for example the dimensions of the enclosure, the number of separate parts, covered areas and possibilities to rest can be generated. For simulating a growing process Grasshopper is used in combination with C#. The growing process is achieved through an implemented logic of subdivision and avoidance of self-collision of meshes, always connected to a certain randomness.
STEPS
Step 1: Points – set a region populated with randomly generated points
Step 2: Planes – generate one plane for each point and rotate them randomly in xy- and xz-direction
Step 3: Meshes – prepare the meshes for the growing process by joining, triangulating them and creating a slight randomness with C#-Jitter
Step 4: Growth – simulate the growing process by implementing a certain logic, especially regarding iterations, collision distance and bending resistance, vertices push each other away by avoiding sphere-sphere collision of imagined spheres around vertices
Explanation of component inputs:
- Timer: sets duration of interval for growing process
- Reset: restarts growth from beginning
- Subiteration Count: defines repetition of growth with intermediate values
- Grow: regulates whether mesh is growing or not, achieved by subdivision of edges
- Max. Vertex Count: determines goal of growing process, growth stops when reached
- Edge Length Constraint Weight: prevents edges from getting too long when maximum vertex count is reached
- Collision Distance: indicates desired distance between vertices, two times radius of imagined sphere around vertex
- Collision Weight: determines how strong spheres push each other away
- Bending Resistance Weight: influences smoothness of growing mesh
- Use R-Tree: increases speed of growing process
Step 5: Offset – create wall thickness from meshes
Step 6: Finalize – split meshes with xy-plane to adapt to a flat surface and smooth result with Weaverbird
Step 7: Visualization – show implemented logic of spheres around vertices pushing each other away to avoid collision
RESULT
GROWTH & VISUALIZATION
GRASSHOPPER FILE
PLUGINS
MeshGrowth built with Visual Studio (C# Scripting and Plugin Development for Grasshopper – Workshop by Long Nguyen, University of Stuttgart) – https://www.youtube.com/watch?v=pFCrIzENDn8&t=4s
Plankton – https://www.grasshopper3d.com/group/plankton
Weaverbird – https://www.giuliopiacentino.com/weaverbird/