Architecture 402al Portfolio

Page 1



ARIELLE ROULEAU ARCHITECTURE 402 PORTFOLIO FALL 2009

NON-LINEAR AGGREGATIONS WITH ROLAND WAHLROOS-RITTER


CELLULAR AGG


GREGATIONS I


OBJECTIVE DEFINE AN ALGORITHM BASED ON RECURSIOINAL AND CONDITIONAL STATEMENTS THAT PRODUCES A VARIABLE FIELD CONDITION AND TRANSLATE THE ALGORITHM INTO INTERACTIVE DRAWINGS.

Option Explicit ‘Script written by <Arielle Rouleau> ‘Script copyrighted by <USC Arch402al> ‘Script version Thursday, September 10, 2009 2:05:00 PM

Dim vstep : vstep = vDomain(1)/vDiv uvPoint = Array (u+uStep*(3/8),v+vStep*(3/ ‘Disable Redraw To speed up the executionarrData = srfCurvature (st of the script Rhino.EnableRedraw False ppB = offsetCalc(arrData, Call Main() Dim u, v, uvpoint, arrData uvPoint = Array (u+uStep*( Sub Main() arrData = srfCurvature (st For u = 0 To uDomain(1)-ustep Step ppC = offsetCalc(ar ‘create a u,v grid ustep Dim strsrf : strsrf = rhino. For v = 0 To vDomain(1)uvPoint = Array getobject(“select a surface to popuvstep Step vstep (u+uStep*(5/8),v+vStep*(3/ late”,8) arrData = srfCurvature (st If IsNull(strSrf) Then Exit Sub ‘Start setting up points ppD = offsetCalc(ar Dim uDiv : uDiv = Rhino. ‘call srfCurvature function to calculate GetInteger(“divisions in U direction”, 1)first point uvPoint = Array (u+uStep,v Dim vDiv : vDiv = Rhino. arrData = srfCurvature (st GetInteger(“divisions in V direction”, 1)Dim ppA, ppB, ppC, ppD, ppE, ppF, ppG, ppH, ppI, ppJ ppE = offsetCalc(ar ‘declare offset height variable Dim ppK, ppL, ppM, ppN, ppO, ppP, ppQ, and value ppR, ppS, ppT uvPoint = Array ‘Dim height : height = Rhino.Get- Dim ppU, ppV, ppW, ppX, ppY, ppZ, ppAA, (u+uStep*(5/8),v+vStep*(5/ Real (“offset height”,20) ppBB, ppCC arrData = srfCurvature (st Dim ppDD, ppEE, ppFF, ppGG, ppHH, ppII, ppJJ, ppKK, ppLL, ppMM, ppNN ppF = offsetCalc(ar Dim uDomain : uDomain = Rhino. Dim ppOO SurfaceDomain(strsrf,0) uvPoint = Array (u+uStep*( Dim vDomain : vDomain = Rhino. uvPoint = Array (u,v+vStep*(15/32)) arrData = srfCurvature (st SurfaceDomain(strsrf,1) arrData = srfCurvature (strsrf, uvPoint) ppG = offsetCalc(ar Dim ustep : ustep = uDomain(1)/ ppA = offsetCalc(arrData, 0) uDiv uvPoint = Array


(u+uStep*(3/8),v+vStep*(5/8)) PPM = offsetCalc(arrData, 0) arrData = srfCurvature (strsrf, uvPoint) /8)) arrData = srfCurvature (strsrf, uvPoint) trsrf, uvPoint) uvPoint = Array ppS = offsetCalc(arrData, 0) ppH = offsetCalc(arrData, 0) (u+uStep*(9/16),v+vStep*(5/16)) 0) arrData = srfCurvature (strsrf, uvPoint) uvPoint = Array (u+uStep*(9/16),v+vStep* uvPoint = Array (11/16)) (17/32),v) (u+uStep*(3/8),v+vStep*(1/2)) ppN = offsetCalc(arrData, 0) arrData = srfCurvature (strsrf, uvPoint) trsrf, uvPoint) arrData = srfCurvature (strsrf, uvPoint) rrData, 0) uvPoint = Array (u+uStep*(11/16),v+vStep ppT = offsetCalc(arrData, 0) ppI = offsetCalc(arrData, 0) *(5/16)) arrData = srfCurvature (strsrf, uvPoint) uvPoint = Array /8)) uvPoint = Array (u+uStep*(1/2),v+vStep*(5/8)) trsrf, uvPoint) (u+uStep*(5/16),v+vStep*(7/16)) ppO = offsetCalc(arrData, 0) arrData = srfCurvature (strsrf, uvPoint) arrData = srfCurvature (strsrf, uvPoint) rrData, 0) uvPoint = Array (u+uStep*(11/16),v+vStep ppU = offsetCalc(arrData, 0) ppJ = offsetCalc(arrData, 0) *(7/16)) v+vStep*(17/32)) arrData = srfCurvature (strsrf, uvPoint) uvPoint = Array (u+uStep*(7/16),v+vStep* trsrf, uvPoint) uvPoint = Array (11/16)) (u+uStep*(5/16),v+vStep*(5/16)) ppP = offsetCalc(arrData, 0) arrData = srfCurvature (strsrf, uvPoint) rrData, 0) arrData = srfCurvature (strsrf, uvPoint) uvPoint = Array ppV = offsetCalc(arrData, 0) ppK = offsetCalc(arrData, 0) (u+uStep*(5/8),v+vStep*(1/2)) /8)) arrData = srfCurvature (strsrf, uvPoint) uvPoint = Array (u+uStep*(5/16),v+vStep* trsrf, uvPoint) uvPoint = Array (11/16)) (u+uStep*(7/16),v+vStep*(5/16)) ppQ = offsetCalc(arrData, 0) arrData = srfCurvature (strsrf, uvPoint) rrData, 0) arrData = srfCurvature (strsrf, uvPoint) uvPoint = Array (u+uStep*(11/16),v+vStep ppW = offsetCalc(arrData, 0) (15/32),v+vStep) ppL = offsetCalc(arrData, 0) *(9/16)) trsrf, uvPoint) arrData = srfCurvature (strsrf, uvPoint) uvPoint = Array uvPoint = Array (u+uStep*(5/16),v+vStep*(9/16)) rrData, 0) (u+uStep*(1/2),v+vStep*(3/8)) ppR = offsetCalc(arrData, 0) arrData = srfCurvature (strsrf, uvPoint) arrData = srfCurvature (strsrf, uvPoint) uvPoint = Array (u+uStep*(11/16),v+vStep ppX = offsetCalc(arrData, 0)**


WORKING DRAWINGS



UV GRID


FLOW DIAGRAM

DEFINE A UV GRID

DEFINE A SET OF CREATE SURFACES DRAW CURVES POINTS ON THE UV CONNECTING POINTS USING THE GRID PRE-CREATED LINES


2 X 2

2 X 10

2 X 2O

2 X 50

10 X 2

10 X 10


10 X 20

10 X 50

50 X 2

50 X 10

50 X 20

50 X 50


CELLULAR AGG


GREGATIONS II


OBJECTIVE DEFINE AN ALGORITHM BASED ON RECURSIOINAL AND CONDITIONAL STATEMENTS THAT PRODUCES A VARIABLE FIELD CONDITION AND TRANSLATE THE ALGORITHM INTO INTERACTIVE DRAWINGS.

Dim u, v ‘call srfCurvature functi second point For u = 0 To uDomain(1)Step ustep uvPoint = Array (u+ustep, Option Explicit For v = 0 To vDomain(1)Step vstep arrData = srfCurvature (s ‘Script written by <Arielle Rouleau> ‘call offsetCalc function ‘Script copyrighted by <USC Arch402al> Dim uvPoint, arrData, proPoint1, tance is ‘height’ ‘Script version Friday, October 09, 2009 proPoint2, proPoint3, propoint4, proPoint4 = offsetCalc(ar 3:45:25 PM propoint5, propoint6 Dim proPoint7 ‘call srfCurvature functi Call Main() second point Sub Main() ‘call srfCurvature function to calculate uvPoint = Array (u+((4/5) Dim strsrf : strsrf = rhino. first point arrData = srfCurvature (s getobject(“select a surface to popuuvPoint = Array (u,v) ‘call offsetCalc function late”,8) arrData = srfCurvature (strsrf, uvPoint) tance is ‘height’ If IsNull(strSrf) Then Exit Sub ‘call offsetCalc function, offset disproPoint5 = offsetCalc(ar tance is ‘height’ Dim uDiv : uDiv = Rhino. proPoint1 = offsetCalc(arrData, 0) ‘call srfCurvature functi GetInteger(“divisions in U direction”, 5) second point Dim vDiv : vDiv = Rhino. ‘call srfCurvature function to calculate uvPoint = Array (u+((1/5) GetInteger(“divisions in V direction”, 5) second point arrData = srfCurvature (s uvPoint = Array (u,v+vstep) ‘call offsetCalc function arrData = srfCurvature (strsrf, uvPoint) tance is ‘height’ Dim uDomain : uDomain = Rhino. ‘call offsetCalc function, offset disproPoint6 = offsetCalc(ar SurfaceDomain(strsrf,0) tance is ‘height’ Dim vDomain : vDomain = Rhino. proPoint2 = offsetCalc(arrData, 0) uvPoint = Array (u,v) SurfaceDomain(strsrf,0) arrData = srfCurvature (s ‘call srfCurvature function to calculate ‘call offsetCalc function Dim ustep : ustep = uDomain(1)/uDiv second point tance is ‘height’ Dim vstep : vstep = vDomain(1)/vDiv uvPoint = Array (u+ustep,v) proPoint7 = offsetCalc(ar arrData = srfCurvature (strsrf, uvPoint) ‘Disable Redraw to speed up the execution ‘call offsetCalc function, offset dis‘add line of the script tance is ‘height’ Dim norm : norm = Rhino. ‘Rhino.EnableRedraw False proPoint3 = offsetCalc(arrData, 0) AddLine(proPoint1, proPoi

SCRIPT


ion to calculate Dim arrcrv1, arrcrv2 ,v+vstep) arrcrv1 = Array (proPoint1, proPoint5, strsrf, uvPoint) proPoint3) n, offset disarrcrv2 = Array (proPoint2, proPoint6, proPoint4) rrData, 0) ‘draw curves ion to calculate Dim crv1, crv2 )*ustep),v+vstep) crv1 = Rhino.AddCurve (arrcrv1) strsrf, uvPoint) crv2 = Rhino.AddCurve (arrcrv2) n, offset dis ‘divide curves rrData, 0) Dim divcrv1, divcrv2 ion to calculate divcrv1 = Rhino.DivideCurve (crv1, 4) divcrv2 = Rhino.DivideCurve (crv2, 4) )*ustep),v) strsrf, uvPoint) ‘get surface area n, offset disDim srfarea: srfarea = Rhino.SurfaceArea (strsrf) rrData, 0) Dim circ1, circ2 strsrf, uvPoint) circ1 = Rhino.AddCircle3Pt (divcrv1(1), n, offset disdivcrv2(2), divcrv2(1)) If IsNull(circ1) Then Exit Sub rrData, 1) circ2 = Rhino.AddCircle3Pt (divcrv1(2), divcrv1(3), divcrv2(3)) If IsNull(circ2) Then Exit Sub int7)

‘get circle radius Dim circ1rad, circ2rad circ1rad = Rhino.CircleRadius (circ1) circ2rad = Rhino.CircleRadius (circ2) ‘get circle center point Dim ctrcirc1, ctrcirc2 ctrcirc1 = Rhino.CircleCenterPoint (circ1) ctrcirc2 = Rhino.CircleCenterPoint (circ2) If circ1rad > 20 Then Rhino.DeleteObject (circ1) End If If circ2rad > 20 Then Rhino.DeleteObject (circ2) End If Rhino.HideObject strsrf Rhino.HideObject crv1 Rhino.HideObject crv2 Dim circdiv1, circdiv2 Dim circplin1, circplin2 circdiv1 = Rhino.DivideCurve (circ1, 3) circdiv2 = Rhino.DivideCurve (circ2, 3) Dim sph1, sph2 sph1 = Rhino.AddSphere (ctrcirc1, cir-

circ1rad*(3/2)) sph2 = Rhino.AddSphere (ctrcirc2, circ1rad*(4/3)) If circ1rad > 25 Then Rhino.DeleteObject (sph1) End If If circ2rad > 25 Then Rhino.DeleteObject (sph2) End If ‘Dim pt1, pt2, pt3, pt4 ‘pt1 = Rhino.GetPointOnSurface (sph1) ‘pt2 = Rhino.GetPointOnSurface (sph2) Dim lin1, lin2 Dim arrctrcirc1, arrctrcirc2 ‘lin1 = Rhino.AddLine (ctrcirc1, ProPoint7) ‘lin2 = Rhino.AddLine (ctrcirc2, ProPoint7) Dim spt1, spt2 spt1 = Rhino.SplitBrep (strsrf, sph1) spt2 = Rhino.SplitBrep (strsrf, sph2) ‘Rhino.HideObject (sph1) ‘Rhino.HideObject (sph2) ‘Rhino.HideObjects spt1(0)


FLOW DIAGRAM

DEFINE A UV GRID

DRAW CURVES FROM DEFINED POINTS ON THE UV GRID

DIVIDE THE CURVES INTO FOUR SECTIONS

CREATE TWO CIRCLES FROM TWO POINTS ON ONE CURVE AND ONE POINT ON THE OTHER CURVE

GET THE AREA OF THE SURFACE


GET THE CIRCLE RADIUS

DELETE ALL CIRCLES WITH A RADIUS GREATER THAN A FRACTION OF THE SURFACE AREA

GET THE CENTER POINT OF THE CIRCLE

HIDE THE SURFACE

CREATE SPHERES OF DIFFERENT SIZES BY MULTIPLYING THE CIRCLE RADIUS BY A SET VARIABLE


BY CHANGING THE DIVISIONS OF U AND V ON THE GRID DIFFERENT OUTCOMES ARE CREATED. *IN SOME CASES DUE TO THE SIZE OF THE FILE COMPUTERS WILL RUN OUT OF MEMORY BEFORE RENDERING THE IMAGE

3 X 5

3 X 2O

3 X 40

3 X 50

5 X 5


5 X 20

5 X 40

10 X 5

10 X 20

25 X 5

25 X 50*


FINAL RENDERINGS



JOHANN SEBASTIAN


N BACH INSTITUTE


OBJECTIVE TO CREATE AN INSTITUTE BY BLENDING A MORPHO GENETIC AND MORPHO DYNAMIC LOGIC TO CREATE A PLACE TO RESEARCH AND STUDY.


LAUSD HS NO.9

AHLMENSON THEATER

101 FREEWAY

101 FREEWAY VS. STREETS

SURROUNDING CIRCULATION

METRO STOPS

MARK TAPER FORUM

CATHEDRAL OUR LADY OF THE ANGELS

DORTHY CHANDLER PAVILLION

WALT DISNEY CONCERT HALL

MOCA


MORPHOGENETIC LOGIC CONDITIONALLY SPIRALING HELICO CIRCULATION

OBJECTIVE CHOOSE AN ALGORITHM AND APPLY IT TO ONE ELEMENT OF THE BUILDING DESIGN WITH SCALE IN MIND

SCRIPT Option Explicit ‘Script written by <Arielle Rouleau> ‘Script copyrighted by <USC Arch402al> ‘Script version Wednesday, October 07, 2009 2:19:14 PM Call Main() Sub Main() Dim constA, constB, Height, NumPoints, phi, rad, i, n Dim x, y, z constA = Rhino.GetReal(“Value of first variable (a)”, 1) constB = Rhino.GetReal(“Value of second variable (b)”, 1)

Dim c : c = 0 For i = 0 To UBound(points) Dim arrPts ‘activate these lines if you want something more regular x=i*rad/4 * Sin(phi*i) y=i*rad/2 * Cos(phi*i) z=i*Height

arrPointclt(c) = arrPts ‘counting +1 for each loop c = c +1 End If If x > 50 Then x = 50

‘leave these lines activat- Next ed if you like something messy; ‘finally drawing the curve ‘ but substitute ‘rnd’ fac- through the point collection tor with a logically if condition so that Rhino.AddInterpCurve arthe mess makes actually sense rPointclt ‘x=i*rad/4 * Sin(phi*i)*rnd ‘y=i*rad/2 * Cos(phi*i)*rnd ‘z=i* (1-Cos(phi))*rnd End Sub

arrPts = array(x,y,z) NumPoints = Rhino.GetInteger(“How many points should it run thru?”,50) If IsArray (arrPts) Then Height = Rhino.GetReal(“height”) ‘added a addpoint method to visualize your points Call Rhino.AddPoint(arrPts) phi = Rhino.GetReal(“Angle between ‘extending the size of arrPointclt which points (phi)”, 30) each loop rad = Rhino.GetReal(“Radius”, 10) ReDim Preserve arrPointclt(c) ‘collecting all points in arrPointclt(c) arrPointclt(c) = arrPts ReDim points(NumPoints - 1) ‘counting +1 for each loop c = c +1 ‘added a counter c


and b Function: r = a + bsin(Θ)

/ false

r = radius of the spiral a = turns the spiral (real number) b = distance of the circles offset from each other Θ = angle which the spiral turns

Q R sin F r

e R

F


TRUE / FALSE

GET REAL NUMBERS FOR THE VARIABLES A AND B

SET A LIMIT FOR THE FUNCTION

DEFINE AN ANGLE TO USE

DEFINE A RADIUS AND HEIGHT FOR THE CURVE


X = I * (RADIUS/4) * SIN(PHI * I)

Y = I * (RADIUS/2) * COS(PHI * I)

Z= I * HEIGHT

ADD AN INTERPOLATED CURVE ABOUT THE POINTS


HEIGHT=10

RADIUS=100

ANGLE=30

HEIGHT=10

RADIUS=100

ANGLE=45

HEIGHT=10

RADIUS=100

ANGLE=RND

HEIGHT=50

RADIUS=100

ANGLE=30

HEIGHT=50

RADIUS=100

ANGLE=45

HEIGHT=50

RADIUS=100

ANGLE=RND


HEIGHT=10

RADIUS=10

ANGLE=30

HEIGHT=10

RADIUS=10

ANGLE=45

HEIGHT=10

RADIUS=10

ANGLE=RND

HEIGHT=50

RADIUS=10

ANGLE=30

HEIGHT=50

RADIUS=10

ANGLE=45

HEIGHT=50

RADIUS=10

ANGLE=RND


PRELIMINARY IDEAS



MORPHODYNAMIC SCRIPT LOGIC Option Explicit SWELLING PIPES PROGRAM

OBJECTIVE CHOOSE AN ALGORITHM AND APPLY IT TO ANOTHER ELEMENT WHICH RELATES TO EITHER THE SITE OR THE PROGRAM

Dim crvDomain : crvDomain = Rhino. CurveDomain(crvObject) Dim t, n, l

l = RN(10, 100) written by <Arielle Rouleau> copyrighted by <USC Arch402al> Dim CrossSectionPlane version Friday, October 30, 2009 Dim crvCurvature, crvPoint, PM crvTangent, crvPerp, crvNormal Call Main() n = -1 Sub Main() ‘Script ‘Script ‘Script 3:01:53

crvNormal = Rhino. VectorCrossProduct(crvTangent, crvPerp)

Else

crvPoint = crvCurvature( crvTangent = crvCurvatur crvPerp = Rhino. VectorUnitize(crvCurvature(4)) crvNormal = Rhino. VectorCrossProduct(crvTangent, crvPerp)

For t = crvDomain(0) To Dim aObjects : aObjects = Rhino. crvDomain(1) + 1e-9 Step (crvDomain(1)GetObjects(“Select Curves”, 4, True, crvDomain(0))/intSamples End If False) Dim intSamples : intSamples = RhiDim dblBendRadius : no.GetInteger(“Number of Cross Sections”, dblBendRadius = random(10,20) CrossSectionPlane = Rhino. 50, 5) Dim dblPerpRadius : PlaneFromFrame(crvPoint, crvPer dblPerpRadius = random(10,20) crvNormal) Dim i ReDim Preserve arrCrossSections Dim arrCrossSections() n = n+1 arrCrossSections(n) = Rhino. AddEllipse(CrossSectionPlane, d For i = 0 To UBound(aObjects) crvCurvature = Rhino.dRadius, dblPerpRadius) Dim crvObject : crvObject = aObjects(i) CurveCurvature(crvObject, t) Next If ‘ define number of sections IsNull(crvCurvature) Then If n < 1 Then Exit Sub based On crv length ‘Dim dblSegments : dblSegcrvPoint = Rhino.EvaluateCurve(crvObject,Call Rhino.AddLoftSrf(arrC ments = Rhino.DivideCurveLength ( t)crvTangent = Rhino. rossSections)‘Call Rhino. aObjects(i), 1) CurveTangent(crvObject, t) DeleteObjects(arrCrossSections) ‘Dim intSamples : intSam crvPerp = Array(0,0,1) ples = UBound(dblSegments)


Department

Department

Department

(0) re(1)

Concert Hall

Department

Department

Department

Lobby Seminar Rooms

Department

Department

Department

Program on Spiral

Base Spiral

Program Grouping

rp,

s(n)

)

Perpendicular Radius

dblBen-

Bend Radius

Base Swell

Lobby Concert Hall Seminar Rooms Circulation Departments


CHOOSE A SPIRAL

DEFINE THE BEND RADIUS

DEFINE THE PERPENDICULAR RADIUS


CHOOSE NUMBER OF DIVISIONS

DRAW AN ELLIPSE AT CURVE DIVISION

LOFT ELLIPSES


DIVISIONS=10 bRAD=10-12

DIVISIONS=50 bRAD=10-12

DIVISIONS=100 bRAD=10-20

DIVISIONS=200 bRAD=10-20

DIVISIONS=100 bRAD=10-12

DIVISIONS=10 bRAD=10-50


DIVISIONS=200 bRAD=10-12

DIVISIONS=50 bRAD=10-50

DIVISIONS=10 bRAD=10-20

DIVISIONS=100 bRAD=10-50

DIVISIONS=50 bRAD=10-20

DIVISIONS=200 bRAD=10-50


PRELIMINARY IDEAS





FINAL DESIGN





Seminar Room

To Departments

Seminar Room

Seminar Room

To Bridge

Concert Hall

To Departments

Lobby

Plan 12

4

8

N


Office

Classroom

Department Common Area

Section 01

2

4

8



PROGRAM

PUBLIC VS. PRIVATE

PROGRAM VS. CIRCULATION


For j = 0 To secv Call mifunctionFrame(newpoint,newpoint2, Uparam = Udomain(0) + i* ((Udonewpoint3, np1) main(1) - Udomain(0))/secu) Vparam = Vdomain(0) + j* ((VdoNext Option Explicit main(1) - Vdomain(0))/secv) Next ‘Script written by <Arielle Rouleau> ‘here we “fix” the point On the curve ‘Script copyrighted by <USC Arch402al> arrpoint = Rhino. End Sub ‘Script version Wednesday, November 18, EvaluateSurface(strsurface, array(Uparam, 2009 3:07:03 PM Vparam)) Function mifunction (newpoint, newpoint2, newpoint3) Call Main() collec(i,j)=arrpoint Call Rhino.addSrfPt (array (newSub Main() Next point, newpoint2, newpoint3) ) Const rhObjectSurface = 8 Next End Function Dim strsurface, Udomain, Vdomain, Function mifunction (newpoint, np1, newUparam , Vparam, arrpoint , i , j, secu , Dim newpoint,newpoint2, newpoint3, np1, point2) secv frame Call Rhino.addSrfPt (array (newpoint, np1, newpoint2) ) secu = 20 End Function secv = 20

SCRIPT

For i = 0 To secu -1 Function mifunctionFrame(newpoint,newpoi ReDim collec(secu,secv) nt2, newpoint3, np1) ‘inputs strsurface = Rhino.GetObject (“sel For j = 0 To secv -1 ‘Dim Curve1: Curve1 = Rhino.Adthe surface”,rhObjectSurface) If isnull (strsurface) Then Exit dCurve (Array(newpoint,newpoint3, newnewpoint = collec (i,j) point2, np1, newpoint), 1) Sub ‘In Case i want To escape script Dim Curve2: Curve2 = Rhino.Ad ‘catch the surface the min And the newpoint2 = collec (i+1, j+1) dCurve (Array(newpoint,newpoint3, newmax In both directions u,v point2, np1, newpoint), 3) Udomain = Rhino. newpoint3 = collec ( i+1,j) SurfaceDomain(strsurface,0) ‘loft as usual Vdomain = Rhino. np1 = collec (i,j+1) ‘Call Rhino.AddLoftSrf(Array(Curve SurfaceDomain(strsurface,1) 1,Curve2)) ‘looping End Function For i = 0 To secu



This semester I plan on applying a spiral and swelling theory to the Johan Sebastian Bach Research Institute. Spirals appear all around in everyday life, from a paper clip on your desk to a headphone cord attached to your ear, spirals are everywhere. The definition of a spiral is “a plane curve traced by a point circling about the center but at increasing distances from the center” (Google Dictionary). Spirals though may also be vertical such as in old wall telephone cords. These types of spirals start at a point and have the same radial dimension yet just differ from each other in the z dimension. There are many different mathematical ways at coming about spirals each with their own set of rules and functions. The base spiral that I chose to use for this project is a helico-spiral. A helico spiral is derived from a parametric equation in a cylindrical coordinate system. In the x and y directions one may see a logarithmic spiral in plan. In plan z = 0, yet in my base spiral the z factor sets the floor height. In this function r and z are exponential functions of the parameter t and usually have the same base causing the center or similitude to be located at the origin point of the xyz coordinate system. By changing the values of Theta, r and z in the equation a different spiral may be achieved. Theta defines the angle of rotation in arithmetic progression and the radium r forms a geometric progression with the scaling factor of phi. I plan on using this spiral system spiraling mainly in circulation yet use this as a base system for incorporating skin, program, and tectonic systems. Due to the fact that there are an infinite number of types of spirals a different type can be applied to each system with out the monotony of using the same formation. In this I can apply this theory to all aspects of the building.

The algorithmic logic that I chose to partner spirals with is conditional recursion. This can be applied in the circulation system in ways such as if there is a room that has an occupancy of over 600 people it deserves another spiraling path either in or out of the space. The definition of an algorithm states that it is “a precise rule (or set of rules) specifying how to solve a problem” (Google Dictionary). Conditional recursion is then used to take the linearity of the spiral and make it nonlinear. Conditional recursion is practical in building design because whether the human psyche is conscious of it or not, the algorithmic logic is used almost in all elements of design and building code. Most codes read for every x amount of people or square feet y is needed. These conditional statements mirror many of those that we are able to script. Bach used conditionally recursioning spirals in his music especially when it came to pitch. In certain songs the pitch of the notes spirals up ever increasing until a limit is reached and the song ends. The morpho-dynamic logic applied to this institute is swelling. By taking a curve and expanding and contracting space within it allows program to be applied. This system is run using conditional recurrsion in conjunction with program space allowances. If a large programmatic element is needed the spiral will swell to encompass the space. These swollen tubes are then carved out to allow light and air to pass through the spaces. Like a seashell this project takes a spiral and expands it according to outside factors. Spaces are divided and swollen according to a set of parameters yet they still retain simplicity and beauty. By partnering these two ideas I believe that I will be able to create a successful space for people to come learn, research, and enjoy the work of Johann Sebastian Bach.



Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.