Architecture portfolio 2010 - 2013

Page 1

ALEXANDER H. FARLEY

Massachusetts Institute of Technology 2014 Master of Architecture ALEXANDER FARLEY


ALEXANDER FARLEY


// Studio Work ++Cloud Garden++ Data Center, 2012

006

Ca’ Sublimata, Venetian Museum, 2012

015

Glass Box Laboratory, Lincoln Laboratory Addition, 2011

022

Boston Architectural College Annex, 2011

031

Forrest For The Trees, Kenmore Station, 2011

036

Institute For Contemporary Arts Theater Annex, 2010

038

// Professional Work Purple Residence Addition, 2012

042

Purple Residence Pavilion, 2011

045

Renderings, 2012 - 2013

047

// Scripting + Fabrication Unflat Pavilion, 2011

052

Bubble Wall, 2012

054

Recursions, 2012

056

Objectifications, 2012

057

Flock of Fireflies, 2012 - 2013

058

Press-Fit Tray, 2011

059

ALEXANDER FARLEY


ALEXANDER FARLEY


// Studio Work ++Cloud Garden++ Data Center, 2012

006

Ca’ Sublimata, Venetian Museum, 2012

015

Glass Box Laboratory, Lincoln Laboratory Addition, 2011

022

Boston Architectural College Annex, 2011

031

Forrest For The Trees, Kenmore Station, 2011

036

Institute For Contemporary Arts Theater Annex, 2010

038

// Professional Work // Scripting + Fabrication

ALEXANDER FARLEY


// CA’ SUBLIMATA STUDIO: MIT - MARIA SEGANTINI DURATION: 3.5 MONTHS

SITE: PARCO SAN GIULIANO, VENICE, ITALY

ALEXANDER FARLEY

RHINOCEROS, PYTHON, GRASSHOPPER, 3DS MAX, MAXWELL, V-RAY, THE ADOBE SUITE, AND PHYSICAL MODELLING WERE UTILIZED THROUGHOUT THE SEMESTER


NON-INTERACTIVE/SERVICE PROGRAM

AUDITORIUM

GALLERY

PIANO NOBILE

GALLERY

SALON

PORTEGO

GALLERY

PARTI

PORTEGO

INTERACTIVE/SERVED PROGRAM

PUBLIC SQUARE

FOOD PREPARATION

PROGRAMMING

BOAT RENTAL BOAT STORAGE

POTTERY

THEATER

PUBLIC SQUARE

BUILDING

GALLERY

STUDIO

POTTERY GLASS GALLERY

ADMINISTRATION

STUDIO

STUDIO

WEB MUSEUM

LEVEL 2

STUDIO

MASKS

GALLERY

LEVEL 1

GALLERY

BOAT

CAFE

THEATER

THEATER

BOAT RENTAL

ENTRANCE LEVEL

GALLERY

LEVEL -1

LEVEL -2

GALLERY

GLASS MAKING

GALLERY

CAFE

The rising tides and eroding ground of the Veneto lagoon demands a strategy to connect with the mainland. A failure of many contemporary architectural designs in Venice is the paradoxical embrace of Venetian history and culture with contemporary design. In essence it must exist and notexist at the same time, a kind of sublimation between solid and void. This cultural center propses an adaptation of the Venetian palace typology with its long piano nobile and portego spaces pivoting around a piaza space that visually connects the center with the island of Venice to the West. The center is skinned with a louver system that offers environmental control as well allowing the building to simultaneously exist as a solid and void. ALEXANDER FARLEY


ALEXANDER FARLEY

1:200 MODEL AND CONNECTION WITH SITE


LEVEL -1

ENTRANCE LEVEL

LEVEL 1

LEVEL 2

ALEXANDER FARLEY


SECTION A R

2

1

E

-1

-2

SECTION B

R

2

1

E

-1

-2

3-

SECTION C

R

2

1

E

-1

-2

ALEXANDER FARLEY


SECTION D RR

SECTION D

2 2

1 1

E E

-1-1

-2 -2

SECTION E

RR

SECTION E

2 2

1 1

E E

-1-1

-2 -2

ALEXANDER FARLEY


EAST ELEVATION R

2

1

E

-1

-2

SOUTH ELEVATION R

2

1

E

-1

-2

-3 -3

NORTH ELEVATION R

2

1

E

-1

-2

ALEXANDER FARLEY


VIEW OF VENICE FROM OUTDOOR SQUARE AND CAFE

ARTIST LABS AND COURTYARD

MAIN ENTRANCE AND CENTRAL

DOCK AND BOAT RENTAL

ALEXANDER FARLEY


ALEXANDER FARLEY

ENTRANCE AND OUTDOOR THEATER


// ++ CLOUD GARDEN ++ STUDIO: MIT - SHEILA KENNEDY DURATION: 2.5 MONTHS

SITE: MINNEAPOLIS, MINNESOTA

