Stomata Membrane
-
Upload
adifajarutama -
Category
Documents
-
view
604 -
download
2
description
Transcript of Stomata Membrane
A.Penaloza Caicedo , A.F.Utama, B. Vincent , D. Nam, O. Oladunjoye
[ Hyperbody, Faculty of Architecture, TUDelft ]
MSC 3 FALL 2008
STOMATA MEMBRANE
Performative Skin
The Stomata Membrane - Parametric Facade - Interactive SystemA stomata is found in a leaf and stem epidermis and its used for internal to external exchange in terms of gas, and water vapor. The concept of the performative aspect of the stomata was an inspiration for our skin component.
Stomata
Geometry Evolution
Geometry - criteria
The final geometry chosen was the fourth in the second behavior series. We were testing a geometry that suits the qualities of a stomata . Performance - Adaptable - Recursive pattern - Interactive.The geometry was thought of in relation to a building skin - wall, floors, and roof. In the phase of sustainability, our geometry tackles the following questionsCan the geometry store water?Could the geometry permit light?Could the geometry generate wind energy?How adaptable is it?
Rules & Notation
Option Explicit
'script written by Dayo Oladunjoye''hyperbody research group, tudelft. december 2008'
'pseudocode'select a mesh'draw parrelelogram on the mesh'locate points'addsurface
Call SurfaceUV()Sub SurfaceUV()
Dim strSurface 'the surface
Dim uDiv,vDiv, intMax : intMax = 100Dim arrUDomain, arrVDomain Dim Ustep, VstepDim arrParameterDim arrC1,arrC2,arrC3,arrC4Dim arrMidpt
Dim intWidth: intWidth = Rhino.getInteger("please select width",1)Dim intHeight: intHeight = Rhino.GetInteger("please select height",1)
strSurface = Rhino.GetObject ("please pick surface",8, True)If IsNull(strSurface) Then Exit Sub
uDiv = intwidth 'Rhino.GetInteger("please enter number in U-direction",10,1,intMax)If IsNull(uDiv) Then Exit Sub
vDiv = intheight 'Rhino.GetInteger("please enter number in V-direction",10,1,intMax)If IsNull(vDiv) Then Exit Sub
arrUDomain = Rhino.SurfaceDomain (strSurface, 0)arrVDomain = Rhino.SurfaceDomain (strSurface, 1)
UStep = (arrUDomain(1)-arrUDomain(0)) / uDivVstep = (arrVDomain(1)-arrVDomain(0)) / vDiv
Call Rhino.EnableRedraw (False)
Component in line geometry
mapping of line geometry
Script Development
Call SurfaceUV()Sub SurfaceUV()
Dim strSurface 'the surface
Dim uDiv,vDiv, intMax : intMax = 100Dim arrUDomain, arrVDomain Dim Ustep, VstepDim arrParameterDim arrC1,arrC2,arrC3,arrC4Dim arrMidpt
Dim intWidth: intWidth = Rhino.getInteger("please select width",1)Dim intHeight: intHeight = Rhino.GetInteger("please select height",1)
strSurface = Rhino.GetObject ("please pick surface",8, True)If IsNull(strSurface) Then Exit Sub
uDiv = intwidth 'Rhino.GetInteger("please enter number in U-direction",10,1,intMax)If IsNull(uDiv) Then Exit Sub
vDiv = intheight 'Rhino.GetInteger("please enter number in V-direction",10,1,intMax)If IsNull(vDiv) Then Exit Sub
arrUDomain = Rhino.SurfaceDomain (strSurface, 0)arrVDomain = Rhino.SurfaceDomain (strSurface, 1)
UStep = (arrUDomain(1)-arrUDomain(0)) / uDivVstep = (arrVDomain(1)-arrVDomain(0)) / vDiv
Call Rhino.EnableRedraw (False)
Dim u,vDim lumDim strNameDim arrObjects
For u = 0 To uDiv-1For v = 0 To vDiv -1
arrParameter = Array(arrUDomain(0)+ UStep * u, arrVDomain(0)+ VStep * v)arrC1 = Rhino.EvaluateSurface(strSurface,arrParameter)
arrParameter = Array(arrUDomain(0)+ UStep * (u+1), arrVDomain(0)+ VStep * v)arrC2 = Rhino.EvaluateSurface(strSurface,arrParameter)
arrParameter = Array(arrUDomain(0)+ UStep * (u+1), arrVDomain(0)+ VStep * (v+1))arrC3 = Rhino.EvaluateSurface(strSurface,arrParameter)
arrParameter = Array(arrUDomain(0)+ UStep * u, arrVDomain(0)+ VStep * (v+1))arrC4 = Rhino.EvaluateSurface(strSurface,arrParameter)
'__________________________________________________________________
Overall Surface
Function SurfaceOne(strSurface,arrC1,arrC2,arrC3) Dim arrPoints1, arrPoints11, arrPoints12 Dim addCurve1, addCurve11, addCurve12 Dim srfMain1, arrObjects1 arrPoints1 = Array(arrC1,arrC2,arrC3) addCurve1 = Rhino.AddCurve(arrPoints1,4) arrPoints11 = Array(arrC1,arrC2) addCurve11 = Rhino.AddCurve(arrPoints11) arrPoints12 = Array(arrC2,arrC3) addCurve12 = Rhino.AddCurve(arrPoints12) arrObjects1 = Array(addCurve1,addCurve11,addCurve12) srfMain1 = Rhino.AddEdgeSrf(arrObjects1)End Function
Function SurfaceTwo(strSurface,arrC3,arrC4,arrC1)
Dim arrPoints2, arrPoints21, arrPoints22 Dim addCurve2, addCurve21, addCurve22 Dim srfMain2, arrObjects2 arrPoints2 = Array(arrC1,arrC4,arrC3) addCurve2 = Rhino.AddCurve(arrPoints2,4) arrPoints21 = Array(arrC3,arrC4) addCurve21 = Rhino.AddCurve(arrPoints21) arrPoints22 = Array(arrC1,arrC4) addCurve22 = Rhino.AddCurve(arrPoints22) arrObjects2 = Array(addCurve2,addCurve21,addCurve22) srfMain2 = Rhino.AddEdgeSrf(arrObjects2)End Function
Surface division into u-v
Function SurfaceThree(strSurface,arrC1,arrC2,arrC3,arrPeakPtMid)
Dim arrPoints3, arrPoints31, arrPoints32, arrPoints33, arrPoints34 Dim addCurve3, addCurve31, addCurve32, addCurve33 Dim srfMain3, arrObjects3, arrDomain3 arrPoints3 = Array(arrC1,arrC2,arrC3) addCurve3 = Rhino.AddCurve(arrPoints3,4) arrDomain3 = Rhino.CurveDomain(addCurve3)
Dim addCurve3midpt: addCurve3midpt = Rhino.CurveMidPoint(addcurve3) addCurve33 = Rhino.SplitCurve(addCurve3,0.5) arrPoints31 =Array(arrC3,arrPeakPtMid) addCurve31 = Rhino.AddCurve(arrPoints31) arrPoints32 = Array(addCurve3midpt,arrPeakPtMid) addCurve32 = Rhino.AddCurve(arrPoints32) arrObjects3 = Array(addCurve33(1),addCurve31,addCurve32) srfMain3 = Rhino.AddEdgeSrf(arrObjects3)
End Function
Function SurfaceSix(dblHeight,strSurface,arrPeakPtMidMin,arrC1,arrC4,arrC3) Dim addCurve6, addCurve61, addCurve62, addCurve63 Dim arrPoints6, arrPoints61, arrPoints62 Dim srfMain6,arrObjects6, arrDomain6 arrPoints6 = Array(arrC1,arrC4,arrC3) addCurve6 = Rhino.AddCurve(arrPoints6,4) arrDomain6 = Rhino.CurveDomain(addCurve6)
Dim addCurve6midpt: addCurve6midpt = Rhino.CurveMidPoint(addCurve6) addCurve63 = Rhino.SplitCurve(addCurve6,0.5) arrPoints61 =Array(arrC1,arrPeakPtMidMin) addCurve61 = Rhino.AddCurve(arrPoints61) arrPoints62 = Array(addCurve6midpt,arrPeakPtMidMin) addCurve62 = Rhino.AddCurve(arrPoints62) arrObjects6 = Array(addCurve63(0),addCurve61,addCurve62) srfMain6 = Rhino.AddEdgeSrf(arrObjects6) End Function
mapped geometry on surface division
mapped open geometry on surface division
Add surfaces on mapped open geometry
Function surfaceFour(strSurface,arrPeakPtMid,arrC1,arrC4,arrC3) Dim addCurve4, addCurve41, addCurve42, addCurve43 Dim arrPoints4, arrPoints41, arrPoints42 Dim srfMain4,arrObjects4, arrDomain4 arrPoints4 = Array(arrC1,arrC4,arrC3) addCurve4 = Rhino.AddCurve(arrPoints4,4) arrDomain4 = Rhino.CurveDomain(addCurve4)
Dim addCurve4midpt: addCurve4midpt = Rhino.CurveMidPoint(addCurve4) addCurve43 = Rhino.SplitCurve(addCurve4,0.5) arrPoints41 =Array(arrC3,arrPeakPtMid) addCurve41 = Rhino.AddCurve(arrPoints41) arrPoints42 = Array(addCurve4midpt,arrPeakPtMid) addCurve42 = Rhino.AddCurve(arrPoints42) arrObjects4 = Array(addCurve43(1),addCurve41,addCurve42) srfMain4 = Rhino.AddEdgeSrf(arrObjects4)
End Function
Function SurfaceFive(dblHeight,strSurface,arrPeakPtMidMin,arrC1,arrC2,arrC3) Dim arrPoints5, arrPoints51, arrPoints52, arrPoints53, arrPoints54 Dim addCurve5, addCurve51, addCurve52, addCurve53 Dim srfMain5, arrObjects5, arrDomain5 arrPoints5 = Array(arrC1,arrC2,arrC3) addCurve5 = Rhino.AddCurve(arrPoints5,4) arrDomain5 = Rhino.CurveDomain(addCurve5)
Dim addCurve5midpt: addCurve5midpt = Rhino.CurveMidPoint(addcurve5) addCurve53 = Rhino.SplitCurve(addCurve5,0.5) arrPoints51 =Array(arrC1,arrPeakPtMidMin) addCurve51 = Rhino.AddCurve(arrPoints51) arrPoints52 = Array(addCurve5midpt,arrPeakPtMidMin) addCurve52 = Rhino.AddCurve(arrPoints52) arrObjects5 = Array(addCurve53(0),addCurve51,addCurve52) srfMain5 = Rhino.AddEdgeSrf(arrObjects5) End Function
Parametric Logic
Parametric Skin
Parametric Bone + Skin
Components
Light – Energy - Water
Construction
Technical Drawing
Temperature (o C)
Wind speed (m/s) & direction
Precipitation ( mm)
Sun Angle , duration, Clearness
Location : DelftLatitude: +52.01 (52°00'36"N)Longitude: +4.36 (4°21'36"E)
Environmental Factor
Location : DelftLatitude: +52.01 (52°00'36"N)Longitude: +4.36 (4°21'36"E)
Environmental Factor
The Components location is determined by the elevation. The highest position are light components in order to maximize solar gain. The energy generating components are located in the slope to take advantage of water flow and wind, while the Water capturing components are located in the lowest part to catch the rain water.
Components Location
Operational Diagram
Performative Skin Simulation