Donnerstag, 23. Dezember 2010

Swarm Intelligence 01


I haven't upload much post lately, since I am actually on my christmas holiday right now. However during the holiday I develop more and more interest about Swarm Intelligence and Agent Based System. Started with Craig Reynold Boid and Daniel Shiffman's flocking, I tried writing this code, which is basically a fragment about swarm intelligence.

I am still trying to figure out the best way to exploit agent based system and how to use it for practical architecture. If you have any ideas please just contact me via email. Thanks...

Sonntag, 12. Dezember 2010

Evolving System of Material and Performance: Six Hands Typology (Part 2)


Continuing previous post about branching typology with tension active system, I would like to show the design of the next component: six hand component.


The six hands component have six hands coming out from the center.


The form of this component is similar to the minimal Surface Schwarz P surface, founded by Hermann amandus Schwarz.


This is structural analysis of the component (4 hands, 6 hands and 8 hands component) in rhino membrane.

Schwarz P surface is described in the  web page of Indiana University (http://www.indiana.edu/~minimal/archive/Triply/genus3/PLines/web/index.html) as:"The P-surface can be constructed by solving the Plateau problem for a 4-gon with corners at the vertices of a regular octahedron. The resulting surface is then extended by 180º rotations about the straight boundary lines."


Samstag, 11. Dezember 2010

Evolving System of Material and Performance: Four Hands Typology (Part 1)



This is a part project for my studio entitled: Evolving System of material and performance tutored by Prof. Achim Menges, Sean ahlquist, Prof. Johan Bettum and Anton Savov .

I will post  the video in several parts, since  it was a quite big project. The project focused in the research of membrane typology, spring simulation and translation of the computational design into physical model.

The main concept of the prototype is: Research of branching typology using minimal surface. The end result of the computational Design is shown below:




I want to go first with description of each typology. There are 4 different type of component in the whole system.

The video above shows spring simulation of one typology in whole prototype. The shown typology in the video is a component with 4 hands.


Structural Analysis of the membrane with Rhino Membrane


The design of four hands component in 3d model(above).




Picture of four hands component from physical model hardened with Epoxy+Resin.

The topological preferences of this component is similar to Schoen F-RD minimal surface, which founded by Alan Schoen.
Schoen Surface is described in the internet page of Susquehanna University (http://www.susqu.edu/brakke/evolver/examples/periodic/periodic.html) as: "Unit cell with tetrahedral symmetry which has a central chamber with tubes to alternating corners of the cube. This is actually only an eighth of a lattice cell; to get a lattice cell, reflect in the cube faces". 
 


Another quotation to Schoen Surface is extracted from web page of Indiana University (http://www.indiana.edu/~minimal/archive/Triply/genus4/I-WP/web/index.html) as: "This surface, found by Alan Schoen, has the symmetries of a box with square base. It connects with 'Neovius' handles towards the vertices of the box."

Dienstag, 7. Dezember 2010

Tension Active System 01


Simulation video.
 
This is a very first project I did about tension active system. The research method is focused on simulation of tension active system, and understanding of particle system, spring system and translation between computational design and material.


The system itself is composed from 6 type of membrane - mesh which interconnected with each other to create interdependencies between each membrane.



When a force is applied on a membrane, a membrane will deform and gets longer than its rest length. The force which applied on a membrane is definitely not linear with the spring length. The force applied is exponential to the length deformation, so if we draw it in graphic it would be parabolic. Through physical experiments we can define the material characteristic and bridge the computational and physical simulation.



The mesh in the physical world would be a membrane sheet. Mapping of anchor points throughout the membrane would be essential to know the exact position in the voxel space.




Samstag, 4. Dezember 2010

Metaball

Metaball based on particle movement. So basically the centers of the metaball are particles which attracted to each other.


Metaball is defined in the mathematical world as n-dimensional objects. The main inputs for creating metaball are points, section planes and metaball treshold. Because of the complexity of the form which usually have more than one genus, creating the skin of a complex metaball are relatively hard. Therefore metaballs usually displayed as series of section lines rather than a single two or three genus surface. There are already some algortihm used in creating metaball skin such as: Marching Cube algorithm (this is the most popular one). But in this case we have to deal with the voxel space.
 

I am still trying to write a marching cube algorithm and will post it as soon as I finished it. For now I just extrude the section lines and cap the hole, which create a contour like form.
 

Growing Metaball

This is a video of growing metaball controlled by particle movement based on brownian motion.







Freitag, 3. Dezember 2010

Bridge Generator


This is a small project for rhinoscripting class at the University of Stuttgart taught by Ehsan Baharlou (a-matters).
The script is intended to generate bridge typologies.




Montag, 29. November 2010

Generative Stochastic - DLA


Actually, I am not a big fan of stochastic method since randomization is not an understandable thing for me. However finding the logic of "random" is pretty easy, since it's tightly related to the concept of probability. Imagine a dice with six faces and six numbers... the probability that the dice will show number 6 is 1/6. Throwing it 10 times increase the probability that the dice will show number six at least once. If we cheat the dice, and change the faces so that two faces has number six, the probability to get number 6 ( if we throw it 10 times) would increase to twice. The point is... however random things are, we still can control the randomization process with parameter.


In Diffusion Limited Aggregation, a "filament" will be added, if a particle (,which move based on brownian motion) collide with certain treshold of the seed point. It is arguably a stochastic method, where the filaments added randomly. However, this random method can still be controlled by certain parameters such as: the number of particles, the movement of the particles, the size of the treshold, the amount of the iteration, the vector direction of the particles etc.


So in other words, everytime we run DLA script, we can generate a uniqe form and still can get the form we want if we input the right parameter.. enjoy



Freitag, 26. November 2010

Octopus Garden


Another Surface population with different component. The opening and the height of the component controlled by the distance of the subset surface to the attractor...


I'd like to be under the sea
in an octopus' garden in the shade
He'd let us in, knows where we've been
in his octopus' garden in the shade...


lalalala........

Donnerstag, 25. November 2010

Fragment


I actually made this one to explain to a friend how particle springs work with kangaroo physics, but then I thought what the heck... wouldn't hurt if I upload it anyway.. 

There is one point in the middle which is the anchor point, connected with the surrounding points with springs (the springs are not shown/disabled). So basically if we change the location of the anchor point, - the other points will be dragged by the springs. Insanely easy... just like that...

Hedgehog



The script is a vector based attractor script using multiple attractors, which in this case 2 attractors. The attractor will deform the surface by pushing or pulling the u and v points on the surface. After deforming the surface, the segmented/subset surface will be populated with pyramid looking component.


Vector based attractor is a bit more complicated than normal attractor. However in multiple vector based attractors we don't have to evaluate the distance between point list to the attractor. All we have to do is just add the final vector and voila!.. it happens.

Dienstag, 23. November 2010

Catenary with Processing



I just had Processing 1.2.1 workshop since Friday, and we just finished today. The workshop was led by Anton Savov of SAC Frankfurt and Sean Ahlquist of ICD Stuttgart. The workshop was mainly about form finding of Tension Active System with Processing and simong particle library. I tried to write my own script directly after the workshop, trying to make a catenary structure, since I am inspired by cadenary tool of axel killian and the awesome processing script by nils seifert. it' s still very rough and not yet very beautiful.


It's very interesting that simong particle library thinks in a very topological way in comparison with traer physics library. Simong particle just care about the anchor points and the coordination of the springs along the membrane. I assume, with rigorous data manipulation, which can send them back and forth between rhino and processing is an interesting design method. I think with this method, one could make various really great forms.



It was really fun and I will definitely post some more stuff about form finding and Processing in the future.

Sonntag, 21. November 2010

Frei Otto's wool path

One thing in the architecture world that amazes me is the use of Physics simulation in architecture design. I am myself have been busy with tension active system for two years now, and it's alot of fun. From what I learned, I never know who is the originally-very first architect who use this technique. But about almost one hundred years ago, an architect from Barcelona used hanging chains for his design. His name was Antonio Gaudi. Before him there was actually an architect that also used tensile steel for his building. He wasn't as famous as Gaudi, his name was Vladimir Shukhov. This technique is further developed and researched properly in the University of Stuttgart in 1980's by Frei Otto which he later perfected and used for German pavilion at Expo 67 in Montreal and the 1972 Summer Olympics in Munich.

What I try to simulate in the video is the form finding technique (minimal path) with wool thread develop for a thesis by Marek Kolodziejczyk.

The Software is rhino and Kangaroo from Daniel Piker. The simulation created by using particle to interact with each other and connect them to become interpolated curve. Have fun.

Please see Daniel Piker's page: spacesymmetrystructure, for more awesome simulation.

Donnerstag, 18. November 2010

Attractor again

 
Attractor is certainly quite fun to play with. This grasshopper definition basically subset the surface and apply component on each surface. The height and opening of the component is controlled by attractor point.


Another possible variation, surface with seams


Anyway... Have fun..
By the way, I got a processing workshop at 9.30 tomorrow... very excited... I actually need to learn the processing for it's capacity of physics simulation...

Sonntag, 14. November 2010

Putting the attractor with evolutionary algorithm


 .

This is an experiment with Evolutionary Algorithm component in Grasshopper (my favorite parametric tool) to find a point on the surface, which has the highest value of gaussian curvature, then use it as attractor to define the size of the opening after surface population. Thanks to David Rutten (Galapagos) and Giulio Piacentino (Weaverbird)

I set the generation to 1000 and population to 20. I didn't run the whole algorithm in the video, so that the filesize of the video could be smaller. However after 5 generations we already start to see tendency of where the point might be and also the fitness graphic is starting to be stagnant. Of course if we run the generation to 1000 times, the position would be more exact. 


One further idea, is that we ask galapagos to find exact point on the facade based on the sun exposure, then use it as attractor for surface opening size.



Attractor System


Quite a simple one. What the script does is basically populate the surface with circles, where the circle radius are controlled by the distance of the circle center point to the attractor.

For the script to work, a single NURBS surface is necessary.


This is an example of the surface that would work.


After Surface population...
The Process of surface population in video.


Surface Play with Loft Method



Continuing last post about surface play. Another way to play with the surface creation is with the loft method, where we don't put the polygons on every 4 corner points, but by creating interpolated curve on every tree branch, then loft it. With this method we are able to create one single NURBS surface, which is preferrable for further manipulation with attractor.

See the data tree branch here (red represent the index grid points and blue represent the index of the tree):


Although, I feel like by indexing the points this way, the coordination of the points with each other could be quite messy.


I will continue to apply some attractor to the surface in the next post.. It'll be fun...

Freitag, 12. November 2010

Surface Play

This is a project for my rhinoscripting class at the University of Stuttgart. The Script basically creates surface by manipulating the Z value with mathematical equation derived from x and y. It's amazing how many surface variation can be created by this method

The creation of the surface is based on the arrangement of 2 Dimensional Matrix points.
Nurbs surfaces are then added parametrically from four points of the matrix.

The script also able to control the size and the curvature of the surface.



            Select Case strSrfType
               
                Case 0
                    x=i
                    y=j
                    z=dblFactor*5*sin(x)+dblFactor*5*sin(y)
                           
                Case 1                   
                    x=i
                    y=j
                    z=-dblFactor*(x^2)-dblFactor*(y^2)
                           
                Case 2                   
                    x=i
                    y=j
                    z=dblFactor*x*y
           
                Case 3                   
                    x=i
                    y=j
                    z=dblFactor*5*cos(sqr(x^2+y^2))
               
                Case 4                   
                    x=i
                    y=j
                    z=-dblFactor*20*Atn(x^2+y^2)
                       
                Case 5                   
                    x=i
                    y=j
                    z=dblFactor*8*log(sin(x)+sin(y)+2.01)
               
             
            End Select