RHINOCEROS, PYTHON, GRASSHOPPER, 3DS MAX, MAXWELL, V-RAY, THE ADOBE SUITE, AND PHYSICAL MODELLING WERE UTILIZED THROUGHOUT THE SEMESTER

ALEXANDER FARLEY


Energy Generation Granite City St. Cloud, MN

64 MW

Fuel type:

Sharco Becker, MN

2,400 MW

= Hydro Monticello Nuclear Monticello, MN

= Coal

600 MW

= Natural Gas

= Nuclear St. Croix Falls St. Croix Falls, WI

570 MW

RDF

Apple River Somerset, WI

2.9 MW

Riverside Minneapolis, MN

511 MW

Riverdale Somerset, WI

0.6 MW

Alan S. King Bayport, MN

588 MW High Bridge St. Paul, MN

570 MW

Hennepin Island Minneapolis, MN

Blue Lake

Black Dog

Shakopee, MN

Burnsville, MN

612 MW

538 MW

12 MW

South East

Inver Hills

U. Minnesota

? MW

Inver Grove, MN

3.6 MW Prairie Island Welsh, MN

1,100 MW

RDF Red Wing Red Wing, MN

200 MW

The neighborhoods of northwest Minneapolis have

Mississippi River - riverbank change

become separated from the natural amenities of the Mississippi River and the cultural programs available to the rest of the city. At the same time Minneapolis seeks both future-looking commercial

= Scouring of earth from riverbank

opportunities and a brand identity that allows it to remain relevant as a city. The siting of an architectural intervention that

= Deposition of silt on riverbank

42nd Ave

Canadian Pacific RR

Site

systemically integrates a data center with a botanical garden on the northwest bank of the Mississippi River and expands pedestrian infrastructure provides a means for the city to reconnect the Lowry Ave

northwestern neighborhoods with the river park system, create a cultural destination, and spur economic growth. Minneapolis is a city that has long used the river as an economic engine. However,

Burlington Northern Sante Fe RR

this has resulted in a tension between the unavoidable impact of industry on the land and the sacred relationship that Minnesotans

Broadway Ave

have with nature. This design seeks to relieve the historic tension

Plymouth Ave

between industry and nature through the integration of the botanical Northstar Commuter Rail

garden’s climatic systems with the data center’s infrastructural

Hennepin Ave

systems out of which a larger ecology can emerge. The garden

3rd Ave

can become a media-rich environment warmed and enveloped

Stone Arch Bridge HW 18

in an inflatable system generated by the data center waste heat and the data center more efficiently regulate its environmental systems through the mass and biological features of the plants. Michael Maltzan Architecture, Inc.

ALEXANDER FARLEY

Dam + Lock - 1967

= Refuse-derived


ENTRANCE LEVEL

ALEXANDER FARLEY


SECTION A Inflatable - Top Surface

Service Level

Botanical Garden Inflatable - Bottom Surface

Entrance Level + Community Gardens

Park Walkway

Cold Water Inlet

SECTION B Inflatable - Top Surface

Service Level

Botanical Garden Inflatable - Bottom Surface

Entrance Level + Community Gardens

Park Walkway

Cold Water Inlet

SECTION C Inflatable - Top Surface

Service Level

Botanical Garden Inflatable - Bottom Surface

Entrance Level + Community Gardens

Park Walkway

Cold Water Inlet

ALEXANDER FARLEY


INFLATABLE BOTANICAL GARDEN

ALEXANDER FARLEY


PROGRAMMATIC + STRUCTURAL ORGANIZATION

SECTION DETAIL Inflatable manifold skin

Botanical garden

Inflatable manifold skin

Rigid structure + Service chases

Community gardens

Server racks

Cold water inlet

INFRASTRUCTURAL STRATEGY Cold air and added humidity result in precipitation Botanical gardens Community gardens

Heat rises off of servers to warms gardens + warmed water waters plants

Server racks Service / Cooling level

ALEXANDER FARLEY

Cold air from Mississippi River cools server racks


VIEW TOWARDS DOWNTOWN MINNEAPOLIS

ALEXANDER FARLEY


// GLASS BOX LABORATORY

STUDIO: MIT - ANDREW SCOTT - YEAR 2 CORE

DURATION 3.5 MONTHS - FALL 2011 SITE: LINCOLN LABORATORY, LEXINGTON, MA

ALEXANDER FARLEY


This project offers a major expansion to Lincoln Laboratory campus. The current campus is overcrowded and decentralized. This design seeks open the laboratory space and offer new spaces for cross-disciplinary collaboration within an environment maximized for human comfort. The laboratory is an environment that has traditionally acquiesced to the technical and infrastructural needs of the program. This ignores the importance of the human capital that the laboratory serves. It is the comfort of the scientists that leads to innovation. This laboratory proposes a return to the envelope as the source of light and air in order to best serve the researchers. The envelope provides a microclimate that elevates the comfort of the occupants while providing for efficient thermal control of clean room, production and assembly spaces. As an extension of this, the tectonic elements of the laboratory dissipate with each floor; all beneath a roof comprised of nimbular aerogel-insulated ETFE pillows. The result is that through a search for environmental comfort an inversion of indoor and outdoor space can occur.

