Download - the big pot of generating things
![Page 1: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/1.jpg)
...a story about modern architecture
![Page 2: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/2.jpg)
parametric architecture
![Page 3: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/3.jpg)
well...that all looks very nice...
...but how can you value architecture that results out of some computer calculations?
![Page 4: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/4.jpg)
hold on ...
is that actually architecture?
![Page 5: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/5.jpg)
I began studying architecture in 2003 at the Technical University in Vienna. My education focused on a very technical and structural part of design. Therefore, moving on with my studies I appropriated myself a quite structural approach towards architecture.
On the one hand, it has its positive and “realistic” attitudes, but on the other hand there is always a line that can’t be exceeded. The design can only go as far as my head can imagine its outcome.
I have always been fascinated by amazing modern architecture where its perception crosses the line of understanding. Maybe as a result, my opinion towards such concepts has been quite critical. Often I didn’t value these projects; be-cause I thought that architecture, which is designed by a computer, loses its origin.
![Page 6: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/6.jpg)
Therefore I want to challenge myself and start understanding that topic to actually be able to form an opinion about it.
Is parametric architecture the future of architecture?
You can’t ignore the changes of modern architecture...
![Page 7: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/7.jpg)
Last year I was chosen to go as an exchange student between RMIT University in Melbourne and Technical University in Vienna.
One reason why I wanted to take the opportunity to study at this particular university, was the possibility to explore a new approach towards the design process trough computer scripting.
I am very excited about possible outcomes, in particular, how my thinking regarding modern architecture may change. Maybe if I know this topic a little better, I can start to understand its structure and therefore its value to me changes.
![Page 8: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/8.jpg)
FIRST STEPS
![Page 9: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/9.jpg)
it all started with one little point
![Page 10: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/10.jpg)
Option Explicit'Script written by <martina hatzenbichler>'Script copyrighted by <martinsche corperation>'Script version Saturday, 7 March 2009 3:53:38 PM
Call DrawPoint()
Sub DrawPoint() Dim arrPoint(2) Dim i,k,j For i=0 To 9 For k=0 To 9 For j=0 To 9 arrPoint(0)=k arrPoint(1)=i arrPoint(2)=j
Call Rhino.AddPoint (arrPoint)
Next Next Next
End Sub
![Page 11: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/11.jpg)
Option Explicit'Script written by <martina hatzenbichler>'Script copyrighted by < martinsche corperation >'Script version Saturday, 7 March 2009 3:53:38 PM
Call DrawPoint()
Sub DrawPoint() Dim arrCenter(2) Dim i,k,j Dim dblRadius For i=0 To 9 For k=0 To 9 arrCenter(0)=k arrCenter(1)=i arrCenter(2)=0 If i<2 Or k<2 Then dblRadius=0.1*i
Call Rhino.AddSphere (arrCenter, dblRadius) End If
Next Next
End Sub
![Page 12: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/12.jpg)
Option Explicit'Script written by <martina hatzenbichler>'Script copyrighted by < martinsche corperation >'Script version Sunday, 8 March 2009 11:42:20 AM
Call Main()
Sub Main() Dim arrPoint(2) Dim i,j,k For i=0 To 9 For j=0 To 9 For k=0 To 9 arrPoint(0)=i*j arrPoint(1)=j*k arrPoint(2)=k*i Call Rhino.AddPoint (arrPoint) Next Next NextEnd Sub
![Page 13: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/13.jpg)
the points become lines ...
![Page 14: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/14.jpg)
![Page 15: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/15.jpg)
![Page 16: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/16.jpg)
![Page 17: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/17.jpg)
![Page 18: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/18.jpg)
![Page 19: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/19.jpg)
![Page 20: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/20.jpg)
![Page 21: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/21.jpg)
![Page 22: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/22.jpg)
![Page 23: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/23.jpg)
the lines form a grid ...
![Page 24: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/24.jpg)
![Page 25: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/25.jpg)
![Page 26: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/26.jpg)
the grid becomes a surface ...
- get user to pick a surface
- dublicate and subdivide edgecurves
- find the closest point on srf to edge- subdivision and extract isocurves in u-v direction
- create new srf with each isocurve - create a sphere in the middle of the new surfaces based on the curvature
![Page 27: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/27.jpg)
![Page 28: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/28.jpg)
![Page 29: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/29.jpg)
![Page 30: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/30.jpg)
- a facade of a building could place windows, its size depending on certain factors (sunlight, weather exposure etc.)
- a structure of a facade could break up where less is needed or when curved elements wouldn’t be appropriate (material - wood, too expensive, etc)
![Page 31: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/31.jpg)
Inspired by the book “tooling” by Aranda/Lasch
![Page 32: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/32.jpg)
SUBDIVISIONS
![Page 33: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/33.jpg)
- get user to pick an initial closed polyline
- split polyline in single curves - divide each line into certain segments
- loop trough each line to add new lines by connecting divisionpoints
- store them in dynamic array
- starting the script again until a certain generation is reached
![Page 34: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/34.jpg)
Option Explicit ‘Script written by <martina hatzenbichler> ‘Script copyrighted by <martinsche corperation> ‘Script version Montag, 13. April 2009 20:33:32 Call Main() Sub Main() Dim arrObject Dim dblGen,dblCurrentGen Dim dblProp If Not (Rhino.IsProcedure(“DynamicArrayProxy”)) Then Rhino.Command “-LoadScript DynamicArray.rvb” End If dblCurrentGen = 0 ‘get user input’
arrObject = Rhino.getObject(“pick a closed polyline”,4) dblProp = Rhino.GetInteger(“get Proportion”) dblGen = Rhino.GetInteger(“choose generation of subdivisions”) Call Rhino.EnableRedraw(False) ‘call recursive function’
Call RecursiveSubdivison(arrObject,dblGen,dblCurrentGen,dblProp) Call Rhino.EnableRedraw(True) End Sub Function RecursiveSubdivison(arrObject,dblGen,dblCurrentGen,dblProp) Dim arrCurves Dim arrDivisionPoints() Dim i Dim arrNewCurve Dim arrNewCurveClosed Dim arrNewCurveObject
first subdivision script
![Page 35: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/35.jpg)
If dblCurrentGen < dblGen Then Dim arrSecondCurvePoint Set arrSecondCurvePoint = New DynamicArray ‘explode this polyline into its single curves’ arrCurves= Rhino.ExplodeCurves(arrObject) ‘devide each polyline into 5 pieces’ For i=0 To Ubound(arrCurves) ReDim Preserve arrDivisionPoints(i) arrDivisionPoints(i) = Rhino.DivideCurve(arrCurves(i),dblProp) ‘store second point in dynamic array’ arrSecondCurvePoint.push (arrDivisionPoints(i)(1)) Next ‘to close polyline arrSecondCurvePoint.push (arrSecondCurvePoint.Data(0)) ‘convert dynamic array to ‘normal’ array arrSecondCurvePoint = arrSecondCurvePoint.DataArray ‘connect those new points with each other to form a new polyline’ If IsArray(arrSecondCurvePoint) Then arrNewCurve=Rhino.AddPolyline(arrSecondCurvePoint) Else Call Rhino.MessageBox(“screeeeeam”) End If ‘clean up Call Rhino.DeleteObjects(arrCurves) Else Exit Function End If dblCurrentGen = dblCurrentGen+1 Call RecursiveSubdivison(arrNewCurve,dblGen,dblCurrentGen,dblProp) End Function
![Page 36: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/36.jpg)
changing subdivisions, generations and connecting points
![Page 37: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/37.jpg)
subdivisions create curves
![Page 38: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/38.jpg)
applying created subdivisions to an object
![Page 39: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/39.jpg)
when subdivisons become 3d
![Page 40: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/40.jpg)
pick a closed polyline
![Page 41: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/41.jpg)
subdivide polyline until a certain generation
![Page 42: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/42.jpg)
create surfaces out of subdivisions
![Page 43: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/43.jpg)
add colourrange based on surface-area
![Page 44: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/44.jpg)
move surface based on surface-area
![Page 45: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/45.jpg)
arrSRFarea = Rhino.SurfaceArea (arrNewSrf(0)) dblSRFarea = abs (arrSRFarea(0)/1000) If dblSRFarea >= 255 Then Call Rhino.ObjectColor (arrNewSrf,RGB(1,0,0)) Else Call Rhino.ObjectColor(arrNewSrf, RGB(255-dblSRFarea,0,0))
End If
Call Rhino.MoveObject (arrNewSrf(0), array(0,0,0),array(0,0,dblSRFarea))
add colourrange
move surface
![Page 46: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/46.jpg)
initual curve
![Page 47: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/47.jpg)
top view
![Page 48: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/48.jpg)
perspective 1
![Page 49: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/49.jpg)
perspective 2
![Page 50: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/50.jpg)
a game ...
![Page 51: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/51.jpg)
starts with a polyline ...
![Page 52: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/52.jpg)
....50 generations, 2 divisions
![Page 53: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/53.jpg)
....20 generations, 8 divisions
![Page 54: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/54.jpg)
....100 generations, 50 divisions
![Page 55: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/55.jpg)
back <<<
![Page 56: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/56.jpg)
changing the playrules ...
![Page 57: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/57.jpg)
..to create a constant height and thickness
![Page 58: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/58.jpg)
![Page 59: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/59.jpg)
it then ...
![Page 60: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/60.jpg)
... becomes a staircase
![Page 61: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/61.jpg)
... with some structure
![Page 62: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/62.jpg)
![Page 63: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/63.jpg)
- get surfacevolume centroid of each surface
- draw a line from each centroid to c-plane
- loop trough the lines and create pipes
![Page 64: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/64.jpg)
Option Explicit 'Script written by <martina hatzenbichler> 'Script copyrighted by <martinsche corporation> 'Script version Tuesday, 14 April 2009 3:47:32 PM Call Main()
Sub Main() Dim arrObject Dim dblCurrent Dim dblMax Dim dblDiv Dim arrCurves Dim Nr Dim delete 'get user input' arrObject = Rhino.GetObject("pick a closed polyline",4) dblMax = Rhino.GetInteger("choose number of generation") dblDiv = Rhino.GetInteger("choose an equal(2 or 4 or 6 or 8 or 10...) number of division") 'exlode initual curve for subdivisions' arrCurves = Rhino.ExplodeCurves(arrObject) dblCurrent = 0 Nr = 0 If Not (Rhino.IsProcedure("DynamicArrayProxy")) Then Rhino.Command "-LoadScript DynamicArray.rvb" End If Call Rhino.EnableRedraw(False) Call Subdivisionsyeah(arrCurves,dblCurrent,dblMax,dblDiv,Nr) 'clean up' delete = Rhino.ObjectsByType(4) Call Rhino.DeleteObjects(delete) Rhino.EnableRedraw(True) End Sub
subdivisions ‘constant hight’ script
![Page 65: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/65.jpg)
Function Subdivisionsyeah(arrCurves,dblCurrent,dblMax,dblDiv,Nr) ‘if certain generation is reached exit function’ If dblCurrent >= dblMax Then Exit Function End If Dim arrSubdivision Set arrSubdivision = New DynamicArray Dim arrNewLine Dim arrSrfLines, arrLastSrfLines Dim arrSplitSrfLines, arrSplitLastSrfLines Dim arrNewSrf, arrNewLastSrf Dim i,j Dim arrDivPoints() Dim arrLastLine Dim arrSRFarea Dim dblSRFarea ‘divide all curves into certain number of subdivisions’ For i = 0 To Ubound(arrCurves) ReDim Preserve arrDivPoints(i) arrDivPoints(i) = Rhino.DivideCurve(arrCurves(i),dblDiv) Next ‘loop trough each line to create new line’ For j = 0 To (Ubound(arrCurves)-1) ‘firstlines’ arrNewLine = Rhino.AddLine(arrDivPoints(j)(1),arrDivPoints(j+1)(1)) arrSrfLines = Rhino.AddPolyline(array(arrDivPoints(j)(1),arrDivPoints(j+1)(0),arrDivPoints(j+1)(4),arrDivPoints(j)(1))) arrSplitSrfLines = Rhino.ExplodeCurves(arrSrfLines) arrNewSrf = Rhino.AddPlanarSrf (arrSplitSrfLines) arrSubdivision.Push (arrNewLine)
‘add colourgradient based on the surface area’ arrSRFarea = Rhino.SurfaceArea(arrNewSrf(0)) dblSRFarea = abs(arrSRFarea(0)/1000)
![Page 66: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/66.jpg)
If dblSRFarea >=255 Then Call Rhino.ObjectColor(arrNewSrf,RGB(1,0,0)) Else Call Rhino.ObjectColor(arrNewSrf,RGB(255-dblSRFarea,0,0)) End If ‘increase hight and move surface’ Nr=Nr+10 Call Rhino.MoveObject (arrNewSrf(0), array(0,0,0),array(0,0,Nr)) ‘clean up’ Call Rhino.DeleteObjects(arrSplitSrfLines) Next ‘lastline’ arrLastLine = Rhino.AddLine(arrDivPoints(Ubound(arrDivPoints))(1),arrDivPoints(0)(1)) arrLastSrfLines = Rhino.AddPolyline(array(arrDivPoints(Ubound(arrDivPoints))(1),arrDivPoints(Ubound(arrDivPoints))(dblDiv), arrDivPoints(0)(1),arrDivPoints(Ubound(arrDivPoints))(1))) arrSplitLastSrfLines = Rhino.ExplodeCurves(arrLastSrfLines) arrNewLastSrf = Rhino.AddPlanarSrf (arrSplitLastSrfLines) arrSubdivision.Push (arrLastLine) arrSRFarea = Rhino.SurfaceArea(arrNewLastSrf(0)) dblSRFarea = abs(arrSRFarea(0)/1000) ‘add colourgradient based on the surface area’ If dblSRFarea >=255 Then Call Rhino.ObjectColor(arrNewLastSrf,RGB(1,0,0)) Else Call Rhino.ObjectColor(arrNewLastSrf,RGB(255-dblSRFarea,0,0)) End If
![Page 67: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/67.jpg)
‘move surface’ Call Rhino.MoveObject (arrNewLastSrf(0), array(0,0,0),array(0,0,Nr)) Call Rhino.DeleteObjects(arrSplitLastSrfLines) arrSubdivision = arrSubdivision.DataArray ‘clean up’ Call Rhino.DeleteObjects(arrCurves) dblCurrent = dblCurrent+1 Call Subdivisionsyeah(arrSubdivision,dblCurrent,dblMax,dblDiv,Nr) End Function
![Page 68: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/68.jpg)
![Page 69: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/69.jpg)
script to create structure for each polysurface
Option Explicit'Script written by <Martina Hatzenbichler>'Script copyrighted by <martinsche corporation>'Script version Friday, 29 May 2009 5:21:06 PM
Call Main()Sub Main() Dim arrSubdivision Dim i Dim arrCentroid Dim arrStrunctureLine Dim pipeRadius Dim STRLines Set STRLines = New DynamicArray 'get user input' arrSubdivision = Rhino.Getobjects ("get polysurfaces",(16)) pipeRadius = Rhino.GetReal("Enter radius of pipestructure") Call Rhino.EnableRedraw(False) 'loop trough each polysurface'
For i=0 To Ubound(arrSubdivision) 'get objects centroid' arrCentroid = Rhino.SurfaceVolumeCentroid (arrSubdivision(i)) 'draw a line from the centroid of each object to groundlevel and store in dynamic array' arrStrunctureLine = Rhino.AddLine(arrCentroid(0), array(arrCentroid(0)(0),arrCentroid(0)(1),(0))) STRLines.Push (arrStrunctureLine) Next STRLines = STRLines.DataArray Call PipeAll(STRLines,pipeRadius) Call Rhino.EnableRedraw(True) End Sub
![Page 70: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/70.jpg)
Function PipeAll(STRLines,pipeRadius)
Dim Str Dim i 'loop trough each line and create pipe' For i=0 To Ubound(STRLines) Rhino.SelectObject STRLines(i) Str = CStr("Pipe Enter " & pipeRadius & " " & pipeRadius & " Enter") Rhino.Command Str Rhino.UnselectAllObjects Next
End Function
![Page 71: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/71.jpg)
it then becomes a building
![Page 72: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/72.jpg)
... or a pavillion
![Page 73: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/73.jpg)
![Page 74: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/74.jpg)
... or a sculpture
![Page 75: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/75.jpg)
when subdivisons become architecture
![Page 76: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/76.jpg)
pick an outline ...
![Page 77: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/77.jpg)
create a constant height
![Page 78: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/78.jpg)
offset surfaces to create a thickness
![Page 79: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/79.jpg)
add a structure to each created plattform
![Page 80: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/80.jpg)
![Page 81: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/81.jpg)
![Page 82: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/82.jpg)
when subdivisons become a city
![Page 83: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/83.jpg)
London
Toronto
San Francisco
RomeCopenhagen
New York
basic city grids
![Page 84: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/84.jpg)
subdividing the subdivisions
... to offer the possibility of growth
![Page 85: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/85.jpg)
![Page 86: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/86.jpg)
![Page 87: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/87.jpg)
the subdivisions change their behaviour based on certain attractors
![Page 88: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/88.jpg)
the created subdivisions which are not intersecting with any attractors
- stop intersecting
![Page 89: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/89.jpg)
the created subdivisions which are not intersecting with any attractors - stop intersecting - are deleted
![Page 90: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/90.jpg)
pick a cityoutline and attractors
mainstreet, important citypoint, rivers, etc
![Page 91: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/91.jpg)
dividing towards attractors until certain srf-area
![Page 92: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/92.jpg)
delete surfaces if not intersecting any attractor
![Page 93: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/93.jpg)
create a ‘tower’ in the center of each surface depending on srf area
a possible value-based placeholder for later input
![Page 94: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/94.jpg)
from each surface a tower is created
its size is shaped depending on surface-area (towers might intersect with each other)
![Page 95: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/95.jpg)
towers are only created if area stopped intersecting
to avoid towers to intersect with each other
![Page 96: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/96.jpg)
![Page 97: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/97.jpg)
comparison
1
2
![Page 98: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/98.jpg)
pick your own towerbase
![Page 99: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/99.jpg)
arrObject = Rhino.GetObjects(“pick the outline of a city”,4) arrAttractorCrv = Rhino.GetObjects(“pick an attractor curve”) dblMin = Rhino.GetInteger(“choose min surface area”) arrTowerBase=Rhino.GetObjects(“pick an outline for the towerbase”)
user input
![Page 100: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/100.jpg)
![Page 101: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/101.jpg)
Function towers(towerBases,arrTowerBase) Dim obj Dim arrSplitPolyline Dim arrCentr Dim arrpath Dim arrTower Dim dblLevel Dim arrTowerBaseCentr Dim arrCopyTowerBase Dim arrTowerBaseSrf arrTowerBaseCentr = Rhino.CurveAreaCentroid (arrTowerBase) dblLevel=10 'get info for tower----lots of info' For Each obj In towerBases dblLevel=dblLevel+1
arrCentr=Rhino.CurveAreaCentroid(obj) arrCopyTowerBase = Rhino.CopyObject(arrTowerBase(0),arrTowerBaseCentr(0),arrCentr(0)) 'draw tower based on the slected crv' arrSplitPolyline = Rhino.ExplodeCurves(arrCopyTowerBase) arrTowerBaseSrf= Rhino.AddPlanarSrf (arrSplitPolyline) 'add path to extrude surface to form tower' arrpath = Rhino.AddLine(array(0,0,0),array(0,0,dblLevel)) arrTower = Rhino.ExtrudeSurface (arrTowerBaseSrf(0), arrpath,True) 'clean up ' Call Rhino.DeleteObjects(arrSplitPolyline) Call Rhino.DeleteObject(obj) Call Rhino.DeleteObject(arrpath) Call Rhino.DeleteObjects(arrTowerBaseSrf) Next End Function
‘pick your own tower-base’ function
![Page 102: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/102.jpg)
sections
![Page 103: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/103.jpg)
![Page 104: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/104.jpg)
pick a different ‘tower-base’
..here the script can interact with other scripts
![Page 105: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/105.jpg)
![Page 106: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/106.jpg)
uniform tower height
![Page 107: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/107.jpg)
a city ...
![Page 108: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/108.jpg)
![Page 109: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/109.jpg)
![Page 110: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/110.jpg)
![Page 111: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/111.jpg)
![Page 112: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/112.jpg)
...when subdivisions create parks, courtyards and towers
![Page 113: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/113.jpg)
arrTowerBase = Rhino.ScaleObject (arrSRF(0), arrC(0),array(0.2,0.2,0.2)) arrTowerBasearea = Rhino.SurfaceArea(arrTowerBase) If arrTowerBasearea(0) > 1000 Or arrTowerBasearea(0) < 100 Then 'if area too big, add a park' If arrTowerBasearea(0) > 1000 Then Rhino.CurrentLayer ("Park") arrpath = Rhino.AddLine(array(0,0,0),array(0,0,10)) arrBaseCourtyard = Rhino.ScaleObject (arrSRF(0), arrC(0), array(4,4,0)) arrBlockCourtyard = Rhino.ExtrudeSurface (arrBaseCourtyard, arrpath,True) 'clean' Call Rhino.DeleteObject(arrpath) Call Rhino.DeleteObject(arrBaseCourtyard) End If 'if area too small, add a tower' If arrTowerBasearea(0) < 100 Then Rhino.CurrentLayer ("Tower") arrpath = Rhino.AddLine(array(0,0,0),array(0,0,sqr(dblLevel)*10)) arrBaseCourtyard = Rhino.ScaleObject (arrSRF(0), arrC(0), array(4,4,0)) arrBlockCourtyard = Rhino.ExtrudeSurface (arrBaseCourtyard, arrpath,True) 'clean' Call Rhino.DeleteObject(arrpath) Call Rhino.DeleteObject(arrBaseCourtyard) End If 'else add a courtyard kind of building' Else Rhino.CurrentLayer ("Courtyard") arrpath = Rhino.AddLine(array(0,0,0),array(0,0,sqr(dblLevel)*8)) arrTower = Rhino.ExtrudeSurface (arrTowerBase, arrpath,True) 'draw courtyard block based on srf area arrBaseCourtyard = Rhino.ScaleObject (arrSRF(0), arrC(0), array(4,4,0)) arrBlockCourtyard = Rhino.ExtrudeSurface (arrBaseCourtyard, arrpath,True) ' cut out towerbase from courtyardblock to form courtyard...and therefore street, towerblock and each courtyard' arrCourtyard = Rhino.BooleanDifference (array(arrBlockCourtyard), array(arrTower),True) End If
...parks
...towers
...courtyard-buildings
based on the surface area, the city-divider creates...
![Page 114: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/114.jpg)
pick a city outline
![Page 115: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/115.jpg)
get attractor curves
![Page 116: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/116.jpg)
subdivide until certain srf-area
![Page 117: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/117.jpg)
created towers
![Page 118: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/118.jpg)
created courtyard-buildings
![Page 119: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/119.jpg)
created parks
![Page 120: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/120.jpg)
resulting city-structure
![Page 121: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/121.jpg)
The ‘city-divider’-script offers the possibility to create various cities with different densities.The script is built up on certain user inputs.
The user is asked to pick a city outline and then some attractors - curves which are intersecting with the cityoutline.The attractor-curves can represent mainroad systems, rivers or important areas in the city such as city cent-ers, buisness districts, housing areas etc.The user decides on a minimum surface area at which the script stops intersecting.
Now, the script starts to create certain building typologies based on the respective surface areas. it loops through each polyline and; If the area is too big, it creates a park, with minimal constant height, If the area is too small, it creates a tower, with height increasing the closer to an attractor, Otherwise, creates typical city buildings with a courtyard, with less variance within height differences.
This values can be changed easily in the script to create different values within a city. Trough changing the heights of each buildingtype or the value that creates them, the ‘city-divider’ can create
- greener cities or denser cities - city centers with office towers or family based housing districts etc.
‘city-divider’
![Page 122: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/122.jpg)
‘city-divider’ script
Option Explicit'Script written by <martina hatzenbichler>'Script copyrighted by <martinsche corporation>'Script version Samstag, 16. Mai 2009 10:58:56
Call Main() Sub Main() Dim arrObject Dim dblCurrent Dim dblMin Dim arrAttractorCrv 'get user input' arrObject = Rhino.GetObjects("pick the outline of a city",4) arrAttractorCrv = Rhino.GetObjects("pick an attractor curve") dblMin = Rhino.GetInteger("choose min surface area") dblCurrent = 0 If Not (Rhino.IsProcedure("DynamicArrayProxy")) Then Rhino.Command "-LoadScript DynamicArray.rvb" End If Rhino.EnableRedraw(False) Call subdivisioncitymap(arrObject,dblMin,arrAttractorCrv)
Rhino.EnableRedraw(True)
End Sub
Function subdivisioncitymap(arrObject,dblMin,arrAttractorCrv) Dim arrCentroid Dim arrCurves Dim arrCurveMidPoint() Dim arrPolyline Dim i, obj Dim arrCurvePts Dim arrPolylines Dim dblCurrent Dim arrCheckIntersection Dim dblIntersections Dim LayerJames
![Page 123: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/123.jpg)
Dim bla Set bla = New DynamicArray Dim towerBases Set towerBases = New DynamicArray If Not IsNull(arrObject) Then ‘looping trough all attractors and check for any intersecting’ For Each obj In arrObject dblIntersections=0 For i=0 To Ubound(arrAttractorCrv) arrCheckIntersection= Rhino.CurveCurveIntersection (obj,(arrAttractorCrv(i))) If Not IsNull(arrCheckIntersection) Then dblIntersections=dblIntersections+1 End If Next If Not dblIntersections=0 Then ‘ thats the important bit i turned off or on’ ‘Call Rhino.DeleteObject(obj) bla.Push (obj) Else towerBases.Push (obj) End If Next ‘looping trough each subdivision which “pass” the test of area and intersection’ arrObject=bla.DataArray bla.flush For Each obj In arrObject ‘get the midpoint of the closed polyline citything’ arrCentroid = Rhino.CurveAreaCentroid (obj) ‘get the endpoints the curves is made out of’ arrCurvePts =Rhino.CurveEditPoints (obj)
![Page 124: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/124.jpg)
‘take your curve and split it into its lines’ arrCurves = Rhino.ExplodeCurves(obj) ‘get the midpoint of each line’ For i=0 To (Ubound(arrCurves)) ReDim Preserve arrCurveMidPoint(i) arrCurveMidPoint(i) = Rhino.CurveMidPoint(arrCurves(i)) Next ‘connect each midpoint of each line with the center’ For i=0 To (Ubound(arrCurves)-1) arrPolyline = Rhino.AddPolyline(array(arrCurveMidPoint(i),arrCurvePts(i+1),arrCurveMidPoint(i+1),arrCentroid(0), arrCurveMidPoint(i))) dblCurrent = Rhino.CurveArea(arrPolyLine) ‘check if the area is too small If dblCurrent(0) < dblMin Then Call Rhino.DeleteObject(arrPolyLine) Else bla.Push (arrPolyline)
End If Next ‘last polyline’ arrPolyline = Rhino.AddPolyline(array(arrCurveMidPoint(Ubound(arrCurveMidPoint)),arrCurvePts(0),arrCurveMidPoint(0), arrCentroid(0),arrCurveMidPoint(Ubound(arrCurveMidPoint)))) ‘check if the area is too small If dblCurrent(0) < dblMin Then
Call Rhino.DeleteObject(arrPolyLine) Else bla.Push (arrPolyline) End If Next ‘cleaning’ Call Rhino.DeleteObjects(arrCurves)
arrPolylines=bla.DataArray ‘this is veeeery important...either to turn it off or on->subdiv the subs or not’ ‘bla.flush
![Page 125: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/125.jpg)
Call subdivisioncitymap(arrPolylines,dblMin,arrAttractorCrv) Rhino.AddLayer (“Layer_James Layer”) Rhino.CurrentLayer(“Layer_James Layer”) towerBases=towerBases.DataArray Call towers(towerBases) End If End Function
Function towers (towerBases)
creates towers, buildings with courtyards and parks based on surfaces area. This part is changed easely and therefore different city patterns are created
![Page 126: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/126.jpg)
![Page 127: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/127.jpg)
![Page 128: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/128.jpg)
![Page 129: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/129.jpg)
...when subdivisions create city districts
![Page 130: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/130.jpg)
pick city district outlines
![Page 131: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/131.jpg)
get attractor curves
attractor curve (water way, road)
attractor area(places of interest)
![Page 132: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/132.jpg)
subdivide until certain srf-area
![Page 133: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/133.jpg)
create city based on certain rules
![Page 134: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/134.jpg)
![Page 135: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/135.jpg)
![Page 136: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/136.jpg)
![Page 137: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/137.jpg)
SCRIPTING BESIDE CITIES
![Page 138: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/138.jpg)
i can’t believe that i am actually having fun with writing scripts for computers ...
![Page 139: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/139.jpg)
...scripting brithday presents
![Page 140: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/140.jpg)
![Page 141: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/141.jpg)
![Page 142: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/142.jpg)
![Page 143: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/143.jpg)
...created subdivisions become a facade-structure
![Page 144: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/144.jpg)
![Page 145: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/145.jpg)
![Page 146: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/146.jpg)
ideas of scripting architecture
![Page 147: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/147.jpg)
![Page 148: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/148.jpg)
TOOLING EMERGENT URBANISM
BUILDING HIGHT or `tenging’
STREET WIDTH or `width of the street ‘
CONNECTED FACILITIES or `salt and pepper’
FACADE SUN LOUVRES or `shading’
toolbar for emergent urbanism
![Page 149: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/149.jpg)
TOOL DESCRIPTION
![Page 150: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/150.jpg)
My approach towards architecture and modern technology has changed a lot since I have immersed myself in the topic.
It has made me understand that there is a lot more behind it then just letting the computer design for you. Without the process of the architects consideration and manual intervention it just remains a computer program without any use.The basic idea, how the system developes and what possible outcomes it might pro-vide, still has to come from the designer themselves.
It’s a new language that is, at the beginning, quite hard to learn, but once you un-derstand the basic rules, it becomes a very interessting and useful design tool that offers a much broader approach towards architecture.
![Page 151: the big pot of generating things](https://reader034.vdocuments.site/reader034/viewer/2022051421/568bd6371a28ab20349b427e/html5/thumbnails/151.jpg)
written byMartina HatzenbichlerStudentnr. 3242104
Strange ProceduresTim Schork, Paul Minifie