ENTROPIED POROSITY
based on order and disorder in grid cities, a systemic taxonomy of performance logic is invented to perform at multiple scale in creating an active urban space
01
EMERGENT PATTERNS
SHAWN YEE SHIONG PANG STUDIO PLA CATALA
02
AVOIDING A WALL CITY
Brooklyn’s soul and character is about the people and the ground through its multiplicity and diversity coupled with the connecting threads of culture, commerce and social as well as the connection to the larger urban fabric and networks to the five boroughs. Future urban planning and architecture of the Atlantic Yards needs to respond to these set of conditions. The ground plane becomes the medium from which one operates design-wise. An active living city tracks and regulates the flow of people as well as distorts and reorganizes itself to fit and accomodate the act of living and inhabiting. The city, now, can be organized according to emergent qualities of the flow of pedestrian that in turn distorts the underlying orthogonal grid of the site. The entropied moments of the protoblocks are marked by the high points, signalling the order and disorder that are inherent in active living cities. These moments become formalized and reorganizes itself through environmental factors as well as views towards and from Manhattan, becoming modern urban placemarkers for Brooklyn of the 21st century.
04
LEARNING FROM GRID CITIES
A taxonomy of performance logic is designed and deployed in the form and performance of a series of so-called protoblocks that can be molded and modified through changes of time and technology.
BROOKLYN
Brooklyn_Vanderbilt Yards
SHAWN YEE SHIONG PANG STUDIO PLA CATALA
MANHATTAN, Penn Station
The protoblock will operate on 3 distinct elements: Corner, Grid and Ground
MANHATTAN, Central Park
Manhattan_Central Park
CORNER, GRID AND GROUND
SAN FRANCISCO
DUBAI
Dubai
03
LOS ANGELES
OPERATIONS > Spatialized Corner Condition that is either filled or eroded > Porous and performative ground condition > A highly ordered structure and organization that is distorted by site forces
From analyzing precedents of grid cities around, we are able to discern certain formative logic of cities and discover the rules and regulations that govern the organization of the city. 6 variables that have ties that bind the cities together are : grid measurements, grid geometry, block size, block grid, block porosity and corner conditions
40’
2-2
60’
3-3
<20’ variable
ROAD WIDTH GRID GEOMETRY URBAN BLOCK
10’
1
30’
1-1
60’
2-2
BLOCK POROSITY
1-P
30’
1-1
65’
2-2
80’
3-3
100’ P-3-3-P
Rigid vs. Natural
unchanged by diagonal
Rigid
Manhattan_Penn Station
Combinatory Performance
transformed by diagonal
Transformative
ROAD WIDTH
120’ 4-4
BLOCK GRID CORNER CONDITIONS
20’
unchanged by diagonal
San Francisco
4-4
3-3
40’
2-2
60’
3-3
120’ 4-4 400’ S-8-M-8-S
GRID GEOMETRY URBAN BLOCK
Fractalized
Rigid, Funneling
Los Angeles
90’
60’
transformed by diagonal
Brooklyn_Vanderbilt Yards
P-2-2-P
2-2
Manhattan_Central Park
60’
40’
Manhattan_Penn Station
P-1-1-P
San Francisco
40’
06
LEARNING FROM GRID CITIES: GRID GEOMETRY
Los Angeles
1-1
Manhattan_Central Park
30’
Brooklyn_Vanderbilt Yards
SHAWN YEE SHIONG PANG STUDIO PLA CATALA
Dubai
LEARNING FROM GRID CITIES : ROAD WIDTH
Dubai
05
BLOCK GRID CORNER CONDITIONS BLOCK POROSITY
b
i
xi
xj
j
a
xa
X times
Manhattan_Penn Station
3b
3b
2b
a
Manhattan_Central Park
a
a
b
San Francisco
y
Brooklyn_Vanderbilt Yards
x+y+z = a
a
x+y = a x
Manhattan_Central Park
b
a b
z
Manhattan_Penn Station
2b
b
y
San Francisco
a
x
Brooklyn_Vanderbilt Yards
a
08
LEARNING FROM GRID CITIES: BLOCK GRID
SHAWN YEE SHIONG PANG STUDIO PLA CATALA
LEARNING FROM GRID CITIES: URBAN BLOCK
b
xb
ROAD WIDTH
ROAD WIDTH
2b xb
X times X times
xb a
CORNER CONDITIONS BLOCK POROSITY
b
X times
b
URBAN BLOCK
2b
Los Angeles
BLOCK GRID
b
GRID GEOMETRY
a
a
xa
Dubai
URBAN BLOCK
xa
a
a
Los Angeles
GRID GEOMETRY
Dubai
07
BLOCK GRID CORNER CONDITIONS BLOCK POROSITY
SHAWN YEE SHIONG PANG STUDIO PLA CATALA
10
90%
70%
Manhattan_Penn Station
90%
San Francisco
40%
80%
60%
Brooklyn_Vanderbilt Yards
Manhattan_Penn Station San Francisco
20%
Manhattan_Central Park
Brooklyn_Vanderbilt Yards
LEARNING FROM GRID CITIES: BLOCK POROSITY
Manhattan_Central Park
LEARNING FROM GRID CITIES: CORNERS
100%
ROAD WIDTH
ROAD WIDTH
GRID GEOMETRY
GRID GEOMETRY
URBAN BLOCK
BLOCK POROSITY
0%
80%
20%
100%
Los Angeles
CORNER CONDITIONS
Dubai
BLOCK GRID
Los Angeles
URBAN BLOCK
Dubai
09
BLOCK GRID CORNER CONDITIONS BLOCK POROSITY
11
VERTICALITY VS. POROSITY
SHAWN YEE SHIONG PANG STUDIO PLA CATALA
12
PROGRAMMING: DEGREES OF FREEDOM
RECREATION 4% COMMUNITY 4% RETAIL 8%
4
OFFICE 12% INFRASTRUCTURE 12%
GREEN 1 cell
HOUSING 60%
RETAIL 1 cell
RETAIL 1 cell
3
COMMUNITY 1 cell
210’
COMMUNITY 1 cell
RETAIL 1 cell
GREEN 2 cell
210’
1 basic cell
2 GREEN 2 cells
RETAIL 3 cells
COMMUNITY 2 cells
PROTOBLOCK = 1 acre, 7.1 FAR A strategy of basic building cells is used to populate the one acre protoblock. The smallest cell is 30’x30’ block, based on the ideal size of a small housing unit as well as NY ventilation rule. The aggregation of higher orders are combined to create other programs. Green spaces occur on each magnitude to act as a counterbalance to the built elements.
1 HOUSING 220 cells
GREEN 4 cells
COMMUNITY 2 cells
RETAIL 8 cells
OFFICE 42 cells
INFRASTRUCURE 30 cells
-1
20%
30%
40%
50%
60%
70%
80%
90%
14
FORM MAKING!
SHAWN YEE SHIONG PANG STUDIO PLA CATALA
100%
tool >>> POROSITY SCRIPT
GROUND PROFILE
Option Explicit ‘Script written by <carlos de la Barrera / designemergente@gmail.com> ‘Script copyrighted by <www.designemergente.org> ‘Script version jueves, 22 de enero de 2009 22:32:24 ‘Modified by Shawn Y.S. Pang
10%
Call Main() Sub Main()
20% 30% 40% 50%
GROUND PROFILE
10%
POROSITY GRADIENT
Dim Box, M(2) ‘two arrays (the error was here, now is fixed) Dim size Dim i, j, k Dim X, Y, Z ‘the number of boxes in cartesian coordinates ‘by default (feel free to change this values) X = 15 Y=2 Z=0 ReDim arrMatrix(X, Y, Z) ‘in arrMatrix we will store all the boxes ‘we need to select objects to copy in a random way Box = Rhino.GetObject(“select one object to start the population”) If IsNull (Box) Then Exit Sub size = MyFuncCalc(Box) ‘now we call a function to calculate the boundaries of the objects ‘we don’t like superpositions ‘to perform the differents calculations and get speed we use the enableRedraw() ‘ so be patient... during the calculus Call Rhino.EnableRedraw(False) For i = 0 To X For j = 0 To Y For k = 0 To Z M(0) = CInt(i) * size(0) M(1) = CInt(j) * size(1) M(2) = CInt(k) * size(2) arrMatrix(i, j, k) = Rhino.CopyObject (Box, Array(0,0,0), M) ‘copy the objects Next Next Next
ROOF PROFILE
60%
Call Rhino.EnableRedraw(True) ‘so we need another nested, nested loop to pass over each box For i = 0 To X For j = 0 To Y For k = 0 To Z ‘we have a X% chance to delete an object If Rnd < .4 Then Call Rhino.DeleteObject(arrMatrix(i, j, k)) End If Next Next Next End Sub
70% 80% 90% 100%
ROOF PROFILE
13
Function MyFuncCalc(A) ‘enter an array
Combinations of Porosity are tested with scripting to create a multitude of unexpected and varying options as a way to generate and iterate through form-making.
End Function
Dim Bound, BSize(2) ‘again, two arrays Bound = Rhino.BoundingBox(A) ‘find the boundig of the objects BSize(0) = Rhino.Distance(Bound(0), Bound(1)) ‘calc the distance from a new point BSize(1) = Rhino.Distance(Bound(0), Bound(3)) BSize(2) = Rhino.Distance(Bound(0), Bound(4)) MyFuncCalc = Bsize ‘return the point with new coordinates
One Cell
15
INHABITING THE CORNERS
Linear 2 Cell
Linear 4 Cell
Four Square
Wrap Corner
Nine Squares
16
LIFTING THE GROUND
SHAWN YEE SHIONG PANG STUDIO PLA CATALA One Cell
One Cell
Linear 2 Cell
Linear 4 Cell
Four Square
Wrap Corner
Nine Squares
tool >>> SURFACE, BOX, LIFT SCRIPT Linear 4 Cell Linear 2 Cell
Nine Squares
One Cell
Option Explicit ‘Script partly written by <FOB> ‘Script partly copyrighted by <inmatesincharge.com> ‘Script modified by Kera Lagios and Shawn Y.S. Pang ‘Script version Teusday, Feb 14, 2008 4:00:25 PM Call Main() Sub Main() Dim x, y, z ‘These are the box x, y and z dimensions Dim box, boxx, boxy, boxz ‘These are the origin points for each box Dim arrboxpt(7),arrCorners Dim i ‘ defining height, width and depth of boxes x = 30 y = 30 z = 12
Linear 4 Cell
Four Square
Linear 2 Cell
Four Square
Dim idSurface : idSurface = Rhino.GetObject(“Surface to Panelize”,8, True, True) If IsNull(idSurface) Then Exit Sub
Linear 2 Cell
Wrap Corner
Dim intCountU : intCountU = Rhino.GetInteger(“Number of divisions per U direction”, 6, 2) If IsNull(intCountU) Then Exit Sub Wrap Corner
Dim intCountV : intCountV = Rhino.GetInteger(“Number of divisions per V direction”, 6, 2) If IsNull(intCountV) Then Exit Sub
One Cell
CORNER TYPES Linear 4 Cell
Dim uDomain : uDomain = Rhino.SurfaceDomain(idSurface, 0) Dim vDomain : vDomain = Rhino.SurfaceDomain(idSurface, 1) Dim uStep : uStep = (uDomain(1) - uDomain(0)) / intCountU Dim vStep : vStep = (vDomain(1) - vDomain(0)) / intCountV Dim arrUV(1) Dim arrPts() Dim u, v, j, k
Nine Squares
j=0 k=0
Four Square
Wrap Corner
Nine Squares
For u = uDomain(0) To (uDomain(1) + 1e-8) Step uStep For v = vdomain(0) To (vDomain(1) + 1e-8) Step vStep ReDim Preserve arrPts(j+k) arrPts(j+k) = Rhino.EvaluateSurface (idSurface, Array(u,v)) k=k+1 Next Next Rhino.AddPoints arrPts For i = 0 To Ubound (arrPts) boxx = arrPts(i)(0)-(.5*x) boxy = arrPts(i)(1)-(.5*y) boxz = arrPts(i)(2) ‘ setting all the corners of the box arrboxpt(0) = Array(boxx, boxy, boxz) arrboxpt(1) = Array(boxx+x, boxy, boxz) arrboxpt(2) = Array(boxx+x, boxy+y, boxz) arrboxpt(3) = Array(boxx, boxy+y, boxz) arrboxpt(4) = Array(boxx, boxy, boxz+z) arrboxpt(5) = Array(boxx+x, boxy, boxz+z) arrboxpt(6) = Array(boxx+x, boxy+y, boxz+z) arrboxpt(7) = Array(boxx, boxy+y, boxz+z) ‘ array of all 8 corners arrCorners = array (arrboxpt(0), arrboxpt(1), arrboxpt(2), arrboxpt(3), arrboxpt(4), arrboxpt(5), arrboxpt(6), arrboxpt(7)) box = Rhino.AddBox (arrCorners) Next End Sub
17
DIAGONAL ENTROPY
SHAWN YEE SHIONG PANG STUDIO PLA CATALA
5
Diagonal: Longest line, fastest route
Using public program and pedestrian flow as disruptors in a stable system, variations, differences and mutations are created formally and programatically. The path of the disruptors are along the diagonal as it can both provide the longest facade wall, while being the fastest route between two points.
18
PROTOBLOCKS
Top:
The form-making of the protoblocks follows a recipe that can fluctuate from a highrise form to a strip of low rise while maintaining the same logic of performance
20 % Porosity
4
Middle: 60 % Porosity
3
Ground: 30 % Porosity
2
Lifting of Corners
1
Defining a Regular Grid
7X7
5X10
3X16
TALL
MEDIUM
LOW
19 NETWORKS AND RELATIONSHIPS TO THE CITY TO MANHATTAN, BROOKLYN BRIDGE
SHAWN YEE SHIONG PANG STUDIO PLA CATALA
OCCUPYING THE SITE
20
ATLANTIC CENTER MALL
ATLANTIC AVE STATION (2,3, 4, 5, B, Q) CLINTON /WASHINGTON STATION (C)
TO PROSPECT PARK, BROOKLYN PUBLIC LIBRARY
BERGEN STATION (2,3)
21
MARKERS AND BEACONS
SHAWN YEE SHIONG PANG STUDIO PLA CATALA
22
INHABITING THE GROUND
70% 30% 80% 20% 90% 10%
20% 80%
The protoblocks taken as a collection is an urban artefact that denotes and marks the act of urban living. Density and heights are affected by proximity to attractors like transportation and surrounding land use.
10% 90%
30% 70% 40% 60% 50% 50% 60% 40% 100% HARDSCAPE 0% GREENSCAPE
Different experiences and usage for the varying degree of porosity between hardscape and greenscape.
23
EMERGENT GROUND PATTERNING
SHAWN YEE SHIONG PANG STUDIO PLA CATALA
24
URBAN LIFE AS GENERATOR
Distorted Pattern
Use
Topography
25
SCRIPTING AS PROCESS
SHAWN YEE SHIONG PANG STUDIO PLA CATALA
26
CONTROLLING POROSITY tool >>> CONTROLLING POROSITY THROUGH ATTRACTORS the base script is from Roland Snooks, www.kokkugia.com/wiki as part of his open source code library
Option Explicit ‘-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------‘ Subroutine: attractorToolsScale ‘ Purpose: transforms objects based on proximity to attractors ‘ Author: Roland Snooks | 2007 ‘‘ Modification for RGB values, curves, inversion of sizes Shawn YSP 4/14/2009, now script scales objects smaller away from curves ‘----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Sub attractorToolsScale Dim i, j, arrObjects, arrNewPt, arrAttract, thresholdDist, scaleFactor, arrBBox, arrCntrPt, counter, arrAttPt Dim polylines, path, dblParam, dblAttDistTest, dblClosestAttDist, dblClosestAtt, adjAmount ‘ input arrObjects = Rhino.GetObjects(“Select objects”) arrAttract = Rhino.GetObjects(“Select curve attractors”, 0) thresholdDist = Rhino.GetReal(“distance threshold”, 20, 0) scaleFactor = Rhino.GetReal(“scale factor”, 1, 0) ‘ loop through each object and get the closest attractor For i = 0 To UBound(arrObjects) ‘ get object bounding box centerpoint arrBBox = Rhino.BoundingBox(arrObjects(i)) arrCntrPt = array((((arrBBox(2)(0)) + (arrBBox(0)(0))) / 2), (((arrBBox(2)(1)) + (arrBBox(0)(1))) / 2), (((arrBBox(0)(2)) + (arrBBox(4)(2))) / 2)) ‘ loop through attractors to find the distance to the closest counter = 0 For j = 0 To UBound(arrAttract) ‘get closest point - use for curves rather than points ‘dblParam = Rhino.CurveClosestPoint(arrAttract(j), arrCntrPt) ‘arrAttPt = Rhino.EvaluateCurve(arrAttract(j), dblParam) dblParam = Rhino.CurveClosestPoint(arrAttract(j), arrCntrPt) arrAttPt = Rhino.EvaluateCurve(arrAttract(j), dblParam) ‘ get distance dblAttDistTest = Rhino.Distance(arrAttPt, arrCntrPt) ‘ is it closer If counter < 1 Then dblClosestAttDist = dblAttDistTest dblClosestAtt = counter Else If dblAttDistTest < thresholdDist Then If dblAttDistTest < dblClosestAttDist Then dblClosestAttDist = dblAttDistTest dblClosestAtt = counter End If End If End If counter = counter + 1 Next ‘ if the object is within the threshold then operate on it If dblClosestAttDist < thresholdDist Then ‘ caculate the adjustment amount ‘adjAmount = 1 - ((thresholdDist - dblClosestAttDist)/thresholdDist) ‘ decrease infinite amount adjAmount = ((thresholdDist - dblClosestAttDist)/thresholdDist) / scaleFactor ‘ increase by factor of up to 100% x scaleFactor ‘ based on attractor proximity do something to the object (eg scale) ‘ scale Rhino.ScaleObject arrObjects(i), arrCntrPt, array(adjAmount,adjAmount,adjAmount) ‘ scale at_ChangeColor arrObjects(i),thresholdDist,dblClosestAttDist,scaleFactor End If next End Sub attractorToolsScale Function at_ChangeColor(obj,tDist,aDist,sFactor) Dim objColor, newColor ‘ calculate color ‘newColor =(Rnd ()* 255 - (1 - ((tDist - aDist)/tDist)) * 255) ‘normal rhino color 0-255 ‘newColor = RGB(Rnd*255, Rnd*255, Rnd*255) ‘for RGB scale newColor = RGB ((255-(1 - ((tDist - aDist)/tDist)) * 255), (255-(1 - ((tDist - aDist)/tDist)) * 255), (255-(1 - ((tDist - aDist)/tDist)) * 255)) ‘ change color objColor = Rhino.ObjectColor(obj, newColor) ‘Rhino.print objColor ‘at_ChangeColor= End Function
27
SKIN & BONES Mullion
Dense
Structure
INHABITING THE SKIN
SHAWN YEE SHIONG PANG STUDIO PLA CATALA
TYPE: SPATIAL ORGANIZATON, POROSITY
Free
Housing : Rigid, Dense
Cultural : Flexible, Sparse Types of Bracing and Facade Division
Recreational: Free, Sparsest
Office: Rigid, Dense
Retail: Mix, Sparse
Modulated Thickness
Skin, Pulled away
Structure, Inhabited
28
29
THE NEW ATLANTIC YARDS
SHAWN YEE SHIONG PANG STUDIO PLA CATALA
RETURN TO THE POROUS CITY
30
Shawn Yee Shiong Pang Harvard Graduate School of Design Spring 2009