RHINOCEROS, GRASSHOPPER, 3DS MAX, MAXWELL, V-RAY, THE ADOBE SUITE, AND PHYSICAL MODELLING WERE UTILIZED THROUGHOUT THE SEMESTER

ALEXANDER FARLEY


ENTRANCE LEVEL

ALEXANDER FARLEY


SECOND LEVEL

THIRD LEVEL

FOURTH LEVEL

FIFTH LEVEL

ALEXANDER FARLEY


SECTION B

PREVAILING WIND CHIMNEY EFFECT NAT. VENTILATION CHIMNEY EFFECT NAT. VENTILATION

CHIMNEY EFFECT NAT. VENTILATION

VERTICALLY-MOUNTED AHUs

ENTHALPY WHEEL

HEAT EXCHANGERS FRESH AIR INTAKE

GEOTHERMAL HEAT PUMP

SECTION A GROUP PROJECT OFFICES

MICROSYSTEMS INTEGRATION CLASS 100

GROUP PROJECT OFFICES

GROUP PROJECT OFFICES

MICROSYSTEMS INTEGRATION CLASS 1000

GROUP PROJECT OFFICES

I & T MICROFLUIDICS + BIOSENSORS LAB SERVICE CHASE

VERTICAL CHASE MACHINE SHOP

ALEXANDER FARLEY


LINCOLN LABS - WEST LAB ADDITION - WALL DETAIL

ENVELOPE STRUCTURAL SYSTEM P

H G B D

A A. Aluminum cladding B. Steel curtain wall hanger C. Fiberglass insulation D. Tubular steel column E. Steel mounting flange F. Steel J-anchor G.Tensegrity roof tensioning cable H. ETFE foil I. Tubular steel column J. Tensegrity tubular steel tension rod K. ETFE pillow pressure-regulation hose L. ETFE pressure-regulation valve M. Bird guard N. Grate O. Aluminum gutter P. Granular aerogel insulation

C

E F

I

P

L

N K

O Y X W A. Low-iron insulating glass B. Aluminum window sill C. Oak window sill D. Medium-density concrete E. Gypsum drywall F. Oak floor baord G. Moisture barrier membrane H. Aluminum floor riser I. Floor finish J. Interior glazing K. Extruded aluminum framing L. Drop-ceiling hangers M. Drop ceiling O. Low-density conrete light shelf P. Awning Q. Spider-sytem tensioning cable R. Stainless steel aluminum cladding wall anchor S. Extruded polystyrene insulation T. Alucobond dry-seal aluminum cladding z-clip system U. Spider clip rod V. Spider clip depth-adjustment element W. Spider clip X. Silicone seal Y. Laminated float glass Z. Vertical spider system tensioning cable

Q

Z

J

U V

M

A

R S T

B C D E F G

H

I

ALEXANDER FARLEY


ALEXANDER FARLEY

1/16” = 1’ MODEL


VIEW OF CLEAN ROOMS FROM COLLABORATION SPACE

ALEXANDER FARLEY


ALEXANDER FARLEY

LABORATORY CENTRAL GALLERY


// TRANSPARENT SCHOOL

STUDIO: MIT - JOEL LAMERE - YEAR 1 CORE

DURATION 2 MONTHS - SPRING 2011 SITE: KENMORE SQUARE, BOSTON

RHINOCEROS, GRASSHOPPER, MAXWELL, V-RAY, THE ADOBE SUITE, AND PHYSICAL MODELLING WERE UTILIZED THROUGHOUT THE SEMESTER

ALEXANDER FARLEY


H RT NO N IO AT UL RC CI

NUMBER OF PEOPLE

-S

OU

TH

TEMPORAL CIRCULATION PATTERNS

C IR

CUL

A T IO

NE AS

TWES

T

RED SOX HOME GAME - DAY TIME (

SUMMER DAY - NOON

)

(

)

RUSH HOUR - SUMMER - 8 AM (

)

RUSH HOUR - WINTER - 8 AM (

)

ALEXANDER FARLEY


An extension to the Boston Architectural College loacted in Kenmore Square, Boston. This design seeks transparency in materiality and organization as a means to create a dialogue and discourse with a public unfamiliar with the discipline of architecture. A clear interface between the public and the architecture students is created through a series of inter-digitated gallery / review spaces and observation platforms. A necessary sepparation between the students and the public is achieved through distinct circulation routes. The structural system derives from the embodiment of the tree; offering both strength and shelter while simulataneously allowing the flexible creation of spaces calibrated to programmatic need.

ORGANIZATION

ADMINISTRATION

PRINT / PLOT

COMPUTER LAB

STUDIO

WOOD SHOP

FAB LAB

THEORY

DESIGN

GALLERY

REVIEW

GALLERY

REVIEW

GALLERY

REVIEW

LIBRARY

CLASSROOMS

AUDITORIUM

LOBBY

GENER AL C I R CUL AT ION

CAFE

PRI V A TE C I RC U LATI ON

PU BLI C C I RC U LATI ON

MATERIALS

ORIGINAL SITE PLAN WITH SUBTERRANEAN STRUCTURE

MODIFIED SITE PLAN WITH SUBTERRANEAN STRUCTURE = SITE EXPANSION

ALEXANDER FARLEY


THIRD LEVEL

SECTION A

ALEXANDER FARLEY


CENTRAL GALLERY SPACE

ALEXANDER FARLEY


// FORREST FOR THE TREES

STUDIO: MIT - JOEL LAMERE - YEAR 1 CORE

DURATION 3 WEEKS - SPRING 2011 SITE: KENMORE SQUARE, BOSTON

ALEXANDER FARLEY

RHINOCEROS, GRASSHOPPER, MAXWELL, THE ADOBE SUITE, AND PHYSICAL MODELLING WERE UTILIZED THROUGHOUT THE SEMESTER


DENDRIFORM CANTILEVER MORPHOLOGIES

15’

15 deg

10’

7’

30 deg

ALEXANDER FARLEY


// ICA THEATER ANNEX

STUDIO: MIT - ASHLEY SCHAFER - YEAR 1 CORE DURATION 3 WEEKS - FALL 2010 SITE: FORT POINT, BOSTON

SOUTH VIEW OF THEATER FROM SUMMER STREET

ALEXANDER FARLEY

RHINOCEROS, MAXWELL, THE ADOBE SUITE, AND PHYSICAL MODELLING WERE UTILIZED THROUGHOUT THE SEMESTER


A

A

B

B

CONCERT THEATER PLAN

NORTH ELEVATION

SECTION A

SECTION B

BALLET THEATER PLAN

WEST ELEVATION

ALEXANDER FARLEY


ALEXANDER FARLEY


// Studio Work // Professional Work Purple Residence Addition, 2012

042

Purple Residence Pavilion, 2011

045

Renderings, 2012 - 2013

047

// Scripting + Fabrication

ALEXANDER FARLEY


// PURPLE RESIDENCE ADDITION CLIENTS: LESLIE AND THOMAS PURPLE DESIGNED WITH PATRICK FARLEY SITE: WYNDMOOR, PA JANUARY - MAY 2012 STATUS: UNDER CONSTRUCTION

This project sought to reactivate an unused storage room as the main location for daily activity. The existing space allows for a kitchen and central hearth. The south facing wall is pulled away from the house to allow for greater day-lighting and create a space for casual dining and food and linen storage.

AutoCAD, Revit, Rhinoceros, Maxwell, and physical modelling were used throughout the course of the project.

ALEXANDER FARLEY


23’ 8”

3’

3’

3’

3’

3’

3’

3’

9’ 8’ 9” 18’ 9”

8’ 9”

4’ 4”

21’ 9”

12’

14’ 9”

21’ 8”

4’ 9”

14’ 8”

4’ 9”

12’ 9”

2’ 4”

3’ 9”

4’ 8”

4’ 4”

4’ 4”

4’ 8”

3’ 9”

4’ 6”

25’ 6”

ALEXANDER FARLEY


ALEXANDER FARLEY

PURPLE ADDITION - INTERIOR KITCHEN VIEW


// PURPLE RESIDENCE GARDEN PAVILLION CLIENTS: LESLIE AND THOMAS PURPLE AUGUST 2011 SITE: WYNDMOOR, PA

STANDARD POST-BEAM-RAFTER ASSEMBLY

CORNER POST-BEAM-RAFTER ASSEMBLY

This commission sought to create a vegetable garden enclosure that could protect the plants from backyard pests while maintaining the design language of the existing site. The pavilion employs traditional timber construction techniques and tectonic elements while remaining within a modest budget.

Rhinoceros and physical modeliing were used throughout the course of the project.

SCREW

CORNER ASSEMBLY SCREW

STANDARD ASSEMBLY

SCREW

1” CEDAR FACING

FENCING

1” x 1” CEDAR FACING

SCREW

FENCING

4” x 4” PRESSURE-TREATED

4” x 4” PRESSURE-TREATED

1” CEDAR FACING

1” CEDAR FACING

ALEXANDER FARLEY


SIDE ELEVATION

FRONT ELEVATION 15’ 1-1/2”

4’ 10-1/2”

11’ 8-1/8” 45°

2’ 5-1/4”

8’ 2-1/4”

2’ 5-1/4”

45° 5’ 9-7/8”

5’ 9-7/8” 16’ 3-1/4”

1” x 10” x 6’

1” x 10” x 6’

16’ 3-1/4”

9-1/4” scarf or butt joint

2” x 10” x 10’

2” x 10” x 5’

9-1/4”

2” x 10” x 10’

8’

2” x 10” x 5’

scarf or butt joint

2” x 10” x 5’

2” x 10” x 5’

8’

7’ 2-3/4”

5’

5’

5’

5’

7’ 2-3/4”

5’

5’

5’

5’

15’ 6-1/2”

25’ 6”

SECTION

PLAN 15’ 1-1/4”

2-3/8”

45° 11’ 8-1/8” 2” x 10”

CEDAR

5’ 1” x 2” CEDAR

2” x 10” CEDAR

5’

15’ 6” 9-1/4”

COUNTER-SUNK

0.5” CARRIAGE BOLT

2” x 10” CEDAR

45° 5’

45°

1” CEDAR FACING 8’

7’ 2-3/4”

2” x 2” FENCING B/W FACING AND PT 4” x 4” PRESSURE-TREATED

The corner 2” x 10” s are 9’ 9-7/8” long COUNTER-SUNK

5’

5’

5’

5’

5’

GRADE POST HOLDER CONCRETE FOOTER

ALEXANDER FARLEY

25’ 6”

0.5” CARRIAGE BOLT


FOR SASAKI ASSOCIATES - 2013

FOR ELIZABETH FARLEY - GSD M.ARCH THESIS - 2012

FOR SASAKI ASSOCIATES - 2013

FOR ELIZABETH FARLEY - GSD M.ARCH THESIS - 2012

ALEXANDER FARLEY


FOR ELIZABETH FARLEY - GSD M.ARCH THESIS - 2012

FOR ELIZABETH FARLEY - GSD M.ARCH THESIS - 2012

FOR ELIZABETH FARLEY - GSD M.ARCH THESIS - 2012

FOR THE PLANT CONNECTION - GREENHOUSE ADDITION - 2011

ALEXANDER FARLEY


ALEXANDER FARLEY


ALEXANDER FARLEY


// Studio Work // Professional Work // Scripting + Fabrication Unflat Pavilion, 2011

052

Bubble Wall, 2012

054

Recursions, 2012

056

Objectifications, 2012

057

Flock of Fireflies, 2012 - 2013

058

Press-Fit Tray, 2011

059

ALEXANDER FARLEY


// UNFLAT PAVILION

DESIGNED BY PROF. NICK GELPI FOR MIT 150 DURATION: WINTER - SPRING 2011 SITE: MIT, CAMBRIDGE, MA

SPRING LOADED

ALEXANDER FARLEY

RIGID SLOT

RIGID SILL PLATE

SOLID PLATE

Rhinoceros, MasterCam, and 3-Axis CNC milling were used throughout the course of the project.


Exterior Panel

1.6 in 0.5 in

96 in

Interior Panel

48 in

ALEXANDER FARLEY


// BUBBLE WALL

STUDIO: MIT - EMERGENT MATERIALS WORKSHOP DESIGNED WITH: YANG-PING WANG AND CHRIS MILLER DURATION: SPRING 2012

Adaptation of the Cambridge Public Library doubleskinned facade to use a soap-foam insulation system.

ALEXANDER FARLEY


0 HRS 1 HRS

GLAZING

3 HRS

IRRIGATION SYSTEM

FILTER MEIDA TRAY

6 HRS SPONGE

RESEVOIR

12 HRS AIR COMPRESSOR

SOLUTION COMPOSITION TESTING:

FULL SCALE PROTOTYPE DESIGN:

FULL SCALE PROTOTYPE DOCUMENTATION: ALEXANDER FARLEY


// RECURSIONS

length = len(self.spiral_points) index = range(length)

angle =90 JUHONG PARK STUDIO: MIT - DESIGNING NATURE

for i in index: plane = rs.MovePlane(self.plane, self.spiral_points[i][1]) rotated = rs.RotatePlane(plane, angle, plane.ZAxis) radius = math.fabs(self.spiral_points[i][0][0]) if (radius != 0): arc = rs.AddArc(rotated, radius, self.angle) rs.RotateObject(arc, self.spiral_points[i][1], self.angle) else: radius = math.fabs(self.spiral_points[i][0][1]) arc = rs.AddArc(rotated, radius, self.angle) rs.RotateObject(arc, self.spiral_points[i][1], self.angle)

DURATION: FALL 2012 import rhinoscriptsyntax as rs import math

### Controller class class GoldenSpiral(): def __init__(self): self.NS = None self.phi = (math.sqrt(5)+1)/2 self.plane = rs.WorldXYPlane() # Negative angle for clockwise spiral self.angle = -90 origin = [0,0,0] self.origin = rs.AddPoint(origin)

self.spiralArcList.append(arc) angle -= 90 def main(self): self.makeSpiralPoints() self.makeSpiralArc() self.NS = NautilusShell(self) self.NS.main()

self.spiral_points = [] endPt = [1,0,0] self.endPt = rs.AddPoint(endPt) self.endPts = [] self.endPts.append(endPt) self.spiralArcList = [] def makeSpiralPoints(self): endPt = self.endPt origin = self.origin

### Model class class NautilusShell(): def __init__(self, NS): self.endPts = NS.endPts self.spiralArcList = NS.spiralArcList Koch Curve Lindenmayer Branching self.midpointsList = [] self.quarterpointsList = []

for i in range(12): trans = rs.VectorSubtract(origin, endPt) scaled_trans = rs.VectorScale(trans, self.phi) origin = rs.CopyObject(endPt, scaled_trans) originCoord = rs.PointCoordinates(origin) points = [origin, endPt] tempID = rs.AddCurve(points) lineID = rs.RotateObject(tempID, origin, self.angle) temp_endPt = rs.CurveEndPoint(lineID) endPt = rs.AddPoint(temp_endPt) endPtCoord = rs.PointCoordinates(endPt) self.endPts.append(endPtCoord) rs.DeleteObject(tempID)

self.crossSectionList = [] self.surfaceList = [] self.SP = None def makeControlPoints(self): length = len(self.endPts) index = range(length) for i in index: if (i <=4): pts = [self.endPts[0], self.endPts[i]] lineID = rs.AddCurve(pts, 3) else: pts = [self.endPts[(i - 4)], self.endPts[i]] lineID = rs.AddCurve(pts, 3) points = rs.DivideCurve(lineID, 4)

params = [scaled_trans,Diffusion-Limited originCoord] aggregation tempID = rs.AddPoint(points[1]) Nautilus shell points[1] = self.moveControlQuarterPoint(tempID) self.spiral_points.append(params) tempID = rs.AddPoint(points[2]) points[2] = self.moveControlMidPoint(tempID) def makeSpiralArc(self): tempID = rs.AddPoint(points[3]) ALEXANDER FARLEY

points[3] = self.moveControlQuarterPoint(tempID) rs.DeleteObject(lineID) cross_section = rs.AddCurve(points, 3) self.crossSectionList.append(cross_section) def moveControlQuarterPoint(self, tempID): temp_qPt = rs.PointCoordinates(tempID) temp_endPt = [temp_qPt[0], temp_qPt[1], (temp_qPt[2] - 0.23)] trans = rs.VectorSubtract(temp_qPt, temp_endPt) quarterPt = rs.MoveObject(tempID, trans) return quarterPt def moveControlMidPoint(self, tempID): temp_mPt = rs.PointCoordinates(tempID) temp_endPt = [temp_mPt[0], temp_mPt[1], (temp_mPt[2] - 0.313)] trans = rs.VectorSubtract(temp_mPt, temp_endPt) midPt = rs.MoveObject(tempID, trans) return midPt def makeEdgeSurface(self): # The first four surfaces have to be handled uniquely # first surface curves0 = [self.spiralArcList[0], self.crossSectionList[1]] surface = rs.AddEdgeSrf(curves0) self.surfaceList.append(surface) length = len(self.spiralArcList) index = range(length) Perlin Height field # next three surfaces for i in index: if(i > 0 and i <=3): curves = [self.spiralArcList[i], self.crossSectionList[i], self.crossSectionList[i+1]] surface = rs.AddEdgeSrf(curves) self.surfaceList.append(surface) # all of the other surfaces else: curves = [self.spiralArcList[i], self.spiralArcList[i - 4], self.crossSectionList[i], self.crossSectionList[i+1]] surface = rs.AddEdgeSrf(curves) self.surfaceList.append(surface) length = len(self.surfaceList) #rs.JoinSurfaces(self.surfaceList) def main(self): self.makeControlPoints() self.makeEdgeSurface() self.SP = SurfacePattern(self) self.SP.main()

Swallow’s nest attractor ### View class class SurfacePattern(): def __init__(self, GS): self.surfaceList = GS.surfaceList PYTHON, RHINOCEROS,AND DIGITAL FABRICATION


// OBJECTIFICATIONS

length = len(self.spiral_points) index = range(length)

angle =-90JUHONG PARK STUDIO: MIT - DESIGNING NATURE

DURATION: FALL 2012 import rhinoscriptsyntax as rs import math

### Controller class class GoldenSpiral(): def __init__(self): self.NS = None self.phi = (math.sqrt(5)+1)/2 self.plane = rs.WorldXYPlane() # Negative angle for clockwise spiral self.angle = -90 origin = [0,0,0] self.origin = rs.AddPoint(origin) self.spiral_points = [] endPt = [1,0,0] self.endPt = rs.AddPoint(endPt) self.endPts = [] self.endPts.append(endPt) self.spiralArcList = [] def makeSpiralPoints(self): endPt = self.endPt origin = self.origin for i in range(12): trans = rs.VectorSubtract(origin, endPt) scaled_trans = rs.VectorScale(trans, self.phi) origin = rs.CopyObject(endPt, scaled_trans) originCoord = rs.PointCoordinates(origin) points = [origin, endPt] tempID = rs.AddCurve(points) lineID = rs.RotateObject(tempID, origin, self.angle) temp_endPt = rs.CurveEndPoint(lineID) endPt = rs.AddPoint(temp_endPt) endPtCoord = rs.PointCoordinates(endPt) self.endPts.append(endPtCoord) rs.DeleteObject(tempID) params = [scaled_trans, originCoord] Cellular automata

for i in index: plane = rs.MovePlane(self.plane, self.spiral_points[i][1]) rotated = rs.RotatePlane(plane, angle, plane.ZAxis) radius = math.fabs(self.spiral_points[i][0][0]) if (radius != 0): arc = rs.AddArc(rotated, radius, self.angle) rs.RotateObject(arc, self.spiral_points[i][1], self.angle) else: radius = math.fabs(self.spiral_points[i][0][1]) arc = rs.AddArc(rotated, radius, self.angle) rs.RotateObject(arc, self.spiral_points[i][1], self.angle) self.spiralArcList.append(arc) angle -= 90

def main(self): self.makeSpiralPoints() self.makeSpiralArc() self.NS = NautilusShell(self) self.NS.main() ### Model class class NautilusShell(): def __init__(self, NS): self.endPts = NS.endPts self.spiralArcList = NS.spiralArcList self.midpointsList = [] self.quarterpointsList = [] self.crossSectionList = [] self.surfaceList = [] self.SP = None def makeControlPoints(self): length = len(self.endPts) index = range(length) for i in index: if (i <=4): pts = [self.endPts[0], self.endPts[i]] lineID = rs.AddCurve(pts, 3) else: pts = [self.endPts[(i - 4)], self.endPts[i]] lineID = rs.AddCurve(pts, 3) points = rs.DivideCurve(lineID, 4)

tempID = rs.AddPoint(points[1]) Flocking 1 Data visualization points[1] = self.moveControlQuarterPoint(tempID) (Hurricane Sandy) self.spiral_points.append(params) tempID = rs.AddPoint(points[2]) points[2] = self.moveControlMidPoint(tempID) PYTHON, RHINOCEROS,AND DIGITAL FABRICATION def makeSpiralArc(self): tempID = rs.AddPoint(points[3])

points[3] = self.moveControlQuarterPoint(tempID) rs.DeleteObject(lineID) cross_section = rs.AddCurve(points, 3) self.crossSectionList.append(cross_section) def moveControlQuarterPoint(self, tempID): temp_qPt = rs.PointCoordinates(tempID) temp_endPt = [temp_qPt[0], temp_qPt[1], (temp_qPt[2] - 0.23)] trans = rs.VectorSubtract(temp_qPt, temp_endPt) quarterPt = rs.MoveObject(tempID, trans) return quarterPt def moveControlMidPoint(self, tempID): temp_mPt = rs.PointCoordinates(tempID) temp_endPt = [temp_mPt[0], temp_mPt[1], (temp_mPt[2] - 0.313)] trans = rs.VectorSubtract(temp_mPt, temp_endPt) midPt = rs.MoveObject(tempID, trans) return midPt def makeEdgeSurface(self): # The first four surfaces have to be handled uniquely # first surface curves0 = [self.spiralArcList[0], self.crossSectionList[1]] surface = rs.AddEdgeSrf(curves0) self.surfaceList.append(surface) length = len(self.spiralArcList) index = range(length) # next three surfaces for i in index: if(i > 0 and i <=3): curves = [self.spiralArcList[i], self.crossSectionList[i], self.crossSectionList[i+1]] surface = rs.AddEdgeSrf(curves) self.surfaceList.append(surface) # all of the other surfaces else: curves = [self.spiralArcList[i], self.spiralArcList[i - 4], self.crossSectionList[i], self.crossSectionList[i+1]] surface = rs.AddEdgeSrf(curves) self.surfaceList.append(surface) length = len(self.surfaceList) #rs.JoinSurfaces(self.surfaceList) def main(self): self.makeControlPoints() self.makeEdgeSurface() self.SP = SurfacePattern(self) self.SP.main()

Flocking 2 ### View class class SurfacePattern(): def __init__(self, GS): self.surfaceList = GS.surfaceList

Swarming

ALEXANDER FARLEY


// FLOCK OF FIREFLIES

length = len(self.spiral_points) index = range(length)

angle = 90 STUDIO: MIT - ADVANCED COMPUTATION for i in index: INDEPENDENT STUDY plane = rs.MovePlane(self.plane, self.spiral_points[i][1])

DURATION: FALL 2012 - SPRING 2013

rotated = rs.RotatePlane(plane, angle, plane.ZAxis) radius = math.fabs(self.spiral_points[i][0][0]) if (radius != 0): import rhinoscriptsyntax as rs arc = rs.AddArc(rotated, radius, self.angle) import math Project to create a physical volumetric display system for the 3D rs.RotateObject(arc, self.spiral_points[i][1], self.angle) else: modeling program Rhinoceros using Rhinoceros, Grasshopper/Firefly, ### Controller class Python, Arduino microcontroller, and 8x8x8 LED matrix. radius = math.fabs(self.spiral_points[i][0][1]) class GoldenSpiral(): arc = rs.AddArc(rotated, radius, self.angle) def __init__(self): rs.RotateObject(arc, self.spiral_points[i][1], self.angle) self.NS = None self.phi = (math.sqrt(5)+1)/2 self.spiralArcList.append(arc) self.plane = rs.WorldXYPlane() # Negative angle for clockwise spiral angle -= 90 self.angle = -90 origin = [0,0,0] def main(self): self.origin = rs.AddPoint(origin) self.makeSpiralPoints() self.makeSpiralArc() self.spiral_points = [] self.NS = NautilusShell(self) self.NS.main() endPt = [1,0,0] self.endPt = rs.AddPoint(endPt) ### Model class self.endPts = [] class NautilusShell(): self.endPts.append(endPt) def __init__(self, NS): self.endPts = NS.endPts self.spiralArcList = [] self.spiralArcList = NS.spiralArcList def makeSpiralPoints(self): endPt = self.endPt origin = self.origin for i in range(12): trans = rs.VectorSubtract(origin, endPt) scaled_trans = rs.VectorScale(trans, self.phi) origin = rs.CopyObject(endPt, scaled_trans) originCoord = rs.PointCoordinates(origin) points = [origin, endPt] tempID = rs.AddCurve(points) lineID = rs.RotateObject(tempID, origin, self.angle) temp_endPt = rs.CurveEndPoint(lineID) endPt = rs.AddPoint(temp_endPt) endPtCoord = rs.PointCoordinates(endPt) self.endPts.append(endPtCoord) rs.DeleteObject(tempID) params = [scaled_trans, originCoord] self.spiral_points.append(params) def makeSpiralArc(self): ALEXANDER FARLEY

self.midpointsList = [] self.quarterpointsList = [] self.crossSectionList = [] self.surfaceList = [] self.SP = None def makeControlPoints(self): length = len(self.endPts) index = range(length) for i in index: if (i <=4): pts = [self.endPts[0], self.endPts[i]] lineID = rs.AddCurve(pts, 3) else: pts = [self.endPts[(i - 4)], self.endPts[i]] lineID = rs.AddCurve(pts, 3) points = rs.DivideCurve(lineID, 4) tempID = rs.AddPoint(points[1]) points[1] = self.moveControlQuarterPoint(tempID) tempID = rs.AddPoint(points[2]) points[2] = self.moveControlMidPoint(tempID) tempID = rs.AddPoint(points[3])

points[3] = self.moveControlQuarterPoint(tempID) rs.DeleteObject(lineID) cross_section = rs.AddCurve(points, 3) self.crossSectionList.append(cross_section) def moveControlQuarterPoint(self, tempID): temp_qPt = rs.PointCoordinates(tempID) temp_endPt = [temp_qPt[0], temp_qPt[1], (temp_qPt[2] - 0.23)] trans = rs.VectorSubtract(temp_qPt, temp_endPt) quarterPt = rs.MoveObject(tempID, trans) return quarterPt def moveControlMidPoint(self, tempID): temp_mPt = rs.PointCoordinates(tempID) temp_endPt = [temp_mPt[0], temp_mPt[1], (temp_mPt[2] - 0.313)] trans = rs.VectorSubtract(temp_mPt, temp_endPt) midPt = rs.MoveObject(tempID, trans) return midPt def makeEdgeSurface(self): # The first four surfaces have to be handled uniquely # first surface curves0 = [self.spiralArcList[0], self.crossSectionList[1]] surface = rs.AddEdgeSrf(curves0) self.surfaceList.append(surface) length = len(self.spiralArcList) index = range(length) # next three surfaces for i in index: if(i > 0 and i <=3): curves = [self.spiralArcList[i], self.crossSectionList[i], self.crossSectionList[i+1]] surface = rs.AddEdgeSrf(curves) self.surfaceList.append(surface) # all of the other surfaces else: curves = [self.spiralArcList[i], self.spiralArcList[i - 4], self.crossSectionList[i], self.crossSectionList[i+1]] surface = rs.AddEdgeSrf(curves) self.surfaceList.append(surface) length = len(self.surfaceList) #rs.JoinSurfaces(self.surfaceList) def main(self): self.makeControlPoints() self.makeEdgeSurface() self.SP = SurfacePattern(self) self.SP.main() ### View class class SurfacePattern(): def __init__(self, GS): self.surfaceList = GS.surfaceList


// PRESS-FIT STAND

STUDIO: MIT COMPLETE FABRICATION DURATION: 1 WEEK, WINTER 2011

2

1

3

4

Rhinoceros, MasterCam, and 3-Axis CNC milling were used throughout the course of the project.

ALEXANDER FARLEY


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.