SA_VOL1 SELF-EMPLOYED

woojsung

SELECTED WORKS //

VOL.1_SELF-EMPLOYED

WOOJAE SUNG 성우제

PRINCIPAL, LICENSED ARCHITECT IN NEW YORK, AIA

ASSISTANT PROFESSOR, SEJONG UNIVERSITY

E. ws@selective-amplification.net

M. +82 10 4757 1353

A. Suit 101, 121 Gunja-ro, Gwangjin-gu, Seoul, 05000, Korea

WWW.SELECTIVE-AMPLIFICATION.NET

ARCHITECTURE / INTERIOR / FACADE / PARAMETRIC DESIGN

WOOJAE SUNG 성우제

PRINCIPAL, LICENSED ARCHITECT IN NEW YORK, AIA

ASSISTANT PROFESSOR, SEJONG UNIVERSITY

E. ws@selective-amplification.net

M. +82 10 4757 1353

A. Suit 101, 121 Gunja-ro, Gwangjin-gu, Seoul, 05000, Korea

WWW.SELECTIVE-AMPLIFICATION.NET


WOOJAE SUNG

AIA / RA NY

ws@selective-amplification.net | +82 10 4757 1353 | www.selective-amplification.net

WORK EXPERIENCE

2017 - Current

2009 - Current

Sejong University . Seoul, Korea . Assistant Professor

Seoul, Korea

Assistant Professor, Department of Architecture

Design Studio and Architectural Design Courses

Selective Amplification . Seoul, Korea . Principal

Seoul, Korea

Venture Center, Sejong University Campustown

Seoul Campustown Project Winning Entry / In Progress (To Be Completed in 2019)

Seoul, Korea

Speech at UIA 2017 Seoul

Parametric Design in Digital Design and Fabrication Session, 2017

Seoul, Korea

Seoul Animation Center

Proposal for Seoul Animation Center, 2016

Busan, Korea

Secluded Island

Proposal for Commercial Complex, 2016

Suncheon, Korea

Art Quad - Oblique Function

Proposal for a Community Center, 2016

Goesan, Korea

Senior/Junior Center

Honorable Mention, Korean Rural Architecture Competition, 2015

NY, USA

Vestibule +

Notable Entry, Folly 2014, The Architectural League NY, Socrates Sculpture Part, NY

NY, USA

PV Tensegrity Forest

Proposal for Installation, LAGI, Land Art Generator Initiative 2012

MI, USA

Parametric Design Installation

Proposal for Installation, TAXFAB Digital Design Conference, 2012

NY, USA

Component Wall

Honorable Mention, Bentley Be Inspired Awards in Computational Design, 2009

2015 - 2017

Grimshaw Architects . New York, NY, U.S.A. . Associate

Dubai, UAE

Dubai Expo 2020 Sustainable Pavilion

Main Canopy Design Leader / Project Architect, Expected Completion in 2019

Yeongcheon, Korea

Lets Run Park

Design Leader / Project Architect, Ongoing Schematic Design Phase

Hainan, China

Botanical Wonders Museum

Design Leader / Project Architect

2015

OMA . New York, NY, U.S.A. . Senior Architect

New York, NY

515 18th Street Residential Tower

Design Leader / Project Architect

2013 - 2015

SHoP Architects . New York, NY, U.S.A. . Senior Associate

New York, NY

Barclay’s Center Green Roof

Design Leader / Project Architect, Completed in 2016

Cleveland, OH

Quicken Arena

Interior Curtain Facade Design Leader / Project Architect, Ongoing Construction Documentation Phase

Biscayne, Miami, FL

Biscayne Residential Tower

Design Leader / Project Architect

2009 - 2013

Grimshaw Architects . New York, NY, U.S.A. . Intermediate Architect / Leader - Computational Design Unit

Shanghai, China

Disney Tomorrowland

Project Designer, Completed in 2015

FL, USA

Miami Science Museum

Facade Designer, Completed in 2017

Incheon, Korea

Incheon International Airport Passenger Terminal 2 Competition

Facade Designer

4 Mile Run Pedestrian-Cyclist Bridge Competition VA

Project Designer

New York, NY

LaGuadia Airport Competition

Facade Designer

Seocheon, Korea

Ecorium (National Ecological Institute)

Project Designer, Completed in 2012


WOOJAE SUNG

AIA / RA NY

ws@selective-amplification.net | +82 10 4757 1353 | www.selective-amplification.net

2003 - 2006

Samoo Architects & Engineers . Seoul, Korea . Junior Architect

JeonJu, Korea

National Nanotechnology Integration Center

Project Designer, Completed in 2008

GyeongGi, Korea

Bio Organs Research & Production Center

Designer

GyeongGi, Korea

College of Pharmacy, Sungkyunkwan University

Project Designer, Completed in 2007

PyungChang, Korea

Weekend Housing for Samsung Executives

Designer

Seoul, Korea

Guest House, Sungkyunkwan University

Project Designer, Completed in 2006

GyeongGi, Korea

2nd Laboratory Building, Sungkyunkwan University

Project Designer, Completed in 2006

LECTURE & TEACHING

September, 2017

Spring, 2016

Fall, 2015

Spring, 2015

Fall, 2011 - Spring, 2013

April, 2010

Spring, 2009 - Fall, 2009

Invited Speaker . UIA 2017, Seoul

Parametric Design, Digital design & Fabrication

Guest Lecturer . University of Pennsylvania

Parametric design lecture and workshop for M.arch design studio

Guest Lecturer . The City College of New York

Parametric design lecture and workshop for B.arch design studio

Guest Lecturer . University of Pennsylvania

Parametric design lecture and workshop for M.arch design studio

Advanced Parametric Design and Scripting . Harvard University GSD

Advanced parametric design lecture and workshop for Digital Media course for graduate students

DIGITAL Lecture Series . Syracuse University

Parametric design lecture and workshop

Grasshopper Workshop . Cornell University AAP

Advanced parametric design lecture and workshop for graduate studios

HONORS & AWARDS

April, 2014

April, 2014

April, 2009

October, 2008

October, 2008

April, 2008

December, 2002

Honorable Mention . 10th Korean Rural Architectural Competition (UIA)

Notable Entries . Folly 2014 / The Architectural League NY

Honorable Mention . Bentley Academic Be Inspired Award in the Computational Design competition

Featured Student . AAP, Cornell University

Selected Studio Work, Spring 08 . AAP, Cornell University

Selected Studio Work, Fall 07 & Spring 07 . AAP, Cornell University

First Prize : Graduation Work . Yonsei University

PUBLICATION

April 2015 - Current

May 2009

Parametric Design . Korean Architects Journal (by KIRA, Korea Institute of Registered Architects)

Bimonthly Article about Parametric Design on Korean Architects Journal

From Top Down to Bottom Up . Interviewed by Brett Duesing, Obleo Design Media (http://obleo.net)

Bottom up design methodology through parametric tools

CERTIFICATIONS

November, 2014

Licensed / Registered Architect New York State (#37422) / AIA (#38430055)

Ncarb / Office of the Professions, NY State / The American Institute of Architects


WOOJAE SUNG

AIA / RA NY

ws@selective-amplification.net | +82 10 4757 1353 | www.selective-amplification.net

EDUCATION

December, 2008

February, 2003

August, 2000

Cornell University . Ithaca, NY

Master of Architecture

Yonsei University . Seoul, Korea

Bachelor of Science in Architectural Engineering

Yonsei University . Seoul, Korea

Bachelor of Science in Civil Engineering


CONTENTS //

VOL.1_SELF-EMPLOYED

VENTURE CENTER //

SEJONG CAMPUS TOWN

SYMBIOSIS & INCOMPLETENESS //

RURAL ARCHITECTURE COMPETITION

ART QUAD, OBLIQUE FUNCTION //

SUNCHEON ART PLATFORM

01_SECLUDED ISLAND

Introverted space configuration helps

guest intermingle toward the rotunda

space at the very center of the building.

Chance encounters or unexpected visual

connections among wide range of guests

in different programs and activities let

them easily explore the entire complex.

On the other hand, being above the lobby,

hotel and event suites not only have quite

environment but also have wide open

view to the city over the mountain.

PARTS TO WHOLE //

SEOUL ANIMATION CENTER

SECLUDED ISLAND //

BUNKER REGENERATION

VESTIBULE+ //

FOLLY 2014 THE ARCHITECTURAL

LEAGUE, NY

COMPONENT ARCHITECTURE //

PARAMETRIC GRADIENT WALL

CUT IT, CURLING IT UP //

DYNAMIC TAPESTRY

CHAOS + GRID //

COORDINATED RANDOM GROWTH


20

DESIG

SHAW

PARA

WOOJ

@ CITY

SEP 2

-

ULTRA LIGHT //

CARBON FIBER PAVILION

DIGITAL DESIGN //

LECTURES & WORKSHOPS

PARAMETRIC DESIGN //

UIA 2017 SEOUL

SKETCHES //

ARCHITECTURAL IDEAS

XXX //

XXX XXX XXX

XXX //

XXX XXX XXX

XXX //

XXX XXX XXX

XXX //

XXX XXX XXX

XXX //

XXX XXX XXX


VENTURE CENTER //

SEJONG CAMPUS TOWN

@ SELECTIVE AMPLIFICATION / 2018 / SEOUL / KOREA / IN PROGRESS (TO BE COMPLETED BY 2019)


VENTURE CENTER //

SEJONG CAMPUS TOWN

Sejong Venture Center was a part of Sejong University’s winning entry to Campus Town Competition hosted by the city of Seoul. Located

at the southern tip of the campus, the container stacked building will provide spaces for animation/VR student start-ups. It also will

accommodate character market and public spaces including gallery and arcade for the local community. The project is currently on design

development phase, and will be built by 2019.


ground floor

On ground floor, there will be two separate buildings; one on the south will host spaces for start up and local

community, and one on the north will provide suporting facilities including management office. The two buildings will have a shared

outdoor space with drop off which will naturally connect the two. There will be a court yard/gallery at the center of the main building

surrounded by anymation character / vr market and retail spaces.

BOH

COURT YARD/GALLERY

ARCADE

CAR ACCESS

DROP OFF

DROP OFF

BOH/MANAGEMENT OFFICE

VENTURE CENTER/OFFICE

RETAIL

TOTEM

ANIMATION/VR MARKET

RETAIL

GROUND FLOOR

2nd floor

On 2nd floor, container boxes will be stepping as being stacked in order to provide roof terace and indoor meeting

spaces. Double height arcade will provide exhibition spaces along the one of the main axis of the building.

BOH

OPEN DESK/MEETING RM

ARCADE

RETAIL

BOH

VENTURE CENTER

ROOF DECK

ROOF DECK

ROOF DECK

VENTURE CENTER

ROOF DECK

2ND FLOOR


3rd floor

On 3rd floor, there will be two bridges; one connects the main building to the main campus to the right, which sits about

7 meters higher in elevation. The other will connect the main building to the anex to the north.

BOH

OPEN DESK/MEETING RM

BOH

ARCADE/BRIDGE

BRIDGE

VENTURE CENTER

ROOF DECK

ROOF DECK

ROOF DECK

VENTURE CENTER

3RD FLOOR

roof

The court yard at the center of the main building will have a glass roof forming an indoor atrium.

BULKHEAD

BULKHEAD

BULKHEAD

GLASS ROOF

ROOF


SYMBIOSIS & INCOMPLETENESS //

RURAL ARCHITECTURE COMPETITION

@ SELECTIVE AMPLIFICATION / 2017 / SEOUL / KOREA / HONORABLE MENTION


SYMBIOSIS & INCOMPLETENESS //

RURAL ARCHITECTURE COMPETITION

We believe incompleteness of the buildings will naturally create needs forthe unfulfilled and then eventually attract users from the other

building. Given the restrictions of area, budget, and predefined sets of programs, rather than designing them look complete and perfect,

which we don’t believe it is achievable any ways, we wanted to help the two talk to each other and establish collaboration between them in

a bigger picture. As a way of doing this, we as architects and designers took tectonic approaches basically testing out the idea of

juxtaposition.


S A

1 9 7 5

A

01. SYMBIOSIS & INCOMPLETENESS

-

The most important intention of the proposal is to differentiate two buildings from

each other, by which we meant to make both of them incomplete in many different

aspects and meanings.

03

04

05

Are you crazy? WHY?

06

Because we believe incompleteness of the buildings will naturally create needs for

the unfulfilled and then eventually attract users from the other building. Given the

restrictions of area, budget, and predefined sets of programs, rather than designing

them look complete and perfect, which we don’t believe it is achievable any ways, we

wanted to help the two talk to each other and establish collaboration between them

in a bigger picture. As a way of doing this, we as architects and designers took tectonic

approaches basically testing out the idea of juxtaposition.

02

10

02. JUXTAPOSITION

-

To achieve symbiosis arising from the differences, we looked at lots of different but

interesting ways of differentiation. Below are some of the most interesting but promising

ideas ranging from building shapes, their relationship with the sites, transparency/opaqueness,

types of human activities, etc..

01

12

11

13

STEP 01 - DEDUCTIVE (HORIZONTAL) VS ADDITIVE (VERTICAL)

STEP 02 - WIDE OPEN VS ENCLOSED

03. SENIOR CENTER // PYUNG-SANG &

-

The main concept of the senior center is Pyung-Sang (평상) which can be easily fou

very interesting in that it provides flexible space for socializing especially for elderly

hall as a huge Pyung-Sang where lots of different activity happens at the same tim

social activities. This space also can work as a stage, for example for a fashion sh

large space in a very high ceiling ware house building, we thought that sound attenu

propose series of wood baffles along the spine of the building. It will naturally wor

the space with warm ambient light. For better lighting condition for the guests, we

north facing roof so we can take advantage of indirect illumination. A diagonal wal

of densely installed bamboo batons. At the out most face of the building sit foldin

into an open pavilion in a sec. As this entire space under the roof will be very flexibl

senior lounges to more quite zone with minimal interruption - new extension on so

the senior lounge. Also its sloped face toward the Pyung-Sang and Madang will be a

on the stage. This sloping will naturally guide guests to the roof garden.

SKY LIGHT ROOF ASSEMBLY

FOR NORTH FACING ROOF

EXISTING VENT TO STAY FOR

NATURAL VENTILATION

STEP 03 - TRANSPARENT VS TRANSLUCENT

EXISTING WALL TO STAY

BAMBOO BATTEN WALL

STEP 04 - OUTDOOR ACTIVITY VS INDOOR ACTIVITY

EXISTING FASCIA

EXISTING COLUMNS T

PYUNG-SANG / MULTI PURPOS HALL

FOLDING GLASS WALL TRACK

WIDE FLANGE LINTEL BETWEEN

EXISTING COLUMNS

MADANG

OUTDOOR SITTING AREA


07

08

04. JUNIOR CENTER // INTANGIBLE BOUNDARY, CURTAIN

-

Unlike senior center, in the junior center, child care would be the foremost goal. That being said, we thought it wants to be of more

controlled space rather than wide open to the public. In an effort to create boundaries which is very subtle and intangible not to be

claustrophobic but somehow works, we thought about a curtain. It’s translucency gives you a feeling of protection, and could be a

good way of demarcating your area. Also the way how it sways along with wind reflecting sun lights as it moves will give beautiful

experiences for kids. Imagine you are sitting on a chair with your eyes closed right behind of the curtain. Sometimes the interplay

between sun and wind will let the ray hit on your eyes and it goes away right after. We thought this psychological approach will be

better than to put series of heavy cage around you.

09

SITE PLAN - SENIOR CENTER KEY FEATURES

SCAL 1:200

-

01. MAIN ENTRANCE TO THE SITE

02. OPEN SPACE - OUTDOOR STAGE / SITTING AREA

03. ENTRANCE TO MULTI-PURPOSE HALL / 평상

04. SKY LIGHT FACING NORTH

05. ENTRANCE TO QUITE ZONE

06. EXISTING CORRUGATED ROOF

07. REUSE EXISTING VENT FOR NATURAL VENTILATION

08. SERVICE ENTRANCE / LOADING

09. SUB ENTRANCE TO THE SITE

10. MAIN ENTRANCE TO SOUTH BUILDING

11. ROOF GARDEN ON THE NEW EXTENSION

12. OUTDOOR SITTING AREA / GREEN BERM

13. PARKING

WOOD FRAME TO HOLD THE CURTAIN

CURTAIN. RECYCLED PVC RIBBON

ATTACHED TO WOOD FRAME BEHIND

FLAT ROOF ASSEMBLY

MADANG

nd in a suburban city near Seoul. We found it is

people. Inspired by it, we propose multi-purpose

e. The wide open space will be a great place for

ow, small orchestra, etc. As we are dealing with

ation would be problematic. To prevent, we also

k as light reflector at the same time so as to lit

propose series of sky light roof assembly to the

l that divide multi-purpose hall will be made out

g glass walls which converts the entire building

e and from time to time a bit crazy, we relocated

uth. This will house admin offices in addition to

perfect spot for watching performance or shows

OPERABLE WINDOW ASSEMBLY

EGRESS STAIR

WIRE MESH FIRE STAIR ENCLOSURE

FOLDING WINDOW

WIDE FLANGE STRUCTURAL STEEL COLUMN

OPERABLE WINDOW ASSEMBLY

FOR NATURAL VENTILATION

CONNECTION TO THE PROPOSED

BUILDING EXTENSION

MOST OF THE EXISTING

BUILDING STRUCTURE TO STAY

METAL DECK W/ LIGHT WEIGHT CONC'

ON STEEL STRUCTURE

EXISTING ROOF ASSEMBLY TO STAY

EXISTING ROOF TRUSS TO STAY

WOOD BAFFLE FOR SOUND ATTENUATION

FOR LARGE SPACE AND ALSO AS LIGHT REFLECTOR

EXISTING CLEARSTORY TO STAY

01

02

04

03

SITE PLAN - JUNIOR CENTER KEY FEATURES

SCAL 1:200

-

01. SUB ENTRANCE TO THE SITE

02. ROOF GARDEN ON THE EXISTING BUILDING

03. PARKING

04. MAIN ENTRANCE TO THE BUILDING

05. FUTSAL FIELD / COURT YARD

06. FLOATING NEW EXTENSION

07. CURTAIN

08. MAIN ENTRANCE TO THE SITE

05

FOLDING GLASS WALL

07

TO STAY

ROOF GARDEN / GREEN BERM

06

O STAY

08


SENIOR CENTER // PLANS & RENDERS

01

02

01. SKY LIGHT FACING NORTH

02. EXISTING ROOF

03. OUT DOOR STAGE

04. OUT DOOR SITTING AREA (SLOPED)

05. ROOF GARDEN

06. PARKING

03

05

04

ROOF PLAN

SCALE 1:100


S A

1 9 7 5

B

SUB ENT.

01

02

03

06

04 05

07

SUB ENT.

SUB ENT.

08

17

01. MULTI PURPOSE HALL (PYUNG-SANG)

02. POCKET GARDEN

03. MULTI PURPOSE ROOM

04/05. REST ROOMS

06. CORRIDOR

07. ENTRY HALL

08. COMMON KITCHEN AND WORK

09. OFFICE

10. STORAGE

11/12. RESTROOMS

13. HALL

14/15. LOUNGE

16. OUT DOOR SITTING AREA(SLOPED)

17. OUT DOOR STAGE

18. PARKING

MAIN ENTRIES

09

MAIN ENT.

14

03

06

08

16

10

11

12

13

15

F01 PLAN

SCALE 1:100

SUB ENT.

01

04 05

SUB ENT.

07

02


01. ROOF GARDEN

02. STAIR

03/04. MULTI PURPOSE

05. SMALL LIBRARY

06. SELF STUDY ROOM

07. INTERNET ROOM

08. FOREIGN LANGUAGE

09. MEDIA ROOM

10. STAIR

11. REST ROOM

13

S A

1 9 7 5

C

JUNIOR CENTER // PLANS & RENDER

ROOF PLAN

SCALE 1:100

01

0

02

03

06

04

01/04. SHOWER

02/03. REST ROOMS

05. STORAGE

06. CORRIDOR

07. WASHING ROOM

08. KITCHEN

09. COOKING PRACTICE

10. BAKERY PRACTICE

11. DINING ROOM

12. STAIR

13. STAIR

F02 PLAN

SCALE 1:100


01 02

01

02

ROOM

ROOM

04

01. ROOF GARDEN

02. STAIR

03/04. MULTI PURPOSE ROOM

05. SMALL LIBRARY

06. SELF STUDY ROOM

07. INTERNET ROOM

08. FOREIGN LANGUAGE ROOM

09. MEDIA ROOM

10. STAIR

11. REST ROOM

03

10

08 06

03

05 04

F03 PLAN

SCALE 1:100

11

09

07

SUB ENT.

13

5

02

08

08 09 10

01

04 05 06

07

03

11

12

07

09

01. ENTRY HALL (SUB)

02/03. REST ROOMS

04. BOOK CAFE

05. COUNSELLING ROOM

06. OFFICE

07. BOOK CAFE HALL

08. STORAGE

09. MAIN ENTRY HALL

10. FUTSAL FIELD

11. STAIR

12. MADANG

13. PARKING

10

MAIN ENT.

13

11 12

F01 PLAN

SCALE 1:100


SECTIONS, ELEVATIONS

EXISTING FASCIA TO REMAIN

EXISTING VENT TO STAY FOR

NATURAL VENTILATION

EXISTING CORUGATED ROOF ASSEMBLY

ROOF S.L.

400

SENIOR CENTER : SOUTH ELEVATION

SCALE 1:100

EXISTING VENT TO STAY FOR

NATURAL VENTILATION

EXISTING ROOF TRUSS TO STAY

SKY LIGHT ROOF ASSEMBLY

FOR NORTH FACING ROOF

ROOF S.L.

400

4500

6850

2100

4500

250

6850

2100

1ST F.F.L.

1ST S.L.

G.L

RADIENT FLOOR HEATING

WOOD BAFFLE

FOR SOUND ATTENUATION

AND LIGHT DIFFUSION

BAMBOO BATON WALL

WIDE FLANGE LINTEL BETWEEN EXISTING COLUMNS

FOLDING WINDOW WALL

250

1ST F.F.L.

1ST S.L.

G.L

RADIENT FLOOR HEATING

SENIOR CENTER : LONGITUDINAL SECTION

SCALE 1:100

BAMBOO BATON WALL

WOOD BAFFLE

FOR SOUND ATTENUATION

AND LIGHT DIFFUSION

EXISTING CLEARSTORY BEHIND

TO STAY

OPERABLE WINDOW

/ PROJECTING

CURTAIN : RECYCLED

PVC STRIP

3RD S.L.

JUNIOR CENTER : FACADE DETAIL

SCALE 1:20

BOLTED TO WOOD FRAME

BEHIND W/ PVC WASHER

STAINLESS

STEEL FASCIA

WOOD FRAME ATTACHED TO THE

EDGE OF SLAB


S A

1 9 7 5

D

CURTAIN : RECYCLED PVC STRIPE

ATTACHED TO WOOD FRAME BEHIND

EXISTING BUILDING

ROOF S.L.

1160

JUNIOR CENTER : SOUTH ELEVATION WITH CURTAIN

SCALE 1:100

OPERABLE WINDOW ASSEMBLY

FOR NATURAL VENTILATION

3100

3RD S.L.

WIDE FRANGE LINTEL

BETWEEN EXISTING COLUMNS

2ND S.L.

3100 3100

10710

FOLDING WINDOW

WIRE MESH SCREEN FOR

FIRE EGRESS STAIR

1ST S.L.

G.L

250

WIDE FLANGE STRUCTURAL STEEL COLUMN

FLAT ROOF ASSEMBLY

ROOF S.L.

1160

EXISTING BUILDING

WIDE FRANGE LINTEL

BETWEEN EXISTING COLUMNS

3RD S.L.

2ND S.L.

3100 3100

3100

10710

COMPOSITE METAL DECK SLAB

ON STEEL STRUCTURE

FOLDING WINDOW

JUNIOR CENTER : SOUTH ELEVATION WITHOUT CURTAIN

SCALE 1:100

WIRE MESH SCREEN FOR

FIRE EGRESS STAIR

EXISTING BUILDING

TO REMAIN

1ST S.L.

G.L

250

WIDE FLANGE STRUCTURAL STEEL COLUMN

ROOF S.L.

1160

COMPOSITE METAL DECK SLAB

ON STEEL STRUCTURE

FIRE EGRESS EXIT

3RD S.L.

2ND S.L.

3100 3100 3100

10710

1ST S.L.

G.L

250

CURTAIN : RECYCLED PVC STRIPE

ATTACHED TO WOOD FRAME BEHIND

WIRE MESH SCREEN FOR

FIRE EGRESS STAIR

JUNIOR CENTER : CROSS SECTION

SCALE 1:100


ART QUAD, OBLIQUE FUNCTION //

SUNCHEON ART PLATFORM

@ SELECTIVE AMPLIFICATION / 2017 / SUNCHEON / KOREA


ART QUAD, OBLIQUE FUNCTION //

SUNCHEON ART PLATFORM

We imagined a great lawn – a wide open space with no obstruction that naturally lets people find their own way through it. As is often the

case in many other lawns in urban contexts, quads, another interesting name implying their coexistence with and morphology into rigid

urban grid systems, accumulate traces of pedestrian traffic on their surfaces. This naturally divide up areas into smaller patches that then

can be mapped with different urban activities. We thought that this approach to site planning is more natural and effective in

accommodating various activities than vice versa. Unlike most of quads are framed by surrounding building blocks in their specific urban

contexts, the site doesn’t have any strong formal constraints in that sense. But we felt it right to connect view shed along south north

direction bridging water front area all the way up to the tree on the parking lot of the adjacent building to the north of our site. This

naturally gave us a good sized quad that potentially accommodate all the program requirements.


art quad, oblique function

As Paul Virilio put it, “Being inclined, the wall becomes experiencable” provides a very useful

mechanism for organically inter-connected space. By pulling up some of the vertices of the quad, we were able to tuck in most of the

required spaces underneath and transformed the quad into continuous and occupiable green roof. In plan the circulation stays the same

but is expanded vertically flowing along the series of slops. This continuous green roof stretching the entire site from south to north is

supported by composite decking system composed of concrete slab and glulam, apparently inspired by Korean traditional rafter roofing

system. The sedum of green roof on slopping condition will be held by guard net that keeps the soil media in stasis even in the steepest

slope. As guests strolling along the oblique quad, they reach Yoenja-Ru at the southern tip of it with great view to the OK stream.

01. PAL MA BI

02. PARK HANG RAE MEMORIAL

03. TREE TO STAY

04. SUNKEN (CONNECTION TO UNDERGROUND MALL)

05/08. SEATING AREA

06/10. COURT YARD

07. SKY LIGHT TO MAIN EXHIBITION SPACE BELOW

09. RAMP TO YEONJA RU

11. YEONJA RU BELOW

12. OUTDOOR SCULPTURE GARDEN

13. AMPI THEATER

14. UNDESIGNATED LAWN FOR VARIOUS LOCAL ACTIVITIES

15. CAR ACCESS / CAR PARK

16. MAIN ENT. TO ADMINISTRATION OFFICE

17. GROUND LEVEL ACCESS TO MAIN EXHIBITION SPACE

18. CONNECTION TO UNDERGROUND MALL

19. VISITOR CENTER

20. VISITOR CENTER / MUSEUM ACCESS (B1 LEVEL)

21. VISITOR CENTER ACCESS UNDER PORTE COCHERE

22. MAIN ENT. TO CAFETERIA

23. SUB ENT. TO ADMINISTRATION OFFICE

24. MAIN ENT. TO YEONJA RU

25. ROOF ACCESS

26. MEANDERING PATH DIWB TO MAIN EXHIBITION HALL

27. ACCESS TO MUSEUM/ROOF

28. ACCESS TO WATER FRONT SEATING AREA


03

15

15

05

01

14

25

23

06

16

26

14

14

12

07

17

13

14

14

27

04

14

08

09

19

18

21

14

28

11

24

10

22

02

20


erent urban We activities. imagined We a great thought lawn that – a wide this approach open space with Unlike esting no most obstruction intersection of quads that are between naturally framed the by lets surrounding two people systems; find building recreational Then blocks we vs in thought functional. their specific about urban the underground contexts, the mall. It THE sits EDUCA E8

Ive in accommodating ART their own QUAD way various through activities it. As // is than often OBLIQUE vice the versa. case in site many 01 doesn’t EXISTING other FUNCTION

have lawns SITE any in strong urban FABRIC contexts, formal & ACCESS constraints quads, another

interesting blocks in name their implying specific urban their coexistence contexts, the with shed and THE EDUCATIONAL

in that 08 sense. a QUAD matter But - of we GREEN fact. felt it The PLATE

SPACE

02 CROSS PASSING PATHS right apparent to connect fix to view it is to provide 09 LIF wi

nding building along morphology EXHIBITION south north into direction SPACE

STORAGE

rigid urban bridging grid systems, water front area sit all nicely the in way between RAMP up to the at 4 tree meters on the below parking ground. Rather We ma

aints in that 02

accumulate sense. CROSS But PASSING

traces we felt of it PATHS

pedestrian right to connect traffic on view 0309 VIEW

SPACE LIFT CORRIDOR UP

WORK SPACE

0410 QUAD INSERT PROGRAMS UNDERNEATH

ART QUAD

their lot surfaces. of the adjacent This naturally building divide to the up areas north into of our smaller site. This

ACTIVATING and naturally created gave a THE gentle us a

UNDERGROUND

good slope sized radiating quad from that the one this 11 EXH

ADMINISTRATION

of no th

water front activating

patches area all that the underground

then way can up to be the mall

mapped tree on with the different parking We thought MALL

potentially

Rather about

urban activities. accommodate

than the underground being a typical mall.

We thought all the

museum It sits

that program

space 8.125

this approach requirements.

where meters guests below were ground forced which to flow makes along it a even predefined and

esting intersection between the two systems; recreatio valley, some

04 QUAD

f our site. This to site naturally planning gave is more us a natural good sized and quad effectIve that this 11 EXHIBITION not to be the SPACE case here AT anymore. JUNCTION

VISITOR CENTER

harder to access to it through the narrow stairs

in accommodating

as a matter of fact.

various

The

activities

apparent

than

fix to Chance

vice

it

versa.

is to provide encounter wide or serendipity open cut valley while which we are connects strolling around the qu

requirements.

We imagined a great lawn – a wide open space with no valley, obstruction is what that we are naturally trying lets to achieve people eventually find Then in

CAFETERIA we thought about the underground mall. It sits 8.1

Unlike the mall most into of ground quads are level framed and underground by surrounding parking

their own way through it. As is often the case many 01 building EXISTING space

other blocks lawns SITE can sit

in urban their FABRIC nicely specific in

contexts, & ACCESS between urban contexts, at 4 meters

quads, another

site interesting of triangular doesn’t name have patches any implying strong that their were formal coexistence derived constraints from with the in and that pedestrian morphology sense. But paths we into felt on rigid the it right urban lawn to and grid connect created systems, view a gentle sit slope nicely radiating in OPENING RAFTER

the 08 below

the

a QUAD THE ground.

project, and the pivotal point between the two has

matter EXHIBITION - of GREEN fact. GLULAM We made

The PLATE SPACE use of some

RAMP apparent fix to it is to provide wide

between from at 4 the meters one below of the ground. We made

02 shed 08 CROSS QUAD along PASSING - south GREEN north PATHS PLATE direction bridging water front 09 LIFT area UP all the way up to the tree on the parking Rather than being a typical museum space where gues

accumulate mall exits traces to the of other pedestrian side of traffic the site. on Overlapping their surfaces. the This valley naturally with divide the quad up areas gave us into an smaller interesting and intersection created YEONJA a gentle between RU slope the radiating two systems; from the one of the

lot of the adjacent building to the north of our site. This naturally gave us a good sized quad that this not to be the case here anymore. Chance encounte

patches that then can be mapped with different urban activities. We thought that this approach esting intersection

EVENT SUITE

between the two systems; OCCUPIABLE

recreational vs functional.

recreationa

potentially accommodate all the program requirements.

valley, (RIVER is what VIEW) we are trying to achieve eventually GREEN SLOPE in th

to site planning is more natural and effectIve in accommodating ART QUAD various activities // than OBLIQUE vice versa. FUNCTION

Unlike most of quads are framed by surrounding building blocks in their specific urban contexts, the THE EDUCATIONAL EXHIBITION

COURT YARD

SPACE

STORAGE

LIQUE 01 EXISTING FUNCTION

SITE FABRIC & ACCESS

08 QUAD - GREEN PLATE

SPACE RAMP

WORK SPACE

site doesn’t have any strong formal constraints in that 02 sense. CROSS But PASSING we felt it PATHS right to connect view 0309 VIEW LIFT CORRIDOR UP

OUTDOOR 10 INS

OPENING

ADMINISTRATION

ART QUAD

SEATING ACTIV AREA

shed along south north direction bridging water front area all the way up to the tree on the parking Rather than being a typical museum space where guests

03 VIEW CORRIDOR

0410 QUAD INSERT PROGRAMS UNDERNEATH 05

lot of the adjacent building to the north of our site. This

We imagined ACTIVATING

naturally gave

a great THE

us a

lawn UNDERGROUND

good sized quad that this 11 CONNECT EXHIBITION YEONJA RU

not WATER to be UNDERGROUND

FRONT the SPACE case here AT anymore. JUNCTION MALLChance encounter 12 VISITOR RO

– a wide open space MALL

EVENT SUITE

o

with no obstruction SEATING that AREA

potentially accommodate all the program requirements.

valley, (RIVER is what VIEW) we are naturally trying lets to achieve people eventually find Then in CAFETE the w

05 CONNECT UNDERGROUND MALL their 12 VISITOR

own ROOF CENTER

way through it. As is often the case in many other lawns -8.125 Min urban contexts, -4.0 M quads, anoth-SKer interesting Then CAFETERIA we thought name implying about the their underground coexistence mall. with and It sits morphology 8.125 COURT meters YARD

LIGHT

a matt

pace with no obstruction that naturally lets people find

into below rigid ground urban grid which systems, makes it even sit hard nice

ase in many 01 EXISTING other lawns SITE in urban FABRIC contexts, & ACCESS quads, anoth-0ence with and morphology into rigid urban grid systems, patches sit nicely that then in between can at mapped 4 meters with below different ground. urban We activities. made use We of some thought of triangular that this approach patches that were esting deri

08 CROSS

accumulate a QUAD matter PASSING -

traces of GREEN fact. of pedestrian The PATHS PLATE apparent traffic fix to on it their is to surfaces. provide 09 LIFT wide UPCAFETERIA

-8.125 M

-4.0 M

This open naturally cut valley divide which up areas connects into smaller the mall into and grou cre

0309 VIEW LIFT CORRIDOR UP

10 INSERT PROGRAMS UNDERNEATH

their surfaces. This naturally divide up areas into smaller to site and planning created is a more gentle natural slope radiating and effectIve from in the accommodating one of the mall various exits to activities the other than side vice of the versa. site. Overlappin

erent urban activities. We thought that this approach Unlike VISITOR

esting most CENTER

intersection of quads are between framed the by surrounding two systems; building recreational blocks vs in functional. their specific urban contexts, the THE EDUCA E

Ive in accommodating ART QUAD various activities // than OBLIQUE vice versa.

MALL

SPACE

site doesn’t CAFETERIA FUNCTION

have any strong formal constraints in that sense. ENT But we felt it right to connect view

nding building blocks in their specific urban contexts, the shed THE EDUCATIONAL

along EXHIBITION south north direction SPACE

STORAGE

bridging water front area all the way up to the tree on the parking Rather

RAMP

RAMP

aints in that 02 sense. CROSS MALL

SPACE

WORK SPACE

But PASSING we felt it PATHS right to connect view 0309 VIEW LIFT CORRIDOR UP

ART QUAD

lot of the adjacent building to the north of our site. This

0410 QUAD INSERT PROGRAMS UNDERNEATH

ACTIVATING

naturally gave

THE

us a

UNDERGROUND

good sized quad that this 11 EXH

ENT

OPENING

ADMINISTRATION

no

water front area all the way up to the tree on the parking

MALL

E

potentially

Rather

accommodate

than being a typical

all the

museum

program

space

requirements.

where guests were forced to flow along a predefined and valley, some(

04 QUAD

05

f our site. This naturally gave us a good sized quad that this 11 CONNECT EXHIBITION YEONJA

not to be UNDERGROUND RU

EVENT SUITE

the SPACE case here AT anymore. JUNCTION MALLChance encounter 0612 CAR VISITOR ROOF or PARK CENTER

serendipity ESCALATOR while we are strolling around the 13 LIF qu

requirements.

We imagined a great lawn – a wide open space with no valley, obstruction

(RIVER is what VIEW)

that we are naturally trying lets to achieve people eventually find Then in CAFETERIA the we project, thought B1 ACCESS and about the pivotal the underground point between mall. the It two sits has 8.1

their 06 own CAR way PARK through it. As is often the case in many 01 EXISTING other 13 LIFT lawns -8.125 SITE Min urban FABRIC contexts, &-4.0 ACCESS M quads, another

interesting name implying their coexistence with and

08 a QUAD matter - of GREEN fact. GLULAM

RAMP The PLATE apparent fix to it is to provide wide

COURT YARD

EDUCATIONAL

STORAGE

morphology into rigid urban grid systems, sit nicely in OPENING

RAFTER

between RAMP at 4 meters below ground. We made

0208 CROSS QUAD PASSING - GREEN PATHS PLATE

0309 VIEW

SPACE LIFT CORRIDOR UP

WORK SPACE

10 INSERT PROGRAMS UNDERNEATH

accumulate traces of pedestrian traffic on their surfaces. This naturally divide up areas ADMINISTRATION

into smaller and created YEONJA a gentle RU slope radiating from the one of the

patches that then can be mapped with different urban activities. We thought that this approach esting intersection EVENT SUITE between the two systems; OCCUPIABLE

0410 QUAD INSERT PROGRAMS UNDERNEATH 11 EXHIBITION SPACE AT JUNCTION

VISITOR CENTER

recreationa

(RIVER VIEW)

GREEN SLOPE

to site planning is more natural and effectIve in accommodating various activities than vice versa.

CAFETERIA

Unlike VISITOR most CENTER of quads are framed by surrounding building blocks in their specific urban contexts, the THE EXHIBITION COURT YARD

OPEN STEPS

EDUCATIONAL GLULAM RAMP

SPACE

STORAGE

MALL

SPACE

WORK (COVERED SPACE SEATING A

site doesn’t have any strong formal constraints in that sense. But we felt it right to connect view

OUTDOOR

CAFETERIA

ENT

OPENING RAFTER CAR PARK

ADMINISTRATION

SEATING AREA

shed along south north direction bridging water front area all the way up to the tree on the parking Rather than UNDERGROUD being a typical museum space where guests

03 VIEW CORRIDOR

10 INSERT PROGRAMS UNDERNEATH

YEONJA RU

OPEN SLOPE INDOOR SCUL

lot of the adjacent building

CAR

to

PARK

the north of our site. This

04 QUAD

naturally gave us a good sized quad that

05 this 11 CONNECT EXHIBITION not WATER MALL

EVENT

to be UNDERGROUND ACCESS FRONT

SUITE

the MALL

SPACE case here AT anymore. JUNCTION MALLChance (COVERED)

encounter 12 ROGA

o

SEATING AREA ENT

potentially accommodate all the program requirements.

valley, (RIVER is what VIEW) we are trying to achieve eventually in the

05 CONNECT UNDERGROUND MALL 0612 CAR VISITOR ROOF PARK CENTER

0713 LANDSCAPE LIFT BERM

14 COURT INS

0107 EXISTING LANDSCAPE -8.125 SITE M FABRIC BERM &-4.0 ACCESS M

EDUCATIONAL

0309 VIEW

SPACE LIFT CORRIDOR UP

0511 CONNECT EXHIBITION UNDERGROUND SPACE AT JUNCTION MALL

-8.125 M

MALL

ENT

04 QUAD

06 CAR PARK

02 CROSS MALL PASSING PATHS

ENT

0410 QUAD INSERT PROGRAMS UNDERNEATH

0612 CAR VISITOR ROOF PARK CENTER

CAFETERIA

05 CONNECT UNDERGROUND MALL

EDUCATIONAL

-8.125 M

03 VIEW

SPACE

CORRIDOR

-8.125 M

MALL

ENT

-4.0 M

0511 CONNECT EXHIBITION UNDERGROUND SPACE AT JUNCTION MALL

0713 LANDSCAPE LIFT BERM

06 CAR PARK 0713 LANDSCAPE LIFT BERM

MALL

ENT

-4.0 M

YEONJA CAR RUPARK

STORAGE

WORK SPACE

ADMINISTRATION

CAFETERIA

0208 CROSS 14 QUAD INSERT PASSING - GREEN PROGRAM PATHS PLATEUNDERNEATH

0410 QUAD INSERT RIVER VIEWPROGRAMS UNDERNEATH

VISITOR CENTER

CAFETERIA

EDUCATIONAL GLULAM

SPACE RAMP

OPENING RAFTER

0511 CONNECT EXHIBITION YEONJA UNDERGROUND RUSPACE AT JUNCTION MALL

MALL

EVENT SUITE ENT

(RIVER VIEW)

13 LIFT-8.125 M

EDUCATIONAL COURT YARD

0309 VIEW

SPACE LIFT CORRIDOR UP

0511 CONNECT EXHIBITION UNDERGROUND SPACE AT JUNCTION MALL

WATER FRONT

SEATING AREA

-8.125 M

MALL

ENT

CAFETERIA

0612 CAR ROOF PARK

MALL

ENT

0410 QUAD INSERT RIVER VIEWPROGRAMS UNDERNEATH

0612 CAR ROOF PARK

VISITOR CENTER

ESCALATOR

CAFETERIA B1 ACCESS

GLULAM

RAFTER

YEONJA CAR RUPARK

RIVER VIEW

EDUCATIONAL

SPACE

STORAGE

WORK SPACE

ADMINISTRATION

MALL

ENT

CAFETERIA

RAMP

ESCALATOR

B1 ACCESS

GLULAM

RAMP RAFTER YEONJA RU

VISITOR CENTER

ESCALATOR

CAFETERIA B1 ACCESS

GLULAM RAMP

OPENING RAFTER

UNDERGROUD

YEONJA RU

EVENT WATER MALL ACCESS

SUITE FRONT MALL

(RIVER SEATING VIEW) AREA ENT

13 LIFT OUTDOOR

EDUCATIONAL COURT SEATING YARD

SPACE CAFETERIA

ESCALATOR

B1 ACCESS

STORAGE

WORK SPACE

RIVER VIEW

RAMP YEONJA RU

ADMINISTRATION

INDOOR SCULPTURE

GARDEN ESCALATOR

B1 ACCESS

COURT YARD GLULAM

RAFTER

YEONJA RU

RIVER VIEW

UNDERGROUD

MALL ACCESS

04 QUAD 0511 CONNECT EXHIBITION UNDERGROUND SPACE AT JUNCTION MALL 12 ROOF

RAMP

UNDERGROUD

WATER MALL ACCESS FRONT MALL

SEATING AREA ENT

0612 CAR ROOF PARK 0713 LANDSCAPE LIFT BERM

14 INSERT PROGRAM UNDERNEATH

RIVER VIEW

MALL

ENT

MALL

ENT

MALL

ENT

07 LANDSCAPE BERM

-4.0 M

CAR PARK

CAR PARK

STORAGE

WORK SPACE

ADMINISTRATION

12 ROOF

13 LIFT

RAMP

07 LANDSCAPE BERM

-4.0 M

14 INSERT PROGRAM UNDERNEATH

MALL

ENT

YEONJA RU

CAR PARK

YEONJA RU

CAR PARK

-4.0 M

-8.125 OUTDOOR

M -4.0 M

SEATING

CAFETERIA

STORAGE

WORK SPACE

ADMINISTRATION

14 INSERT PROGRAM UNDERNEATH

-8.125 OUTDOOR

M

EDUCATIONAL COURT SEATING YARD

CAFETERIA

09 SPACE LIFT UP

11 EXHIBITION SPACE AT JUNCTION

10 INSERT RIVER VIEWPROGRAMS UNDERNEATH

12 ROOF

UNDERGROUD

WATER MALL ACCESS FRONT

SEATING AREA

OUTDOOR

SEATING

CAFETERIA

11 EXHIBITION SPACE AT JUNCTION

13 LIFT

14 INSERT PROGRAM UNDERNEATH

ADMINISTRATION

WATER FRONT

SEATING AREA

0612 CAR ROOF PARK

07 LANDSCAPE BERM

-4.0 M

14 INSERT PROGRAM UNDERNEATH

CAR PARK

14 INSERT PROGRAM UNDERNEATH

SKY LIGHT

STORAGE

WORK SPACE

RIVER

ADMINISTRATION

ADMINISTR

E

(

13 LIF

W

SE

OPEN STEPS

(COVERED SEATING A

OPEN SLOPE INDOOR SCUL

VISITOR (COVERED)

CENTER GA

14 INS

COURT

MULTI PURPOSE

STORAGE

AUDITORIUM

WORK SPACE

RIVER

ADMINISTRATION

INDOOR SCULPTU

ADMINISTR GARD

COURT YA

ADMINISTRAT

U

WM

SE

INDOOR SCUL

VISITOR CENTER GA

COURT


OCCUPIABLE

GREEN SLOPE

OUTDOOR

SEATING AREA

SKY LIGHT

RAMP

OPENING

YEONJA RU

EVENT SUITE

(RIVER VIEW)

COURT YARD

GLULAM ROOF

STRUCTURE

OPEN STEPS

(COVERED SEATING AREA)

OPEN SLOPE

(COVERED)

RAMP

DOUBLE HEIGHT

EXHIBITION SPACE

RAMP OPENING

GLULAM

RAFTER

OUTDOOR

SEATING AREA

WATER FRONT

SEATING AREA

CAFETERIA

VISITOR CENTER

MULTI PURPOSE

AUDITORIUM

GLULAM

RAFTER

OUTDOOR SCULPTURE

GARDEN

EXHIBITION

PLATFORM

ESCALATOR

B1 ACCESS

MEANDERING

PATH

UNDERGROUD

MALL ACCESS

OUTDOOR

SEATING

INDOOR SCULPTURE

GARDEN

COURT YARD

ADA PARKING

ADMINISTRATION

DROP OFF

PARKING

RAMP


SECTION (S-N)

CAR

ENT

0

06

33

OFFICE

SUB ENT

22

05

20 21

05

23 24

19

06

OFFICE

SUB ENT

05

OFFICE

ENT

MUSEUM

ENT

16

06

07

OFFICE

ENT

17

18

08

OFFICE

ENT

MUSEUM

ENT

15

06

07

24

19

OFFICE

SUB ENT

22

20 21

04

SECTION (W-E)

25

13

28

26

27

08

08

14

22

MUSEUM

ENT

MUSEUM

ENT

21

OFFICE

ENT

17

18

OFFICE

ENT

29

31

MUSEUM

22ENT (B1)

22

12

30

MUSEUM

ENT

MUSEUM

ENT

MUSEUM

ENT

MUSEUM

ENT

23

23

08

11

21

10

09

09

23

11 10

11

09 12

10

12

12

MUSEUM

ENT

MUSEUM

ENT

MUSEUM 17

ENT

MUSEUM

17

ENT

18

01

03

32

12

07 19

17

07

05

19

17

06

17 20

06

16

01. UNDERGROUND MALL ENT

02. 18

17 20

STAGE

16

03. OUTDOOR SEATING AREA

04. 18 OUTDOOR DINNING AREA

05. GALLERY

06. INDOOR VISITOR SCULPTURE CENTERGARDEN

07. STAGEENT

08. OUTDOOR SEATING AREA

09. COURT YARD

10. RAMP TO YOEN JA RU

14 13

VISITOR CENTER

14

ENT13

15

15

MUSEUM

ENT

MUSEUM

ENT

10

02

02

03

04

YEONJA RU / RESTAURANT

ENT

09

33

OFFICE YEONJA RU

SUB MAIN ENT ENT

01

27

05

SITOR CENTER

T

MUSEUM

ENT

MUSEUM

ENT

SEUM

T (B1)

12

SEUM

T (B1)

12

07

23 24

17

19

MUSEUM 16

SYSTEMFILTER

ENT

YEONJA RU / RESTAURANT

STYROFOAM INSULATION

ENT

MAT EROSION BLANKET OFFICE

ENT

15

15

MUSEUM

ENT

14

14

11

11

16

20 21

06

VISITOR CENTER

ROOF PLAN ENT

23 OFFICE

24

33

19 SUB ENT

SCALE 1:300

01. OCCUPIABLE ROOF (SEATING AREA) 22

02. COURT YARD (YEONJA RU)

03. RAMP TO YEONJA RU

20 OFFICE 21

ENT

17

22

04. SKY LIGHT TO GALLERY BELOW

05. COURT YARD (OFFICE)

06. OCCUPIABLE ROOF (SEATING AREA)

GROWING MEDIA

DRAIN MAT

TENDON STOP ASSEMBLY

GARDNET

SYSTEMFILTER

ANCHOR UNDER MEDIA AND

INSTALL UP ONTO INSIDE FACE OF

GARDNET CELL

DRAIN MAT EROSION BLANKET

TURN DOWN AND SECURE EDGE

OF 10GARDMAT ALONG FACE OF

GARDNET CELL

STYROFOAM INSULATION

09

GREEN ROOF BUILD-UP DETAIL

08

SCALE 1:20

10

07 07

18

OFFICE

ENT

18

CONTINUOUS, PERFORATED

ATTACHMENT BRACKET

CLOSED EYEBOLT ASSEMBLY

TENDON OFFICE LOOP AND OVAL

STYROFOAM INSULATION

ENT

DRAINAGE MAT

TENDON STOP ASSEMBLY

GROWING MEDIA

SYSTEMFILTER

WATERPROOFING

MUSEUM

ENT

GROUND FLOOR PLAN

SCALE 1:300

01. OUTDOOR SEATING

02. RESTROOMS

03. OPEN KITCHEN

04. BAR/DINING AREA

05. RECEPTION

06. GALLERY

07. AV ROOM

08. MULTI-PURPOSE AUDITORIUM

09. EXPERIENCE ROOM

10. GREEN ROOF/SLOPE

11. TEMPORARY EXHIBITION (B1)

12. AMPITHEATER STAGE (B1)

13. OUTDOOR SCLUPTURE GARDEN ON SLOPE

14. INDOOR SCULPTURE GARDEN ON SLOPE

15. FOYER

16. GREEN ROOF/SLOPE

17. COURT YARD

18. RECEPTION

19. KITCHEN/OPEN OFFICE FOR CURATORS

20. MEETING ROOM

21. STORAGE

22. OFFICE

23. WORKSHOP

24. RESTROOMS

25. RESTROOMS

26. STAFF AREA

27. DINING AREA

28. OUTDOOR SEATING (STEPPED)

29. RESTROOMS

30. YEONJA RU (EVENT SUITE)

31. CATERING ROOM

32. COURT YARD/OBSERVATION DECK

33. ADA PARKING

SECTION (S-N)

SCALE 1:300

ROOF (GL +11.90)

2ND FL (GL +5.50)

GROUND FL (0.00)

25

26

27

01. OCCUPIABLE ROOF (SEATING AREA)

02. COURT YARD (YEONJA

28

RU)

03. RAMP TO YEONJA RU

04. SKY LIGHT TO GALLERY BELOW

05. COURT YARD (OFFICE)

06. OCCUPIABLE 25 ROOF (SEATING AREA)

26

27

29

25

29

04

02

28

2ND FLOOR

3RD FLOOR

31

26

28

31

03

03

30

30

01

27

32

32

SECTION

SCALE 1:

ROOF (GL +11

2ND FL (GL +4

GROUND FL (0

01. UNDERGROUND MALL ENT

02. STAGE

05

03. OUTDOOR

06

SEATING AREA

04. OUTDOOR DINNING AREA

05. GALLERY

06. INDOOR SCULPTURE GARDEN

07. STAGE 07

08

08. OUTDOOR SEATING AREA

09. COURT YARD

10. RAMP TO YOEN JA RU


5

04

02

S A

0 4 1 5

B

29 01

04

02

29

04

02

05

MALL

28 EXIT

04 02

25

27

26

27

01

28

MALL

EXIT

27

07

01

01

28

03

06

07

03

03

21

03

MUSEUM

ENT

08

29

31

30

09

21

32

MUSEUM MUSEUM

ENT ENT

MUSEUM

ENT

19

11 10

12

20

16

12

14 13

22

MUSEUM

ENT

23 25

09

02

11 10

12

MUSEUM

ENT

129

01

/ ELEVATION (W-E)

300

.90)

24

24

25

25

15

MUSEUM

ENT

MUSEUM

ENT

26

26

02

02

01

01

09

17

17 20

24

31

16

18

30

01. OUTDOOR SEATING

02. RESTROOMS

03. OPEN KITCHEN

04. BAR/DINING AREA

05. RECEPTION

06. GALLERY

07. AV ROOM

08. MULTI-PURPOSE AUDITORIUM

09. EXPERIENCE ROOM

10. GREEN ROOF/SLOPE

B1/B2 FLOOR PLAN

11. TEMPORARY EXHIBITION (B1)

12. AMPITHEATER 01. STAGE HALL

SCALE (B1)

13. OUTDOOR SCLUPTURE 02. STORAGE

1:300

GARDEN ON SLOPE

14. INDOOR SCULPTURE 03. 01. HALL PARKING GARDEN 100 + ON 2 TRUCK SLOPE LOADING

15. FOYER 04. 02. STORAGE PARKING RAMP

16. GREEN ROOF/SLOPE 05. 03. PARKING MEP 100 + 2 TRUCK LOADING

17. COURT YARD06. 04. STORAGE PARKING RAMP (WORK SPACE ANEX)

18. RECEPTION 07. 05. LOADING MEP DOCK

19. KITCHEN/OPEN 08. 06. STORAGE

OFFICE PERMANENT (WORK

FOR CURATORS COLLECTION SPACE ANEX)

20. MEETING ROOM 09. 07. LOADING TEMPORARY DOCK EXHIBIT

08. PERMANENT COLLECTION

21. STORAGE

22. OFFICE 11. 09. MULTI TEMPORARY PURPOSE EXHIBIT AUDITORIUM

23. WORKSHOP 12. REST ROOMS

24. RESTROOMS13. 11. MULTI STAFF PURPOSE OFFICE AUDITORIUM

25. RESTROOMS14. 12. REST PREPARATION ROOMS ROOM

26. STAFF AREA15. 13. STAFF CAFE/RESTAURANT

OFFICE

27. DINING AREA16. 14. MUSEUM PREPARATION SHOPROOM

28. OUTDOOR SEATING 17. 15. SHOWER/TOILET/CHANGING CAFE/RESTAURANT

(STEPPED)

ROOM

29. RESTROOMS18. 16. MUSEUM PANTRY SHOP

17. SHOWER/TOILET/CHANGING ROOM

30. YEONJA RU (EVENT SUITE)

31. CATERING ROOM 20. 18. PANTRY MEETING ROOM

32. COURT YARD/OBSERVATION 21. INDOOR SCULPTURE DECK GARDEN

33. ADA PARKING 22. 20. OUTDOOR MEETING ROOM SCULPTURE CARDEN

23. 21. INDOOR AMPI-THEATER SCULPTURE STAGE GARDEN

24. 22. OUTDOOR SCULPTURE DINNING AREA CARDEN

25. 23. AMPI-THEATER OUTDOOR SEATING STAGE AREA

26. 24. STAGE OUTDOOR (LEVEL DINNING B2) AREA

25. OUTDOOR SEATING AREA

26. STAGE (LEVEL B2)

01

19

32 26

14 13

10. EXPERIENCE ROOM WITH RETRACTABLE SEATING

10. EXPERIENCE ROOM WITH RETRACTABLE SEATING

19. STORAGE (LOCAL INFORMATIONAL MATERIALS)

19. STORAGE (LOCAL INFORMATIONAL MATERIALS)

15

MALL

EXIT

27

25

01. HALL

02. STORAGE

03. MUSEUM PARKING 100 + 2 TRUCK LOADING

04. ENT PARKING RAMP

05. MEP

06. STORAGE (WORK SPACE ANEX)

07. LOADING DOCK

08. PERMANENT COLLECTION 24

09. TEMPORARY EXHIBIT

10. EXPERIENCE ROOM WITH RETRACTABLE SEATING

11. MULTI PURPOSE AUDITORIUM

12. REST ROOMS

13. STAFF OFFICE

14. PREPARATION ROOM

15. CAFE/RESTAURANT

16. MUSEUM SHOP

17. SHOWER/TOILET/CHANGING ROOM

18. PANTRY

19. STORAGE (LOCAL INFORMATIONAL MATERIALS)

20. MEETING ROOM

21. INDOOR SCULPTURE GARDEN

22. OUTDOOR SCULPTURE CARDEN

23. AMPI-THEATER STAGE

24. OUTDOOR DINNING AREA

25. OUTDOOR SEATING AREA

26. STAGE (LEVEL B2)

27. ENTRY TO UNDERGROUND SHOPPING MALL

28. HALL

29. STORAGE

30. STAGE / OUTDOOR SEATING AREA

31. OUTDOOR SEATING AREA

32. TAKE OUT CAFE

26

02

01

31

32

30

29

MALL

EXIT

27

01. HALL

2ND FL (GL +4.00)

02. STORAGE

03. PARKING 100 + 2 TRUCK LOADING

04. PARKING RAMP

05. MEP

ROOF (GL +11.90)

GROUND FL (0.00)

06. STORAGE (WORK SPACE ANEX)

07. LOADING DOCK

08. PERMANENT COLLECTION

09. TEMPORARY EXHIBIT

10. EXPERIENCE ROOM WITH RETRACTABLE SEATI

11. MULTI PURPOSE AUDITORIUM01

12. REST ROOMS

13. STAFF OFFICE

14. PREPARATION ROOM

15. CAFE/RESTAURANT

16. MUSEUM SHOP

17. SHOWER/TOILET/CHANGING ROOM

18. PANTRY

19. STORAGE (LOCAL INFORMATIONAL MATERIALS

20. MEETING ROOM

21. INDOOR SCULPTURE GARDEN

22. OUTDOOR SCULPTURE CARDEN

23. AMPI-THEATER STAGE

24. OUTDOOR DINNING AREA

25. OUTDOOR SEATING AREA

01.

26.

UNDERGROUND

STAGE (LEVEL B2)

MALL ENT

02. STAGE

03. OUTDOOR SEATING AREA

04. OUTDOOR DINNING AREA

05. GALLERY

06. INDOOR SCULPTURE GARDEN

07. STAGE

08. OUTDOOR SEATING AREA

09. COURT YARD

10. RAMP TO YOEN JA RU

27.

28.

29.

30.

31.

32.

.00)

.00)

10

06

08

04 05

07

01 02 03

09

10

11

12

13

14

15 15 15

01

16

ROOF (GL +8.50)

2ND FL (GL +4.00)

GROUND FL (0.00)

01. OCCUPIABLE ROOF

02. YEON JA RU

03. RESTAURANT/BAR

04. OUTDOOR SEATING AREA

05. RAMP UP TO YEON JA RU

06. VISITOR CENTER

07. CAFE/LOCAL INFO GALLERY

08. PREPARATION ROOM/STAFF AREA

09. EXPERIENCE ROOM

10. TEMPORARY EXHIBITION

11. INDOOR SCLUPTURE GARDEN

12. PERMANANT COLLECTION

13. CAR PARK

14. COURT YARD TO OFFICE

15. OPEN OFFICE / MEETING ROOM / OFFICE

16. DROP OFF


PARTS TO WHOLE //

SEOUL ANIMATION CENTER

@ SELECTIVE AMPLIFICATION / 2017 / SEOUL / KOREA


PARTS TO WHOLE //

SEOUL ANIMATION CENTER

The programs of Seoul Animation Center shall be rendered into three major sections – ‘Creative Factory,’ ‘Market Convention’ and ‘Imagery

Playground.’ ‘Creative Factory’ shall become a productive section as a space for creative companies, with the aim to perform rearrangement

and alteration of functions of Animation Town, a core figure of Seoul Imagination Industry. ‘Market Convention’ is a communicative section

as a circulation platform in which the ‘market,’ signifying the long-term goal of industrial function, is joined with ‘Convention,’ a spatial idea

with a modern reinterpretation of a market that serves as a temporary and integrated event space. ‘Imagery Playground’ is an enjoyment

(play) section that shall attract citizens and experiences, composed of a theatre, contents playground, a library and many more.

- competition brief -


site planning

소파로에 면한 대지의 북측 및 서측의 고저차가 2개층의 높이에 해당하기에 이를 적극적으로 활용하는 공간 배치 및 접근에

대한 고려. 대지 북측으로 명동방면에서 유입되는 보행자 접근(지하2층 레벨), 대지 서측으로 버스 및 자가용을 이용한 접근 (지상 1층 레벨), 그리고 향후

예장자락 개발이 됨을 고려했을 때 남산 예술센터의 위를 지나는 대지 동측으로의 접근(지하1층 레벨)의 큰 세가지 접근을 고려. 각기 다른 레벨의 세개의

진입공간이 연결되는 연속적인 동선의 흐름은 자연히 대지를 남북의 두개의 영역으로 구획하며 남측은 건폐율 30%에 해당하는 건물의 영역으로 북측은 인접한

소파로및 보행자 동선과 연결되는 야외 놀이및 전시 공간과 오픈스페이스로 전용하게 됨.


LV. B2

OUTDOOR EXHIBITION

FRAME/CANOPY

ENTRY

PLAZA

PLAY GROUND

OUTDOOR SEATING

UNDER CANOPY

BUS STOP

LV. F1

DN

OUTDOOR

STAGE

DN

LV. B1

ENTRY

PLAZA

DROP OFF

DN


AXONOMETRIC DIAGRAM I

7-○. ○○○○○

VOXEL

OUTDOOR EXHIBITION

PLAYGROUND

CONVENTION

EVENT

MODULAR PLAY STRUCTURE

FORMAL OFFICES

INFORMAL

OFFICES

FORMAL OFFICES

EXHIBITION

SMALL CONVENTION

THEATER

• 기존 애니메이션 센터에 있는 정방형의 프레임 구조는 작게는 캐릭터의 전시를 위한 용도로 사용될

CAR PARK

MEP

수도 있고 확장될시에는 놀이 시설을 설치하거나 외부 캐노피로 활용될 수 있는 유연한 플랫폼으로

활용 가능하기에 재미있을뿐 아니라 실용적인 헤리티지임.

• 저마다 유연성을 가진 작은 모듈들이 서로 조합되어 확장될 때 전체적인 시스템이 다양한 필요성의

변화에 조금 더 유연하게 대처할수 있을것이라 생각됨.

• 작은 입방체인 복셀은 크기에 따라 여러가지 프로그램을 수용할수 있으며 또한 삼차원으로 배치시

대지의 고저차 및 층간의 수직적인 이동을 도울뿐 아니라 건물/랜드스케이프 전체가 일관된 디자인

언어로서 프로그램상의 요구조건을 만족하면서 하나로 융합되도록 도와주는 매개체가 됨.

• 전체적으로 두개의 큰 복셀이 자리잡게 되며 놀이터, 야외 극장, 야외 전시시설등의요소를 포함하는

열린 프레임 구조로서의 입방체와, 필요한 프로그램을 수용하는 구획된 공간들의 집합체로서의 건

물로 구현됨.

PLAZA

LOBBY / ATRIUM

EXHIBITION


AXONOMETRIC DIAGRAM II

프로그램

• 건폐율및 높이와 층수의 제한으로 인하여 상당부분의 프로그램을 지하층에서 소화하여야 함.

• 대규모 컨벤션센터는 오픈 플랜과 높은 층고를 위해 지하 2층에 계획하고 대지 고저차를 이용

한 북측 광장을 통해 진입하도록 계획함.

• 창작팩토리는 채광이 유리한 지상 2-3층에 계획하고 이와 수직적으로 연결되는 소규모 전시

공간을 지하 1층과 지상 1층에 계획하여 입주회사들이 상시 이용할수 있도록 계획함.

• 일반 대중및 창작자들이 많이 이용하게 될 아카데미와 임시 전시시설 및 카페등은 1층에 배치

하여 메인 로비로 진입시 바로 접근할수 있도록 함.

• 대지 북측 지하 2층레벨에 위치한 진입광장과 대지 서측 소파로를 면한 지상 1층레벨에 위치한

진입광장의 중간지점에 지하 1층 레벨의 또다른 광장을 제안하고 이들의 연속적인 연결을 통

해 각각의 프로그램들을 유기적으로 연결해줌. 복셀로 만들어진 경사로는 중간중간 전시나 작

은 규모의 모임을 할수 있는 참을 중간 중간 제안함으로써 상층부의 작업공간과 하층부의 관람

공간을 시각적/물리적으로 연결하는 중간적인 성격을 가지게 됨.

• 대지 북서측의 경사지형을 이용, 보도에서 직접적으로 접근이 가능한 리테일 공간을 마련함.

FORMAL/INFORMAL OFFICES

PLAYGROUND / OUTDOOR EXHIBITION

PLAZA / EVENT

LOBBY

EDUCATION

THEATER

CONVENTION

CAR PARK

MEP

OUTDOOR EXHIBITION

FORMAL OFFICES

INFORMAL

OFFICES

FORMAL OFFICES

PLAYGROUND

CONVENTION

EDUCATION

EVENT

PLAZA

LOBBY / ATRIUM

EXHIBITION

EXHIBITION

SMALL CONVENTION

THEATER

CAR PARK

MEP


ground floor 우측으로 야외 전시공간및 놀이터가 위치하며 대지 중간에 위치한 지하 1층 레벨의 야외 플라자로 경사로를 통해 연결이됨. 1

층에는 주민과 학생들의 접근이 용이하도록 아카데미와 카페, 그리고 작은 전시공간및 안내데스크가 위치하게됨. 놀이터는 격자형식의 오픈 프레임으로

덥혀있어서 기존의 에니메이션 센터가 그러하듯 캐릭터를 야외에 전시할수 있으며 차양의 역할도 하게 됨. 격자 프레임을 이용하여 다양한 놀이기구또한

설치가능함.

TRUCK

MANEUVERING

SPACE

ACADEMY (L)

ACADEMY (S)

DN

UP

ENTRY PLAZA BELOW

PIXELATED STAIR/RAMP

FOR SEATING / TEMP. EXHIBITION

ACADEMY (M)

REST

RMS

OUTDOOR ENTRY EXHIBITION PLAZA FRAME

/CANOPY

LV. B2

CHARACTER

SHOP

UP

DN

PREP. DN AREA / BOH

LV. B1

PLAZA

/ OUTDOOR STAGE

LV. B1

OPEN TO

BELOW

LOADING

OPEN TO

STORAGE

BELOW

OPEN TO

BELOW

PIXELATED STAIR/RAMP

FOR SEATING / EXHIBITION

LOBBY

THEATER

AV

RM

INFO

INFO

CHARACTER

REST

RMS

TICKET

OFFICE

EXHIBITION

PIXELATED OUTDOOR

PLAYGROUND

DN

PIXELATED OUTDOOR

SEATING AREA

PLAZA / PLAY GROUND

LV. F1

INFO / GALLERY

DN

LOBBY

UP

CAFE / BAR

DN

DROP OFF

2nd floor

지하 1층에서 1층을 거쳐 2층에 이르는 경사로는 서로 작은 크기의 박스로 디자인 되어 있어서 이동뿐 아니라 임시전시를 위한 장소로도

사용 가능함. 2층에는 우측과 좌측으로 회사들의 입주를 위한 공간이 마련되어 있으며 중간에 미팅공간과 코어가 배치 되어있음. 경사로가 사적/공적의 공간을

전이해주는 역할을 하게됨.

DINING

REST

RM

REST KIT.

RM

INFORMAL

OFFICE

STO. PRINT

MAIL

ELV. LOBBY

DN

LV. F2

OUTDOOR EXHIBITION FRAME

/CANOPY

LV.B1

FORMAL

OFFICE (M)

MEETING

ROOMS

FORMAL

OFFICE (S)

CHARACTER

OPEN TO

BELOW

CHARACTER

LV. F1


3rd floor

제공하고있음.

2층의 평면과 비슷하나 3층에는 대규모의 사무실을 위한 공간이 마련되어 있으며 예비작가나 일인 기업을 위한 인포멀한 오피스 공간을

DINING

REST

RM

ELV. LOBBY

REST

RM

STO.

KIT.

PRINT

MAIL

LV. F3

FORMAL

OFFICE (M)

FORMAL

OFFICE (L)

INFORMAL

OFFICE

FORMAL

OFFICE (S)

OPEN TO

BELOW

b1st floor

좌측의 소파로를 마주하는 면에는 지면의 경사를 이용하여 지하 1층에서 지상레벨에 걸쳐 리테일 공간이 마련되어 있음. 지하 2층레벨의

경사로를 따라 올라오면 지하 1층 레벨의 플라자가 대지의 중간에 마련되어 있으며 이공간을 통해 건물의 로비로 진입하거나 아니면 또다른 경사로를 타고 1층

레벨의 야외 놀이터및 전시공간으로 이동할수있음. 최우측으로는 애니메이션 관련된 상설 전시공간을 마련하여 입주한 기업이 적극적으로 이용할수 있도록 함.

MEETING RM

STORAGE/PREP. AREA

OFFICE

SERVICE CORRIDOR

PIXELATED STAIR/RAMP

FOR SEATING / TEMP. EXHIBITION

REST

RMS

LV. B2

DN

LOBBY

UP

RETAIL

PLAZA

CARTOON LIBLARY

OUTDOOR STAGE

UP

OPEN TO

BELOW

EXHIBITION

RETAIL

RETAIL

OPEN TO

BELOW


2nd floor

대규모 컨벤션장으로 바로 들어갈수 있는 로비및 매표소가 지하 2층 레벨에 위치한 진입광장에 면하고 있음. 우측으로 메인

로비가 있으며 이는 극장및 엘리베이터 코어와 연결됨. 전시물의 설치및 기획을 위해 준비공간과 창고가 로딩독 좌우로 배치되어 있음.

TRUCK

MANEUVERING

SPACE

DN

UP

REST

RMS

ENTRY PLAZA

UP

PREP. AREA / BOH

LOADING

STORAGE

CHARACTER

SHOP

LOBBY

THEATER

AV

RM

INFO

INFO

REST

RMS

TICKET

OFFICE

EXHIBITION

b3rd floor

주차 가능 대수 122의 주차장및 parking office와 기계 전기실이 위치.

PARKING

OFFICE

PARKING (132 CARS)

MEP


CANOPY / TEMP. EXHIBITION

HIGHLIGHT MT. NAMSAN

SKYLIGHT

RF (GL +12.00)

ROOF GARDEN

ROOF GARDEN

3RD FL (GL +8.00)

HIGHLIGHT MYUNG-DONG

OFFICE

OFFICE

INFORMAL OFFICE

OFFICE

2ND FL (GL +4.00)

EGRESS EXIT

OFFICE

MEETING ROOM

OFFICE

GL (EL +68.00)

B1ST FL (GL -4.00)

RETAIL

CARTOON LIBLARY BEHIND

CONVENTION

EXHIBITION

PARKING RAMP

B2ND FL (GL -8.00)

RF RF (GL (GL +12.00)

STORE

LOBBY

CONVENTION

ENTRY PLAZA (F01)

HIGHLIGHT MT. NAMSAN

CANOPY / TEMP. EXHIBITION

THEATER

3RD 3RD FL FL (GL (GL +8.00)

ANIMATION CENTER

PARKING

OUTDOOR SEATING AREA

MEP HIGHLIGHT MYUNG-DONG

2ND 2ND FL FL (GL (GL +4.00)

EGRESS EXIT

GL GL (EL (EL +68.00)

B1ST B1ST FL FL (GL (GL -4.00)

PLAYGROUND / CANOPY

CONVENTION CENTER ENT

RETAIL

LONGITUDINAL SECTION

ENTRY PLAZA (B2)

B2ND B2ND FL FL (GL (GL -8.00)

RF (GL +12.00)

PARKING RAMP

LOADING DOCK

ENTRY PLAZA (F01)

HIGHLIGHT MT. NAMSAN

ENTRY PLAZA (B1) / OUTDOOR STAGE

CANOPY / TEMP. EXHIBITION

3RD FL (GL +8.00)

ANIMATION CENTER

OUTDOOR SEATING AREA

HIGHLIGHT MYUNG-DONG

2ND FL (GL +4.00)

EGRESS EXIT

e

GL (EL +68.00)

B1ST FL (GL -4.00)

SOPA RO

ENTRY PLAZA

PLAYGROUND / CANOPY

HIGHLIGHT MYUNG-DONG

CONVENTION CENTER ENT

RETAIL

ENTRY PLAZA (B2)

B2ND FL (GL -8.00)

RF (GL +12.00)

PARKING RAMP

LOADING DOCK

RF (GL +12.00)

3RD FL (GL +8.00)

ENTRY PLAZA (F01)

HIGHLIGHT MT. NAMSAN

ENTRY PLAZA (B1) / OUTDOOR STAGE

ANIMATION CENTER

CANOPY / TEMP. EXHIBITION

3RD FL (GL +8.00)

ANIMATION CENTER

2ND FL (GL +4.00)

OUTDOOR SEATING AREA

HIGHLIGHT MYUNG-DONG

e

2ND FL (GL +4.00)

GL (EL +68.00)

B1ST FL (GL -4.00)

B2ND FL (GL -8.00)

RF (GL +12.00)

GL (EL +68.00)

B1ST FL (GL -4.00)

B2ND FL (GL -8.00)

CANOPY / TEMP. EXHIBITION

HIGHLIGHT MT. NAMSAN

PLAYGROUND / CANOPY

EGRESS EXIT

ENTRY PLAZA (B2)

PARKING RAMP

EAST ELEVATION

CONVENTION CENTER ENT

RETAIL

3RD FL (GL +8.00)

PARKING HIGHLIGHT RAMPMYUNG-DONG

LOADING DOCK

ENTRY PLAZA (B1) / OUTDOOR STAGE

ANIMATION CENTER

2ND FL (GL +4.00)

EGRESS EXIT

PLAYGROUND / CANOPY

ENTRY PLAZA (F01)

e

GL (EL +68.00)

B1ST FL (GL -4.00)

B2ND FL (GL -8.00)

RETAIL

s

CANOPY / TEMP. EXHIBITION

HIGHLIGHT MT. NAMSAN

CAR ENT

DROP OFF

RF (GL +12.00)

3RD FL (GL +8.00)

HIGHLIGHT MYUNG-DONG

ANIMATION CENTER

w

2ND FL (GL +4.00)

GL (EL +68.00)

B1ST FL (GL -4.00)

RETAIL

EGRESS EXIT

PLAYGROUND / CANOPY

ENTRY PLAZA (F01)

ENTRY PLAZA (B1)

CANOPY / TEMP. EXHIBITION

WEST ELEVATION

ENTRY PLAZA

CAR ENT

DROP OFF

B2ND FL (GL -8.00)

RF (GL +12.00)

3RD FL (GL +8.00)

ANIMATION CENTER

2ND FL (GL +4.00)

GL (EL +68.00)

w

B1ST FL (GL -4.00)

B2ND FL (GL -8.00)

ENTRY PLAZA (B2)

RETAIL RETAIL RETAIL

SOPA-RO

NORTH ELEVATION

n

SOPA RO

ENTRY PLAZA

HIGHLIGHT MYUNG-DONG

RF (GL +12.00)

3RD FL (GL +8.00)

ANIMATION CENTER

2ND FL (GL +4.00)

GL (EL +68.00)

B1ST FL (GL -4.00)

B2ND FL (GL -8.00)

PARKING RAMP

s

SOUTH ELEVATION


SECLUDED ISLAND //

BUNKER REGENERATION

@ SELECTIVE AMPLIFICATION / 2017 / BUSAN / KOREA


SECLUDED ISLAND //

BUNKER REGENERATION

We imagined an upside-down island at the center of Mt Hwangnyoengsan – surrounded by beautiful trees and natural elements which

isolate the project from the ongoing urban conflicts in the context. By minimizing its visual presence from around its neighborhood

and providing dedicated small foot-print access points to it rather than proposing grand entry that this type of developments typically

accompanied by, we wanted to achieve two contradictory goals; to try not to contribute in creating further source of conflict; and at the

same time to design what fulfills the community’s needs in utilizing the given site condition including the bunkers.


access

With no major cultural/recreational facilities in proximity to the site, it is no questionable to build a facility of

the kind. To gauge its appropriate scale, we eyeballed some of open/public indoor/outdoor spaces nearby. Two major accesses were

considered; pedestrian access through the existing road to the bunker, which will house bars, pubs, wineries, eateries and small event

spaces; vehicular access over the mountain to an underground parking lot for families, business, large events, conventions and exhibitions.

PEDESTRIAN ACCESS TO THE BUNKER

SITE


CAR ACCESS

PEDESTRIAN ACCESS TO THE BUNKER


INTERVENSION

Existing bunkers mostly remain as they

are except for a rotunda space at the

center that removes just fraction of the

existing bunker space. Also we propose

two additional service bunkers, one

stretches entire width of the mountain,

and the other one only covers half to the

rotunda. Underground cut-and-cover

parking space sits right next to the elevated

lobby that feeds guest vertically to

either hotel/event suite above or mixed

use complex below. On the opposite side

of hotel resides office for the building.

Series of elevated bunkers radiate from

the lobby poking out of the mountain

at the other end for dramatic experience

of bunker and spectacular view to the

city and adjacent mountains and ocean.

On the top two floors of the hotel are

event suites to accommodate big events

like BIFF. Below the lobby sit mixed use

including family restaurants, cafe, boutique

retails, gallery, exhibition spaces,

convention halls and multiplex theaters

for various range of guests.

2 : OFFIC

1-B3 : PARKIN

(+300 CARS

PARKING

ENT

SERVICE ENT

SERVICE BUN

15

01


01

8-9 : EVENT SUITE

VIEW

2-7 : HOTEL

E

1 : LOBBY

VIEW

ELEVATED BUNKER

(OBSERVATION)

G

)

02

VIEW

ENT

03

VIEW

B1 : FAMILY RESTAURANT

B2 : CAFE

B3 : BOUTIQUE RETAIL

B4 : GALLERY / EXHIBITION

B5 : CONVENTION HALL

B6 : MULTIPLEX THEATER

KER

05

04

ROTUNDA / STAGE

B7 : THE BUNKER

BARS / PUBS / PARTY VENUES

SERVICE ENT

ENT

SERVICE ENT


01_SECLUDED ISLAND

Introverted space configuration helps

guest intermingle toward the rotunda

space at the very center of the building.

Chance encounters or unexpected visual

connections among wide range of guests

in different programs and activities let

them easily explore the entire complex.

On the other hand, being above the lobby,

hotel and event suites not only have quite

environment but also have wide open

view to the city over the mountain.


02_ELEVATED LOBBY

Elevated lobby separate two distinctive

parts of the building. Very active 24/7

mixed use zone below the lobby and calm

and quite zone for hotel and event suites

above. Wide and tall lobby space and

terrace space toward the center of rotunda

is an ideal place to celebrate beautiful

night sky or fireworks.


03_ELEVATED BUNKERS

Elevated bunkers radiating from the

lobby provide guest very unique visual experience.

Short walk to the other side of

the bunkers from the lobby gives guests

wide open view to the city, mountain and

ocean. This cantilevered balcony spaces

potentially can connect to the existing

mountain trekking path for alternative

accessibility.


04_ROTUNDA/O

Being at the center of the building, rotunda not only provide natural ventilation and day li

The rotunda, surrounded by stacks of balconies as in a form of an am


UTDOOR STAGE

ght down to the lowest level but also connects the existing bunkers with its new addition.

phitheater, is an ideal spot to host concert, fashion show, and etc.


05_THE B

The existing bunker will be a hippest and coolest event venue in Busan. Utilizing its origina

ings, ventilation and AV systems, this place will accommodate bars, pubs, wineries and eate

small e


UNKER

l condition of dark and consistent temperature and humidity with additional artistic lightries

on its pocket spaces along with the existing corridor which can host private parties and

vents.


car access road

high rise apartment

car access road


LEVEL (GL +139)

LEVEL (GL +109)

day light

cut-and-cover parking

LEVEL (GL +54)

GL

new service bunker

existing bunker

existing bunker

rotunda/stage

new service bunker


VESTIBULE+ //

FOLLY 2014

THE ARCHITECTURAL LEAGUE, NY

@ SELECTIVE AMPLIFICATION IN COLLABORATION WITH KSHARCH / 2014 / SOCRATES PARK / NY / NOTABLE ENTRY


VESTIBULE+ //

FOLLY 2014

THE ARCHITECTURAL LEAGUE, NY

Looking at the gate on Broadway a few blocks away from it, we already knew the park was there.

Seeing through the gate over the park at the end of the road, we felt the park had come to us too fast and naked.

The thin gate was standing still there whispering very low that we were about to cross the intangible boundary.

We trespassed. Everything happened so fast and painless.

Thinking about Folly, we imagined a never realized vestibule

that should have captured the grand moment of entering into the park.

VERNON BLVD.


SOCRATES PARK

VERNON BLVD.

SITE

BROADWAY

11TH ST.


site

The site sits right behind the gate at the intersection of the extension of Broadway and pedestrian path within the park.

Broadway, the visual corridor, guides people towards to the park’s gate even from a distance. The gate converts visual stimulus into physical

experiences. This change of phase happens sudden even though the existence of huge gate which is clearly visible couple of blocks away.

existing gate

When you visit the park, you can first confront with the Gateway with billboard on top. Since 1999, this 10’ by

28’ sized billboard has changed its face once or twice a year showcasing what’s happening inside the park. Comparing to its simple gesture

toward the city, this had been performed very important role regarding to activation of the park and its events inside.


process

The gate projected onto the site. A vestibule, floating somewhere in between the two, captures head space for a person

entering in and out of the park. The initial projection is pinched in toward to the vestibule, then again modified to accommodate pedestrian

path to the park. Series of ribbon spanning between the frames of the gate, site and vestibule visualize the projection.


fabrication

The project consists of three major parts; galvanized steel pipes, tension cables, and polyethylene tapes. Steel

frame at both ends are secured back to the gate and ground. Tension cables hold the vestibule frame up in the air. And densely spaced

polyethylene tapes span in between frames. Because the dimension of each corresponding edges of the frame differs from each other, it

naturally creates wrinkle and twist visualizing the effect of convergence. Tape can be either one with different colors on both side or one

with demarcation pattern.

ELEVATIONS


POLYETHYLENE TAPE (W 3”) : 10,500’

$50 (L:1000’) X 11EA = $550.00

EXISTING GATE

GALVANIZED TENSION CABLE : 230’

$22(L:170’) X 2EA = $44.00

TURN BUCKLE AND CLAMP : 20EA

$30 X 20EA = $600.00

GALVANIZED STEEL TUBE : 310’

$20(L:10’) X 31EA = $620.00

TEE, ELBOW, COUPLING : 31EA

$8 X 31EA = $248.00

TOTAL : $2,062.00

Doesn’t include contingency

FABRICATION QTO AXON

VANISHING FRAME


COMPONENT ARCHITECTURE //

PARAMETRIC GRADIENT WALL

@ SELECTIVE AMPLIFICATION IN COLLABORATION WITH ADVANCED FACADE / 2008 / ITHACA / NY / HONORABLE MENTION


COMPONENT ARCHITECTURE //

PARAMETRIC GRADIENT WALL

One of key issues of this workshop was to exploit computational power and to investigate some of low tech mass-customization techniques

to build a responsive component-based system which reacts to certain environmental variables. This system, as a computational model,

wants to be very flexible and sophisticated in order to interact with continuously changing parameters from the surrounding conditions

and user’s behavior, while the physical embodiment wants to be very easy to construct with minimum efforts and material yet wants to be

sturdy enough to self-support.


module definition

As a way to control visibility through a wall, a simple modular system was defined with just two simple

variables: thickness of the module and size of aperture that penetrates the module. A module with shallow thickness(depth) with wide

aperture will provide visual transparency and let direct light come through the wall. On the other hand, a thicker module with tight

aperture will block the view and only have ambient light pass through. Here in the module, thickness is a primary parameter that responds

to the eye level of users, and then it controls the aperture size of the module.

D

R

RD

D

DR

RD

D

D

R

R

D

D

R

D

R

D

D

MODULE WITH VARIABLES, R AND D

PACKING MODULES IN A HEXAGONAL GRID

OVERALL SYSTEM

USER INPUT

TWO SURFACES

WITH VARIABLE DISTANCES

HEXAGRID FUNCTION

APERTURE VALUE

+

U/V RESOLUTION

BYPRODUCTS

EXTERNAL POINT CLOUD DATA [X,Y,Z]

GENERATIVE COMPONENT

SURFACES

GENERATIVE COMPONENT

HEXA GRID POLYGON SURFACES

GENERATED PRODUCTS

GENERATIVE COMPONENT

POINT CLOUD

GENERATIVE COMPONENT

HEXA GRID ON SURFACES

GENERATIVE COMPONENT

HEXA WALL SYSTEM

GENERATIVE COMPONENT

HEXA WALL SYSTEM

SURFACE SUBSYSTEM

HEXAGRID SUBSYSTEM COMPONENT SUBSYSTEM FINAL PRODUCT

PARAMETRIC MODEL FLOW CHART


parametric module

Modules with built in aperture size as dependent variable. The variable is controlled and governed by the

thickness of the wall system.

COMPONENT ID B.07

APERTURE SIZE 34.0

HEIGHT 82.5

COMPONENT ID

APERTURE SIZE

HEIGHT

E.04

53.4

63.3

COMPONENT ID J.07

APERTURE SIZE 85.0

HEIGHT 34.5

C.03.PT.B.01

C.03.PT.B.02

C.03.PT.B.03

C.03.PT.B.04

C.03.PT.B.05

C.03.PT.B.06

C.03.PT.T.01

C.03.PT.T.02

C.03.PT.T.03

C.03.PT.T.04

C.03.PT.T.05

C.03.PT.T.06

MODULE UNFOLD


aperture size

connection with the other side of the wall.

Each cell has its own aperture size depending on various eye level presets, either allowing or blocking visual


CUT IT, CURLING IT UP //

DYNAMIC TAPESTRY

@ SELECTIVE AMPLIFICATION IN COLLABORATION WITH KSHARCH/ 2013 / NEW YORK / NY


CUT IT, CURLING IT UP //

DYNAMIC TAPESTRY

The goal of the research was to observe physical behavior of a certain material through a series of sample tests, and understand how the

behavior changes by minimal alterations on its physical properties. Based on the founding, the sample units were re-interpreted and

converted into digital model using parametric tools and physical engine to simulate and forecast holistic behavior of the entire system

composed of the units. The dynamic surface is a combination of 7 by 7 diagonally arranged plastic sheet units. Because of its homogeneous

material property, the system doesn’t produce any significant changes in its appearance before individual panels get cut differently. The

cuts and self-weight of the each panel will drive initial deform through the interaction of pulls and pushes between units. The initial deform

can be further exaggerated by supplementary weights at some connecting nodes between panels in a certain area.


material study

The base material was Mylar, because it is homogeneous composite material which is very predictable on its

physical behavior. Base on our mockup experiments, longer cut tended to generate more curvature changes within a unit, when the cut is

perpendicular to the direction of pulling forces. Also the amount of load applied to each node of a panel caused significant differences in its

surface shape.

MYLAR, NO CUT, PULLED DIAGONALLY

MYLAR, PARALLEL CUTS, PULLED DIAGONALLY

MYLAR, PERPENDICULAR CUTS, PULLED DIAGONALLY


digitalizing model

Deformation of a module depends on two variables, amount of force/load at each corner and size and

directionality of open cut. In other words, the strength of pulling force and the length of the cut affect the amount of deformation of the

module.

DIGITALIZING MODULE WITH TWO PARAMETERS

elastic behavior

To simulate the elastic nature of the material, we developed two simple rules. First, all the lines in the module

want to stay in the same length, and second, all the surfaces of the module want to relax flat.

DIGITALIZING MODULE WITH TWO PARAMETERS


module interaction

What was interesting was that as the module get stretched, it bents in elevation, and shrink in its

width. As a consequence, when a module got stretched, it pulls modules right next to it, and curls up the lower vertex. Naturally I sensed

that this would create some interesting geometric deformation when the modules get hooked up side by side, but couldn’t get around it

visually.

INTERACTION BETWEEN MODULES

OVERALL GRASSHOPPER DEFINITION


compiling parametric model

Individual modules were laid out using physical simulation engine in parametric tool to visualize

“parts to whole” relationship. Two parameters tested out; cutting pattern and point load pattern.

OVERALL SYSTEM WITH TWO PARAMETERS ; CUTTING PATTERN AND POINT LOAD PATTERN


simulation process

Individual modules were laid out in 7 x 7 grid. In the initial relaxed state of the whole system, it is hung from

anchor points at the top of the system to the ceiling. Then cutting pattern applied to individual modules using gradient pattern. Then

combined with self weight of the module and cut pattern, the system further deforms before it finds equilibrium. Then added point loads

to some of the nodes, based on point load pattern map, will exaggerate system deformation further. Final state of equilibrium between

elasticity of material, cutting pattern, self weight of modules, and additional point loads.

SEQUENTIAL DIAGRAM OF THE SYSTEM


pattern tests

implication over the overall system’s behavior.

Lots of different combinations of load and cutting patterns have been tested out to better understand their


CHAOS + GRID //

COORDINATED RANDOM GROWTH

@ SELECTIVE AMPLIFICATION / 2008 / ITHACA / NY


CHAOS + GRID //

COORDINATED RANDOM GROWTH

This experiment is to investigate how microscale chaoses can coexist within a rigid grid system in a continuous yet discreet manner. The

entire system is composed of bunch of small surfaces and each of them is driven by four randomly generated edge curves. Once an initial

surface created by four random curves, the next one become exist by sharing one of the edge curves from the previous surface. When this

one-directional mutation ends, the system repeats another batch of mutations right next to the existing one, but this time mostly sharing

two edge curves, one with the previous and the other with the existing surface. The resulting surface is striated yet continuously patched

surface.


growth rule

An initial patch is made out of four bounding curves with two variables for each curves: profile scale along z

O Z

-60 +60 O

axis and profile rotation Z along x or y axis, which are random numbers in per-defined ranges.

GRID

ELEMENT 004

ELEMENT 001

X/Y

O Z O ZO

O

Z

-60 +60 O Z

-60

-60 -60 +60 +60 O O

+60 O O

Y/X

Z Z

Z Z

CURVE SHAPE SCALE ALONG Z AXIS ROTATE ALONG X/Y AXIS ALIGN TO GRID PERIMETER

X/Y X/Y

X/Y X/Y

GRID GRID

GRID GRID

ELEMENT 003

ELEMENT ELEMENT 004 ELEMENT 004

004 004

SQUARE SURFACE

ELEMENT ELEMENT 001 ELEMENT 001

001 001

ELEMENT 002

SQUARE SQUARE SURFACE SQUARE SURFACE

SURFACE

Y/X

Y/X

Y/X Y/X

ELEMENT ELEMENT 003 ELEMENT 003

003 003

ELEMENT ELEMENT 002 ELEMENT 002

002 002

CURVE CURVE SHAPE CURVE CURVE SHAPE SHAPE SHAPE SCALE SCALE ALONG SCALE SCALE ALONG Z ALONG AXIS ALONG Z AXIS Z AXIS Z AXIS ROTATE ROTATE ALONG ROTATE ALONG X/Y ALONG ALONG AXIS X/Y X/Y AXIS X/Y AXIS AXIS ALIGN ALIGN TO ALIGN GRID ALIGN TO TO GRID PERIMETER

GRID TO PERIMETER

GRID PERIMETER

MODULE WITH VARIABLES

INITIAL ROW

INITIAL

CONDITIONS

+

INITIAL INITIAL ROW INITIAL ROW

ROW ROW

SURFACE

EXPANSION - Y AXIS

INITIAL

SURFACE

INITIAL

CONDITIONS

INITIAL

INITIAL CONDITIONS

CONDITIONS

INITIAL

CONDITIONS

INITIAL

SURFACE

INITIAL

INITIAL SURFACE

SURFACE INITIAL

SURFACE

E004

E004

E004

E004 BASE ELEMENT

BASE E004

ELEMENT

BASE ELEMENT

BASE ELEMENT

CURVE SHAPE

BASE CURVE ELEMENT

SHAPE

CURVE SHAPE

CURVE SHAPE

CURVE SHAPE

+

=

+

+ = + =

= =

E001

E001 E001

E001 E001

E003

=

E204

E002

E003 E003

E003 E003

E002

=

SURFACE

EXPANSION

- X AXIS

E008

E005

SURFACE

EXPANSION

- SURFACE X AXIS

SURFACE EXPANSION

EXPANSION

SURFACE - X AXIS

- EXPANSION

X AXIS

- X AXIS

E008

E008

E008

E002

E002 E008

E002

=

=

= =

E005 E005

E005 E005

E007

=

E208

E006

E007 E007

E007 E007

E006

=

E012

E012

E012

E012

E006

E012

E006

E006

=

=

= =

E009

E009 E009

E009 E009

E011

=

E212

E010

E011 E011

E011 E011

E010

=

E016

E016

E016

E016

E010

E016

E010

E010

=

=

= =

E013

E013 E013

E013 E013

E015

E014

=

E216

E015 E015

E015 E015

=

E014

E014

E014

E014

=

=

= =

=

E196

=

E193

E197

E194

E196

E193 E193

E193 E193

E196

E196

E196

=

= =

E195

E194 =

E396

=

E200

E200

E200

E194

E200

E194

E194

=

=

= =

E198

E200

E197 E197

E197 E197

E199

E198

E198

E198

=

E198

E400

E195 E195

E195 E195

E199 E199

E199 E199

SURFACE SURFACE

SURFACE

EXPANSION EXPANSION - Y AXIS - Y - AXIS

Y - AXIS Y AXIS

E203

=

E201

=

=

=

E204 E204

E204 E204

=

E207

=

=

=

=

E208 E208

E208 E208

E205

=

E211

=

=

=

=

E212 E212

E212 E212

E209

=

=

E215

=

=

=

E216 E216

E216 E216

E213

=

=

E395 =

=

=

=

E396 E396

E396 E396

E393

=

=

=

=

E399

=

E400 E400

E400 E400

E397

E203

E203

E203

E203

E202

=

E201

E207

E207

E207

E201

E207

E201

E201

=

=

= =

E206

=

E205

E211

E211

E211

E205

E211

E205

E205

=

=

= =

E210

=

E209

E215

E215

E215

E209

E215

E209

E209

=

=

= =

E214

E213

=

E213

E213

E213

=

=

= =

=

E395

E395

E395

E395

=

= =

E394

=

E393 =

E399

E399

E399

E393

E399

E393

E393

=

= =

E398

E397

E397

E397

=

E397

E202 E202

E202 E202

=

=

=

=

=

=

E206 E206

E206 E206

E210 E210

E210 E210

E214 E214

E214 E214

E394 E394

E394 E394

E398 E398

E398 E398

=

E604

=

E608

=

E612

=

E616

=

E796

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

E800

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

E603

E604 E604

E604 E604

E601

=

E607

E608 E608

E608 E608

E605

=

E611

E612 E612

E612 E612

E609

=

E615

E616 E616

E616 E616

E613

=

E795

=

E796 E796

E796 E796

E793

E799

=

E800 E800

E800 E800

E797

E603

E603

E603

E603

E602

E601

E607

E607

E607

E601

E601 E607

E601

=

=

= =

E606

E605

E611

E611

E611

E605

E611

E605

E605

=

=

= =

E610

E609

E615

E615

E615

E609

E615

E609

E609

=

=

= =

E614

E613

E613

E613

E613

=

=

= =

=

E795

E795

E795

E795

=

= =

E794=

E793

E799

E799

E799

E793

E799

E793

E793

=

= =

E798

E797

E797

E797

E797

GROWTH RULE DIAGRAM

E602 E602

E602 E602

E606 E606

E606 E606

E610 E610

E610 E610

///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////

//////////////////////// //////////////////////////////

//////////////////////// SURFACE GENERATOR //////////////////////////////

//////////////////////// WOO JAE SUNG //////////////////////////////

//////////////////////// M.ARCH 1 2ND YR //////////////////////////////

//////////////////////// //////////////////////////////

///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////

//////// VARIABLES ////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////

string $currentelement;

string $lastelement = "BaseEle";

string $currentelement = "A";

string $elementname;

string $prevelement1;

string $prevelement2;

string $prevelement3;

string $prevelement4;

float $rndnum;

int $elementNo = 1;

int $rotationNo;

int $start;

int $end;

int $itrnum;

int $startele;

int $endele;

int $itrnumV;

int $lastelementNo;

int $lastelementNoprev;

///////////////////////////////////////////////////////////////////////////////

//////// INITIAL SURFACE //////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////

while ( $elementNo < 5 )

{

//////// SCALING ALONG THE Z AXIS /////////////////////////////////////////////

$rndnum = rand(-2,2);

setAttr ($currentelement + ".scaleZ") $rndnum;

//////// ROTATION ABOUT THE Z AXIS ////////////////////////////////////////////

$rotationNo = 90 * $elementNo;

setAttr ($currentelement + ".rotateZ") $rotationNo;

MEL SCRIPT @ MAYA

//////// CODE THAT ALIGNS SEGMENTS TO SURFACE BOUNDARY ////////////////////////

alignCurve -ch off -rpo off -at false -kmk false -pct

2 -tc false -cc false $lastelement $currentelement;

$lastelement = $currentelement + "shapealignedCurve1";

$elementname = "E" + $elementNo;

E614 E614

E614 E614

E794 E794

E794 E794

E798 E798

E798 E798

///////////////////////////////////////////////////////////////////////////////

//////// SURFACE EXPANSION ALONG THE X AXIS ///////////////////////////////////

///////////////////////////////////////////////////////////////////////////////

//////// ITTERATION SETTING ///////////////////////////////////////////////////

for ( $itrnum = 1 ; $itrnum < 50 ; $itrnum++ )

{

$start = ( ( $itrnum ) * 4 ) + 1;

$end = ( ( $itrnum + 1 ) * 4 ) + 1;

$startele = $start - 3;

$endele = $end - 3;

while ( $elementNo < $end )

{

//////// SCALING ALONG THE Z AXIS /////////////////////////////////////////////

$rndnum = rand(-2,2);

setAttr ($currentelement + ".scaleZ") $rndnum;

//////// ROTATION ABOUT THE Y AXIS ////////////////////////////////////////////

$rndnum = rand(-60,60);

setAttr ($currentelement + ".rotateY") $rndnum;

//////// ROTATION ABOUT THE Z AXIS ////////////////////////////////////////////

$rotationNo = 90 * ( $elementNo - ( 4 * ( $itrnum ) ) );

setAttr ($currentelement + ".rotateZ") $rotationNo;

//////// CODE THAT ALIGNS SEGMENTS TO SURFACE BOUNDARY ////////////////////////

alignCurve -ch off -rpo off -at false -kmk false -pct

2 -tc false -cc false $lastelement $currentelement;

$lastelement = $currentelement + "shapealignedCurve1";

$elementname = "E" + $elementNo;

rename $lastelement $elementname;

$lastelement = $elementname;

//////// CODE THAT ASSIGN NEW NAMES TO SEGMENTS ///////////////////////////////

if ( $elementNo == $start )

{

$prevelement1 = $lastelement;

}

else if ( $elementNo == $start + 1 )

{

$prevelement2 = $lastelement;

}

else if ( $elementNo == $start + 2 )

{

$prevelement3 = $lastelement;

}

else if ( $elementNo == $start + 3 )

{

$prevelement4 = "E" + $startele ;


The next patch then inherits one of its bounding curves from the previous one so as it keeps one-degree surface continuity. This neighboring

one generates three other bounding curves in a similar way to create its own surface. When this process hits the maximum limit to expand

to either y or x axis, then it changes its direction to 90 degrees, and repeat the process to finish up the whole system with patches.

STEP01 STEP01 INITIAL INITIAL SURFACE SURFACE

STEP03 STEP03 SURFACE SURFACE EXPANSION EXPANSION ALONG ALONG Y AXISY AXIS

Y

Y

STEP02 STEP02 SURFACE SURFACE EXPANSION EXPANSION ALONG ALONG X AXISX AXIS

STEP04 STEP04 SURFACE SURFACE EXPANSION EXPANSION ALONG ALONG X AXISX AXIS

X

X

X

X

GROWTH RULE EXPLAINED

OVERALL AXON


ULTRA LIGHT //

CARBON FIBER PAVILION

@ SELECTIVE AMPLIFICATION / 2007 / ITHACA / NY


ULTRA LIGHT //

CARBON FIBER PAVILION

Carbon fiber composite material has an woven structure of carbon fiber tapes. This characteristic of carbon fiber composite material as

a fabric gives it various textures or grains on its surface. Considering that carbon fiber tapes are very strong at tensile strengths, textures

or grains are an index of strength flow along its surface. The textures or grains necessarily generate various moire patterns based on the

arrangement and density of carbon fiber tapes, which are closely related to light penetration performance. Moire pattern represents

structural and light penetration performance of the material. In this sense, moire pattern of this project is not merely a by-product, rather

it is an ornament actively interacting with structural performance as well as program inside of the structure especially in terms of light

penetration.


visual effect

When layering carbon fiber tapes layer by layer, their density and directionality naturally generated the

opacity/transparency of the resulting surface. It could also add interesting visual by product, Morie to the surface of the structure.

HOW TO MAKE - CARBON FIBER COMPOSITE MATERIAL STRUCTURE

COMPOSITE STRUCTURE MAKING PROCESS

Tape Placement on the Rotating Mandrel

1. rotating mandrel

1. Rotating Mandrel

2. Carbon Fiber Tape

3. Moving Arm

4. Carbon Fiber Tape Placing and Bonding

2. carbon fiber tape

3. moving arm

4. tape placing and bonding

WOVEN + LAYERED STRUCTURE

COMPOSITE STRUCTURE CHARACTERISTICS

Woven + Layered Structure = Moire Pattern

Tensile Stress

+ + + =

Carbon fiber tape is incredibly strong against

tensile strength. As mandrel rotates, taping

patterns become layered creating woven

structure. The woven structure generate

Moire pattern perpendicular with the tensile

strength direction.

1st Taping Iteration

2nd Taping Iteration 3rd Taping Iteration 4th Taping Iteration Taping Pattern w/ Moire

STRUCTURAL STRENGTH, LIGHT PENETRATION AND MOIRE PATTERN

Taping Pattern

MOIRE PATTERN AS AN INDEX OF

STRUCTURAL STRENGTH & LIGHT

PENETRATION

Moire pattern indicates which part of the

structure is strong at tensile or compressive

strength, as well as which part has more

light penetration. Moire pattern is an index

of structural strength and light penetration

(transparency and opaqueness).

Taping Geometry at Center Line

Tensile Strength Direction

Moire Pattern Direction

No Moire Pattern : Better Visibility

Taping Layer Thickness (Compressive Stress Strength)

Solid (Opaque), Strong at Compressive Strength

Void (Light Penetration), Strong at Tensile Strength


mapping

or vice versa.

The opacity/transparency can then be mapped on the light level requirements of various programs within the pavilion

SITE + STRUCTURE

Floating Box on Site (Cornell Art Quad)

Gallery

Gallery

Circulation - Connection

Gallery

Gallery

Gallery

Gallery

Floating Box & Site Connection

Site : Cornell Art Quad

SITE + PROGRAM

Gallery

Gallery Space : Solid Wall + Solid Floor

Gallery

Gathering, Shelter or Multi Purpose space : Solid Roof

Gallery

Gallery

Gallery

Gallery

Solid Surface Variation

Unfolded Surface


124

carbon fiber taping pattern A

requirement; transparency and visual connectivity.

First set of carbon fiber taping pattern was created based on light condition based on program

208 188 168 144 124 104 84 64 40 20 0

208 188 168 144 124 104 84 64 40 20 0

208 188 168 144 124 104 84 64 40 20 0

0

0

0

20

208 188 168 144 124 104 84 64 40 20 0

20

208 188 168 144 124 104 84 64 40 20 0

20

208 188 168 144 104 84 64 40 20 0

40

0

40

0

40

0

60

20

60

20

60

20

80

40

80

40

80

40

100

60

100

60

100

60

120

80

120

80

120

80

140

100

140

100

140

100

160

120

160

120

160

120

180

140

180

140

180

140

200

160

200

160

200

160

220

180

220

180

220

180

240

200

240

200

240

200

260

220

260

220

260

220

280

240

280

240

280

240

300

260

300

260

300

260

320

280

320

280

320

280

340

300

340

300

340

300

360

320

360

320

360

320

380

340

380

340

380

340

400

360

400

360

400

360

420

380

420

380

420

380

440

400

440

400

440

400

420

420

420

440

UNFOLDED GEOMETRY

440

GALLERY SPACE

SOLID WALL & FLOOR

440

GATHERING SPACE

SOLID ROOF

208 188 168 144 124 104 84 64 40 20 0

208 188 168 144 124 104 84 64 40 20 0

208 188 168 144 124 104 84 64 40 20 0

0

0

000

000 000

0

20

208 188 168 144 124 104 84 64 40 20 0

20

008

012

208 188 168 144 124 104 84 64 40 20 0

20

208 188 168 144 124 104 84 64 40 20 0

40

0

40

0

000

036

000 000

40

0

60

20

60

20

008

056

012

60

20

80

40

80

40

084

036

084

80

40

100

60

100

60

104

056

096

100

60

120

80

120

80

084

084

120

80

140

100

140

100

104

136

096

140

100

160

120

160

120

160

160

120

180

140

180

140

136

180

180

140

200

160

200

160

208

212

160

200

200

160

220

180

220

180

224

180

220

180

240

200

240

200

248

200

240

200

260

220

260

220

208

212

264

272

224

260

220

280

240

300

260

280

240

300

260

264

248

292

304

280

240

300

260

320

280

320

280

272

320

320

280

340

300

340

300

352

340

292

304

340

300

360

320

360

320

364

320

360

320

380

340

380

340

340

380

340

400

360

400

360

352

364

396

412

400

360

420

380

420

380

432

420

380

440

400

440

400

440

440

440

396

440

400

412

420

420

420

432

440

440

440

440

440

440

SUPERIMPOSING

CENTER LINES FOR TAPING PATTERN

BASED ON KEY POINTS

TAPING PATTERN EXPANSION

BASED ON SINE CURVE


124

carbon fiber taping pattern B

Then another set of taping pattern was generated base on structural analysis of the geometry; stress

curve on the face of the hollow box. Then the two were overlapped to finalize the taping pattern.

208 188 168 144 124 104 84 64 40 20 0

208 188 168 144 124 104 84 64 40 20 0

208 188 168 144 124 104 84 64 40 20 0

0

0

0

000

000

008

20

208 188 168 144 104 84 64 40 20 0

20

208 188 168 144 124 104 84 64 40 20 0

20

208 188 168 144 124 104 84 64 40 20 0

40

0

40

0

40

0

044

000

044

000

008

60

20

60

20

60

20

80

40

80

40

80

40

044

044

100

60

100

60

100

60

108

108

120

80

120

80

120

80

140

100

140

100

140

100

140

140

160

120

160

120

160

120

108

164

108

164

180

140

180

140

180

140

140

140

200

160

200

160

200

160

164

164

220

180

220

180

220

180

224

224

240

200

240

200

240

200

260

220

260

220

260

220

256

224

256

224

280

240

280

240

280

240

300

260

300

260

300

260

256

256

320

280

320

280

320

280

324

324

340

300

340

300

340

300

360

320

360

320

360

320

324

324

380

340

380

340

380

340

400

360

400

360

400

360

396

396

420

380

420

380

420

380

420

440

400

440

400

440

400

440

396

440

396

420

420

420

420

440

UNFOLDED GEOMETRY

440

STRUCTURAL KEY POINTS

MEETING POINTS WITH COLUMNS

440

440

CENTER LINES FOR TAPING PATTERN

LEFT TO RIGHT

440

208 188 168 144 124 104 84 64 40 20 0

208 188 168 144 124 104 84 64 40 20 0

208 188 168 144 124 104 84 64 40 20 0

0

0

000

000

0

20

208 188 168 144 124 104 84 64 40 20 0

20

012

208 188 168 144 124 104 84 64 40 20 0

20

208 188 168 144 124 104 84 64 40 20 0

40

0

40

0

044

000

044

000

40

0

60

20

60

20

012

60

20

80

40

80

40

084

044

084

044

80

40

100

60

100

60

100

60

120

80

120

80

084

084

120

80

140

100

140

100

148

148

140

100

160

120

160

120

160

120

180

140

180

140

180

140

200

160

200

160

148

148

200

160

220

180

220

180

224

224

220

180

240

200

240

200

240

200

260

220

260

220

264

224

264

224

260

220

280

240

280

240

280

240

300

260

300

260

264

264

300

260

320

280

320

280

320

320

320

280

340

300

340

300

340

340

340

300

360

320

360

320

320

320

360

320

380

340

380

340

340

392

340

392

380

340

400

360

400

360

400

360

420

380

420

380

420

420

380

440

400

440

400

392

392

440 440

440

400

420

420

420

420

440

440

440 440

440

TAPING PATTERN EXPANSION

BASED ON SINE CURVE

CENTER LINES FOR TAPING PATTERN

RIGHT TO LEFT

TAPING PATTERN EXPANSION

BASED ON SINE CURVE


final pattern

Final pattern was created by overlapping two sets of patterns. For the sake of physical model, due to the

limited resource, carbon fiber placement pattern was transformed into lasercut cutting pattern for visualization purpose.

FINAL PATTERN


EL

dn

dn

dn

dn

EL


dn

dn

dn

dn


DIGITAL DESIGN //

LECTURES & WORKSHOPS

@ SELECTIVE AMPLIFICATION / 2009 - 2017 / HARVARD, CORNELL, U-PENN, SYRACUSE, CCNY


TRIANGULATED FABRIC //

PARAMETRIC WORKSHOP, CCNY 2017


TRIPOD PAVILION //

PARAMETRIC WORKSHOP, 2009

step00_01

www.woojsung.com


RESPONSIVE TOTEM //

PARAMETRIC WORKSHOP, CORNELL AAP 2009


RESPONSIVE FLOWER //

PARAMETRIC WORKSHOP, SYRACUSE 2009


UNDULATING BRIDGE //

PARAMETRIC WORKSHOP, 2009


GRAPH CONTROLLER //

PARAMETRIC WORKSHOP, CORNELL AAP 2009


DIFFUSION LIMITED AGGREGATION //

DIGITAL MEDIA CLASS, HARVARD GSD 2012

The process whereby particles undergoing a random walk due to Brownian motion cluster together to form aggregates of such particles

GRASSHOPPER (from Wikipedia). This can VB be WORKSHOP simply break down into - Diffusion two main processes; Limited Aggregation System

Digital Media and Material Practice, Fall 2012, Harvard, GSD

gradually approaches toward the attractor over time.

GH version 0.9.0014

1) Diffusion (Wandering Particle) - Start with two points. One as a static working as an attractor, and the other as a wandering particle that

2) Aggregation (Sticking Particles within threshold) - Constantly check if those two points are close enough. If yes, stop wandering and

merge two points by connecting them with a single line. Otherwise, let the particle wander until it gets in to the threshold.

woojae sung . woojae.sung@yahoo.com . www.woojsung.com


Diffusion Limited Aggregation in VB Grasshopper - http://woojsung.com 1

algorithm design

Prior to jump on scripting, very clear definition of DLA system needs to be thought out step by step. Key things

were how to mimic Brownian motion and aggregation process in Visual Basic.

DIFFUSION-LIMITED AGGREGATION

The process whereby particles undergoing a random walk due to Brownian motion cluster together to form aggregates of such particles

(from Wikipedia). This can be simply break down into two main processes;

Diffusion (Wandering Particle) - Start with two points. One as a static working as an attractor, and the other as a wandering particle

that gradually approaches toward the attractor over time.

PROCESS

step 01

Get a random point on a given boundary.

This point will gradually approach to an attractor

as it wander within the boundary.

The attractor will be the first aggregate as

it still serve as an attractor.

step 02

When wandering a particle, keep the random

angle less than 180 degrees to force

the particle move toward the attractor.

Otherwise, the particle might be lost in the

space.

Aggregation (Sticking Particles within threshold) - Constantly check if those two points are close enough. If yes, stop wandering and

merge two points by connecting them with a single line. Otherwise, let the particle wander until it gets in to the threshold.

step 03

Every time moving the particle, check the

distance between the two points to see if

they are close enough to get merged.

Diffusion Limited Aggregation in VB Grasshopper - http://woojsung.com 1

Diffusion Limited Aggregation in VB Grasshopper - http://woojsung.com 2

DIFFUSION-LIMITED AGGREGATION

The process whereby particles undergoing a random walk due to Brownian motion cluster together to form aggregates of such particles

(from Wikipedia). This can be simply break down into two main processes;

Diffusion (Wandering Particle) - Start with two points. One as a static working as an attractor, and the other as a wandering particle

that gradually approaches toward the attractor over time.

PROCESS

step 01

Get a random point on a given boundary.

This point will gradually approach to an attractor

as it wander within the boundary.

The attractor will be the first aggregate as

it still serve as an attractor.

step 02

When wandering a particle, keep the random

angle less than 180 degrees to force

the particle move toward the attractor.

Otherwise, the particle might be lost in the

space.

Aggregation (Sticking Particles within threshold) - Constantly check if those two points are close enough. If yes, stop wandering and

merge two points by connecting them with a single line. Otherwise, let the particle wander until it gets in to the threshold.

step 03

Every time moving the particle, check the

distance between the two points to see if

they are close enough to get merged.

Diffusion Limited Aggregation in VB Grasshopper - http://woojsung.com 2


aggregation process

it grows to a bunch of points aggregated at around the seed.

Movie clip captures of DLA process simulated in Grasshopper/VB. Starting from a seed at the center


REACTION DIFFUSION SYSTEM //

DIGITAL MEDIA CLASS, HARVARD GSD 2012

Reaction–diffusion systems are mathematical models which explain how the concentration of one or more substances distributed in space

changes under the influence of two processes: local chemical reactions in which the substances are transformed into each other, and

diffusion which causes the substances to spread out over a surface in space (from Wikipedia).

The system can be simply break down into two main processes; Diffusion and Reaction.

1) Diffusion (Wandering Particles) Unlike DLA system’s, particles wandering in Reaction Diffusion system don’t have any dominant direction.

They move in a random fashion spreading over time.

2) Reaction (Aggregation - Sticking Particles within threshold) One of the most challenging thing about the system is on its complexity.

Unlike DLA system where there is only one moving particle at a time, all particles in the Reaction Diffusion system move randomly all

together at the same time. So in each iteration, we have to calculate and check every possible combination of distances between points.

Constantly check if there is a set of two points close enough to each other. If yes, stop wandering and merge the two points into a single line,

and stop moving those points. Otherwise, let the particle wander until they get close enough to the threshold.


Reaction Diffusion system in VB Grasshopper - http://woojsung.com 3

algorithm design

Prior to jump on scripting, very clear definition of R-D system needs to be thought out step by step. Key things

were how to mimic Brownian motion and reaction and all associated processes in Visual Basic.

REACTION DIFFUSION SYSTEM

Reaction–diffusion systems are mathematical models which explain how the concentration of one or more substances distributed in

space changes under the influence of two processes: local chemical reactions in which the substances are transformed into each other,

and diffusion which causes the substances to spread out over a surface in space (from Wikipedia).

Reaction Diffusion system in this material is not describing exactly what it really is. Rather, this is my own interpretation of the system.

The system can be simply break down into two main processes; Diffusion and Reaction

PROCESS

step 01

Wander points / random direction.

Diffusion (Wandering Particles)

Unlike DLA system’s, particles wandering

in Reaction Diffusion system don’t

have any dominant direction. They

move in a random fashion spreading

over time.

step 02

Check all possible cases of distance from

the a point (A).

Reaction (Aggregation - Sticking Particles

within threshold)

One of the most challenging thing

about the system is on its complexity.

Unlike DLA system where there

is only one moving particle at a time,

all particles in the Reaction Diffusion

system move randomly all together

at the same time. So in each iteration,

we have to calculate and check every

possible combination of distances between

points.

Constantly check if there is a set of

two points close enough to each other.

If yes, stop wandering and merge the

two points into a single line, and stop

moving those points. Otherwise, let

the particle wander until they get close

enough to the threshold.

step 03

Check all possible cases of distance from

the a point (N).

Reaction Diffusion system in VB Grasshopper - http://woojsung.com 1

Reaction Diffusion system in VB Grasshopper - http://woojsung.com 2

step 04

Get the list of shortest distances between

points and compare the list to threshold to

merge points if the number is smaller than

the threshold.

step 06

Basically there are 6 sets of points. At a

certain point of process, there should be

two input point sets, (a)pts_wander_in

and (b)pts_frozen_in. Then to check every

possible cases of distance between points,

we create two additional sets of points,

(c)pts_from and (d)pts_to. (c)pts_from is

from (a)pts_wander_in and (d)pts_to is a

mixture of both (a)pts_wander_in and (b)

pts_frozen_in. After checking distances

with threshold, we lose some points close

enough to other points from (a) or (c),

forming (e)pts_wander_out. At the same

time, we get some points from (a) or (c)

growing size of fronzen point set (f)pts_frozen_out.

Reaction Diffusion system in VB Grasshopper - http://woojsung.com 4


-d process

Movie clip captures of R-D process simulated in Grasshopper/VB. Starting from a point cloud, it forms pattern

depend on proximity between points as the particles do Brownian motion.


SURFACE RUN OFF //

DIGITAL MEDIA CLASS, HARVARD GSD 2011

The goal of the definition is to simulate the way how water flows downwards on a hilly terrain. Let’s start by dividing the process into

three parts;

Part 1 - Define a drain slope vector at an arbitrary point, called ‘input point’ in our definition, on a give surface, then decide possible

position of an ‘output point’ on the surface. When we are given a vector at a specific time and position, by multiplying a factor, we

can predict what next position would be. In our case, we call the factor ‘distance_factor’ and this number will decide how precise the

process would be.

Part 2 - In Part 1, we got an ‘output point’ from an initial ‘input point’. If we use the ‘output point’ as another ‘input point’, we can get

another ‘output point’. By repeating this until we cannot get a valid ‘output point’, we can get a water flow curve from the series of

points.

Part 3 - By supplying multiple ‘input points’ to the process explained in the previous steps, we can simulate water flow from multiple

source on a given surface.


IDEA

The goal of the definition is to simulate the way how water flows downwards on a hilly terrain. Let’s start by dividing the process into

three parts;

Part 1 - Define a drain slope vector at an arbitrary point, called ‘input point’ in our definition, on a give surface, then decide possible

position of an ‘output point’ on the surface. When we are given a vector at a specific time and position, by multiplying a factor, we

can predict what next position would be. In our case, we call the factor ‘distance_factor’ and this number will decide how precise the

process would be.

Part 2 - In Part 1, we got an ‘output point’ from an initial ‘input point’. If we use the ‘output point’ as another ‘input point’, we can get

another ‘output point’. By repeating this until we cannot get a valid ‘output point’, we can get a water flow curve from the series of

points.

Part 3 - By supplying multiple ‘input points’ to the process explained in the previous steps, we can simulate water flow from multiple

source on a given surface.

Z VECTOR

NORMAL VECTOR

Z VECTOR

SURFACE VECTOR

CROSS PRODUCT VECTOR

(UNITIZED)

DISTANCE FACTOR

INPUT POINT

DRAIN VECTOR

OUTPUT POINT

CROSS PRODUCT VECTOR

(UNITIZED)

INPUT POINT

Part 1 Part 2

IF AN OUTPUT POINT IS OUT OF THE

SURFACE, PULL IT BACK BY GETTING THE

CLOSEST POINT ON THE SURFACE

INPUT POINTS

INPUT POINT

/OUTPUT POINT

INPUT POINT

/OUTPUT POINT

INPUT POINT

/OUTPUT POINT

INPUT POINT

/OUTPUT POINT

THERE IS ONLY ONE CONDITION WHEN

THIS PROCESS STOPS; Z VALUE OF

INPUT AND OUTPUT POINTS ARE SAME

INPUT POINT

/OUTPUT POINT

Part 2 OUTPUT POINT

Part 3

COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 1


COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 4

PART 1 FINDING AN ‘OUTPUT POINT’

PART 2 DEFINING A ‘FLOW LINE’

Z VECTOR

SURFACE VECTOR

Z VECTOR

SURFACE VECTOR

Z VECTOR

SURFACE VECTOR

step 01

Repeat the process by continuously replacing an ‘input point’ in

current iteration with an ‘output point’ in the previous one. If an

‘output point’ is out of the surface, we always can pull it back

onto the surface by finding the closest point on it.

INPUT POINT

CROSS PRODUCT VECTOR

(UNITIZED)

INPUT POINT

CROSS PRODUCT VECTOR

(UNITIZED)

INPUT POINT

step 01

Get a normal vector at an arbitrary point (input point) on

a given surface. Get a Z vector at the point.

step 02

Get a cross product vector by

two vectors in the step 02.

Right hand rule shows that

the direction of a cross product

vector always wants to be

perpendicular to the direction

of drain slope.

RIGHT-HAND RULE

WWW.WIKIPEDIA.ORG

IF AN OUTPUT POINT IS OUT OF THE

SURFACE, PULL IT BACK BY GETTING THE

CLOSEST POINT ON THE SURFACE

step 02

There is only one case when this chain reaction stops; when z

value of both an ‘input’ and ‘output’ point are same. This means

for whatever reason, an output point is not moving any further

from an input point.

INPUT POINT

/OUTPUT POINT

Z VECTOR

SURFACE VECTOR

Z VECTOR

SURFACE VECTOR

CROSS PRODUCT VECTOR

(UNITIZED)

INPUT POINT

CROSS PRODUCT VECTOR

(UNITIZED)

INPUT POINT

INPUT POINT

/OUTPUT POINT

DRAIN VECTOR

(UNITIZED)

DRAIN VECTOR

(MULTIPLIED BY DISTANCE FACTOR)

INPUT POINT

/OUTPUT POINT

ROTATE “CROSS PRODUCT VECTOR” 90 DEGREES

AROUND “SURFACE VECTOR”

step 03

Rotate ‘cross product vector’ 90 degrees count clock wise

around ‘surface normal vector to get ‘drain slope vector’

step 04

Multiply a certain number to the unitized ‘drain slope vector’

to get a output point. We call the number ‘distance_factor’

and it determines how accurate this process would be.

THERE IS ONLY ONE CONDITION WHEN

THIS PROCESS STOPS; Z VALUE OF

INPUT AND OUTPUT POINTS ARE SAME

OUTPUT POINT

INPUT POINT

/OUTPUT POINT

INPUT POINT

/OUTPUT POINT

PART 3 APPLYING TO MULTIPLE WATER SOURCES

step 01

We can get multiple flow lines by supplying series of input points

depending on one’s design intent.

Z VECTOR

SURFACE VECTOR

Z VECTOR

SURFACE VECTOR

INPUT POINTS

CROSS PRODUCT VECTOR

(UNITIZED)

INPUT POINT

CROSS PRODUCT VECTOR

(UNITIZED)

INPUT POINT

OUTPUT POINT

OUTPUT POINT

(PROJECTED ONTO THE SURFACE,

BY CLOSEST POINT ON THE SURFACE)

INPUT POINT

INPUT POINT

OUTPUT POINT

OUTPUT POINT

step 05

Because of the surface curvature, an ‘output point’ most

likely not on the surface.

step 06

So we want to pull the point back onto the surface

by finding closest point from the point.

COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 2

COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 3

CODE REVIEW

PART 1 FINDING AN ‘OUTPUT POINT’

Refer to ‘VB workshop part1.gh’ and ‘VB workshop.3dm’ attached.

scene setting

Set up the scene as illustrated below.

step 1 In this step we want to get a ‘normal vector’ and a ‘z vector’ on a ‘base surface’ at an ‘input point’. We start by defining an

empty 3d vector.

91 Dim normal_vector as Vector3d

When we declare something by ‘Dim A as B’, A is a name of the variable and B is a type of the variable such as point3d, integer,

vector3d, surface, etc.. We call these ‘classes’ instead of ‘types’. So integer can be a class and surface can be another.

A class is, as you may feel, very abstract concept like dog, cat, or rhino(without indefinite article maybe?). For example, vector3d

as a class doesn’t even have a real name and we don’t know anything about it; direction, magnitude, etc..

By giving it a name, ‘normal_vector’, we get a vector3d out of vector3d class. Now ‘normal_vector’ is an object. An object is

like a dog, a cat, or a rhino(with indefinite article maybe?). However it is still bodiless and doesn’t have any physical characteristics.

‘normal_vector’ still can be any vector3d, as a dog can represent DiCaprio, my dog, or Pitt, your dog.

If you want to be more specific about your vecter3d, ‘normal_vector’, you can do that by defining an instance. ‘Dim A as

New B(C)’ is a typical way of defining an instance. A is a name of the instance, B is a name of the class, and C is specific

condition that gives physicality to A. For example, a ‘normal_vector’ in line 91 is an object in vector3d class, but we don’t

know where it is and how big it is, etc.. But if we define a ‘normal_vector’ by ‘Dim normal_vector as New Vector3d(pointA,

pointB)’, the vector comes alive in a space with physicalities such as a starting and ending point as well as length.

Class - Dog Object - A dog Instance - A blue dog

dog has four legs and

a tail, covered with fur,...

COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 5


COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 8

Z VECTOR

SURFACE VECTOR

Z VECTOR

SURFACE VECTOR

INPUT POINT

INPUT POINT

93 normal_vector = base_srf.NormalAt(u, v)

Now we want to get a ‘normal_vector’ on a ‘base_surface’ at a ‘input_point’. It is clear that a normal vector cannot even

exist without a surface. If so, there should be some kind of protocol that enable us to find a normal vector from a surface.

Of course there are. Every class, object, and instance has lower level services; ‘constructor, methods, and properties’.

‘Constructor’ is the way how we build new instances/objects out of classes. For example, when we draw a line by two

points, we can code it in this way; ‘Dim A as New Line(pointA, pointB)’.

While ‘constructor’ is more about defining an instance/object itself, ‘methods’ has to do with manipulating, evaluating or

analyzing the instance/object to get something else other than its inherited properties. For example, if you want to get a

surface normal vector at a certain point on a surface, you probably can find a ‘method’ that does this for you from a list of

‘methods’ in surface class.

89 base_srf.ClosestPoint(input_pt, u, v)

Now we want to get (u,v) POINT coordinate of the ‘input_point’ on the ‘base_surface’. We all know from our experiences in Grasshopper

ORIGIN that the easiest

LOCAL COORDINATE SYSTEM

(U,V)

way to convert a global coordinate, (x,y,z), into local one, (u,v) is to use ‘finding the closest point on

LOCAL COORDINATE SYSTEM

ON SURFACE

a (0,0) surface’ method. This is sort of pre-defined/built-in function in Grasshopper that returns you (u,v) coordinate when you

supply a surface and a point. Since this method will clearly be part of surface class, browse in to surface class and there you

will find the below in method tab.

Surface.ClosestPoint (testPoint As Point3d, ByRef u As Double, ByRef v As Double)

This method requires a testPoint from which it calculates the closest point, and then pass the local coordinate of the closest

point by two output references, u and v. When you decipher a code in the SDK, ByRef usually means something you get not

something you supply.

‘Properties’ are inherited characteristics of an instance. Unlike ‘methods’, ‘properties’ can be retrieved free directly from an

instance/object. For example, unlike a surface normal vector at a specific point, area of the surface doesn’t change as long

as the surface stays same, and we always can ask the surface like “how big are you?”.

Good thing about these protocols are that you can always call them with a ‘dot’ connector. Whenever you want to ask an

instance/object, simply type in a dot right next to its name then you will see promptly whatever would be available at that

moment. So, in our case, since we have no idea how to find a ‘method’ that extracts a ‘normal_vector’ from a surface, we

can just type in ‘base_srf’ and add ‘.’ right next to it. Then you will see a list of possible ‘methods’. In this case, we want to

select ‘NormalAt’ from the drop down list.

POINT

GLOBAL COORDINATE SYSTEM

(X,Y,Z)

ORIGIN

LOCAL COORDINATE SYSTEM

ON SURFACE

(0,0)

POINT

LOCAL COORDINATE SYSTEM

(U,V)

If you are not sure what do you need, or simply want to browse what is available, you can find useful reference/bible here

at the Rhino Common SDK(Software Development Kit) in this page, http://www.rhino3d.com/5/rhinocommon/index.html.

There you might want to browse in to Rhino.Geometry Namespace, where all of accessible rhino classes are listed up for

you. There you can get this;

ORIGIN

GLOBAL COORDINATE SYSTEM

(0,0,0)

Surface.NormalAt (u As Double, v As Double) As Vector3d

‘NormalAt’ method, as you see it, needs two variables; u as double, and v as double. u and v or (u,v) is a local coordinate

systme that represents a location of a point on a surface. Because we don’t know yet how and where we can get both u and

v, let’s just put ‘u’ and ‘v’ as variables.

87 Dim u, v As Double

Although we don’t know anything about them, one thing for sure is that they are double. And also they want to be declared

before they are called in in order to avoid an error. Declare ‘u’ and ‘v’ as double in line 87.

POINT

GLOBAL COORDINATE SYSTEM

(X,Y,Z)

COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 6

COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 7

ORIGIN

GLOBAL COORDINATE SYSTEM

(0,0,0)

Z VECTOR

SURFACE VECTOR

Z VECTOR

SURFACE VECTOR

Z VECTOR

SURFACE NORMAL VECTOR

CROSS PRODUCT VECTOR

(UNITIZED)

INPUT POINT

CROSS PRODUCT VECTOR

(UNITIZED)

INPUT POINT

DRAIN VECTOR

(UNITIZED)

CROSS PRODUCT VECTOR

INPUT POINT

(UNITIZED)

DRAIN VECTOR

DISTANCE FACTOR OUTPUT POINT

(PROJECTED ONTO THE SURFACE,

BY

OUTPUT

CLOSEST

POINT

POINT ON THE SURFACE)

ROTATE “CROSS PRODUCT VECTOR” 90 DEGREES

AROUND “SURFACE VECTOR”

INPUT POINT

OUTPUT POINT

RIGHT-HAND RULE

WWW.WIKIPEDIA.ORG

step 3 In this step, we will get an ‘output_point’ by multiplying a number, ‘distance_factor’, to the ‘drain vector’.

step 2 In this step, we want get a ‘drain_vector’ by a ‘normal_vector’ and a ‘z_vector’ at the ‘input_point’.

95 Dim drain_vector As vector3d = vector3d.CrossProduct(normal_vector, vector3d.ZAxis)

We have two vectors springing from the ‘input_point’; a ‘normal_vector’ from the previous step and a ‘z_vector’. From

the illustration above, I believe that you can predict the direction of water flow very easily. Yes, the ‘drain_vector’ is always

perpendicular to the ‘cross product vector’ of two input vectors. In other words, we can rotate the ‘cross product vector’

90 degrees CCW around ‘normal_vector’ to get the ‘drain_vector’. We can compute the cross product of these vectors with

vector3d.crossproduct method. Unlike ‘NormalAt’ or ‘ClosestPoint’ methods in the previous steps, this particular methods

cannot be subordinate to any instance or object, because this method wants to calculate two inputs vectors in the same

level. In this case, we can start with generic term, ‘Vector3d’ instead of any instance/object name.

Vector3d.CrossProduct (a As Vector3d, b As Vector3d) As Vector3d

This method requires two vectors as inputs, and the method itself becomes another vector3d instance. Although the ‘crossproduct

vector’ is not a ‘drain_vector’, we can assign this vector to a ‘drain_vector’ for now.

97 drain_vector.Unitize

101 Dim moved_pt As point3d = input_pt + distance_factor * drain_vector

Line 101 is straight forward. This is to move an ‘input_point’ by amplifying the ‘drain_vector’ with

‘distance_factor’. We save this to a temporary space called ‘moved_point’.

103 base_srf.ClosestPoint(moved_pt, u, v)

Then we pull this temporary point back to the surface. Surface.closestpoint method gives (u,v) coordinates

of the ‘moved_point’.

105 Dim output_pt As Point3d = base_srf.PointAt(u, v)

107 A = output_pt

Then by supplying (u,v) values to surface.pointat method, we get an ‘output_point’. Then, export the

point through an output tab, A.

In line 97, we unitize the vector, so we can have better control on its length. Otherwise, sometimes it will cause an unexpected

error because of uncertainty in vector length.

99 drain_vector.Transform(Transform.Rotation(Math.PI * 0.5, normal_vector, input_pt))

In line 99, we want to rotate the vector 90 degrees counter clock wise around a ‘normal_vector’ to get a ‘drain_vector’. We

can use vector3d.transform method.

Vector3d.Transform (transformation As Transform)

This method requires ‘transform’ (transform is a class) as a variable.

Transform.Rotation (angleRadians As Double, rotationAxis As Vector3d, rotationCenter As Point3d) As Transform

Transform class has a rotation method, and it requires three variables. Now we get a ‘drain_vector’!

COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 9


COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 12

PART 2 DEFINING A ‘FLOW LINE’

Refer to ‘VB workshop part2.gh’ and ‘VB workshop.3dm’ attached.

input

INPUT POINT

function name

OUTPUTPOINT

output

OUTPUT POINT

CROSS PRODUCT VECTOR

(UNITIZED)

Z VECTOR

SURFACE VECTOR

INPUT POINT

INPUT POINT

/OUTPUT POINT

INPUT POINT

/OUTPUT POINT

INPUT POINT. Z VALUE

>

OUTPUT POINT. Z VALUE

YES

INPUT POINT

/OUTPUT POINT

INPUT POINT

/OUTPUT POINT

NO

PROCESS END

IF AN OUTPUT POINT IS OUT OF THE

SURFACE, PULL IT BACK BY GETTING THE

CLOSEST POINT ON THE SURFACE

THERE IS ONLY ONE CONDITION WHEN

THIS PROCESS STOPS; Z VALUE OF

INPUT AND OUTPUT POINTS ARE SAME

OUTPUT POINT

INPUT POINT

/OUTPUT POINT

step 1 In the part 1, we defined a simple system that returns an output by a certain logic. And now we want to convert this process

into a modular system that keeps repeating its cycle until it satisfies a certain condition. For example, a recursive function; an output

of current iteration becomes an input for the next iteration.

After copy and paste, we might need to change some part of the code.

Private Sub RunScript(..., ..., ..., ByRef A As Object)

119 Private Function outputpoint(..., ..., ..., ByRef output_pt As Object) As Boolean

Above red is the first line of the code that you’ve just paste. And we will change the code like in blue.

Private means this portion of code doesn’t share any name with the rest of code. You also can make it public if you want.

However we don’t want any naming conflictions, so we keep it private.

Runscript is a name of this portion of code. We change the name to something meaningful, ‘outputpoint’.

Copy all the code from the step 1, from line 85 to 109. Then paste it to a place for custom script like below.

We change Sub to Function. Both of them refer to segments of code that are separate from main code. The difference

between the two is ‘sub’ doesn’t return a value, while ‘function’ does. And we want this function, ‘outputpoint’, to store a

boolean value for validity check. Confused? I found this link very useful for reference. http://www.homeandlearn.co.uk/NET/

vbNet.html

139 If output_pt.Z >= input_pt.Z Then

141 outputpoint = False

143 Else

145 outputpoint = True

147 End If

This portion of code is to check if we want to repeat the process again or stop.

As we can see from the diagram on the right hand side, we want to quit finding

‘output_point’ process when input and output points are on the same elevation.

So when this happens, we want to tell the main part of the code to stop this sub

process. And we obviously need a messenger that delivers the message. That is

why we wanted to make this portion of code to be ‘function’ instead of ‘sub’. So

depending on the validity, it assigns ‘True’ or ‘False’ to the function, so the main

part of the code can decide if it wants to keep going or not.

input

INPUT POINT

function name

OUTPUTPOINT

YES

INPUT POINT. Z VALUE

>

OUTPUT POINT. Z VALUE

NO

PROCESS END

output

OUTPUT POINT

COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 10

COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 11

If (conditional statement) Then

(do this)

Else

(do that)

End If

This is how ‘if statements’, one of conditional logic of VB works. For more information on VB, you can visit http://www.

homeandlearn.co.uk/NET/vbNet.html

87 Dim pt As point3d = input_pt

93 Dim output_pt As point3d

89 Dim output_pts As New List(Of Point3d)

91 output_pts.Add(pt)

step 2 In step 1, we defined a funtion ‘outputpoint’. In step 2, we call the function and run it until the function returns ‘false’.

95 Do

109 Loop While outputpoint(base_srf, pt, distance_factor, output_pt) = True

First off, we want to repeat the sub portion of the code, function or ‘outputpoint’ as long as its value is ‘True’.

Do

(do this)

Loop While (conditional statement)

This is how ‘Do ~ Loop’, one of loop logics in VB, works. Note that ‘while ()’ part can be either after ‘Do’ or after ‘Loop’.

And also note that the way how we call the function ‘outputpoint’. It is pretty much same as the way we use methods in the

previous steps.

97 outputpoint(base_srf, pt, distance_factor, output_pt)

In line 97, finally we call the function. We have to supply this function with 4 parameters; first three as inputs and the last

one as an output. It is exactly the same as the way we did in Grasshopper canvas.

We put ‘base_surface’ and ‘distance_factor’ as they are since they are pretty

solid during the process unless we want to change them for some reasons.

However, due to its nature as a recursive process, points tend to change frequently

as it repeat process over the time. So we can start with two temporary

spaces for both input and output points.

In line 87, we declare a temporary space ‘pt’ for an input point, and then assign the ‘input_point’ to ‘pt’. Also in line 93,

we declare an empty point3d for output point, ‘output_point’. And in line 89, we declare a space to store a list of points,

‘output_points’. Then in line 91, we might want to add the initial input point ‘pt’ to the output point list, so at the end of the

process, polyline curve can start from the ‘input_point’.

95 Do

97 outputpoint(base_srf, pt, distance_factor, output_pt)

99 output_pts.add(output_pt)

101 pt = output_pt

103 If output_pts.Count > 100 Then

105 Exit Do

107 End If

109 Loop While outputpoint(base_srf, pt, distance_factor, output_pt) = True

Back to the ‘Do ~ Loop’ part, in line 99, we add the first output of function ‘outputpoint’. And in the next line, we switch

output point of the current iteration with ‘pt’, a temporary location for an input point.

From line 103 to 107, we check if total number of points in the output point list, ‘output_pts’, is more than 100. Otherwise,

without this, your code might crash because of unexpected heavy load.

111 Dim output_crv As New PolylineCurve(output_pts)

113 A = output_crv

Get a polyline curve from the ‘output_points’ list, and export the curve to A.

COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 13


COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 14

PART 3 APPLYING TO MULTIPLE WATER SOURCES

Refer to ‘VB workshop part3.gh’ and ‘VB workshop.3dm’ attached.

In the part 3, we apply the previously defined component to multiple points.

INPUT POINTS

step 1 Now we want to repeat the process for every input point.

87 Dim output_crvs As New List(Of PolylineCurve)

Because, at the end of the process, we might want to get multiple polyline curves, we start off by declaring a place to store

polyline curve list.

89 For Each pt As point3d In input_pt

....

115 output_crvs.Add(output_crv)

117 Next

This is another form of loop logic in VB, and unlike ‘do ~ Loop’, ‘for ~ next’ is unconditional. It simply do whatever it wants to

do until there is no point left in the point list. In line 115, add ‘output_curve’ to the output curve list.

COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 15


t (start point or initial point if you like) and check if the slope is within the range of s

ctor. Otherwise, we rotate the vector along with the normal vector at the point until

e the start point by the vector. This point will be the product of part 1 and, at the sam

SHORTEST PATH ON A CURVED SURFACE //

DIGITAL MEDIA CLASS, HARVARD GSD 2012

g this process, we continue to find another next point until it is close enough to the de

cluding The goal start of the definition and end is to find ones the shortest to path get between a shortest two points on path a topography which that does doesn’t not exceed a exceed specific slope; a specific slo

Part 1 - Define a shortest path between two points on a given surface regardless of its slope(geodesic). Evaluate the slope vector on the path

at the point (start point or initial point if you like) and check if the slope is within the range of safe slope. If yes, we move the start point by

the vector. Otherwise, we rotate the vector along with the normal vector at the point until the slope would be within the range. Then we

move the start point by the vector. This point will be the product of part 1 and, at the same time, another start point of the next iteration.

Part 2 - By repeating this process, we continue to find another next point until it is close enough to the destination point. Then we connect

all the points including start and end ones to get a shortest path which doesn’t exceed a specific slope.


afe slope. If yes, we move the

the slope would be within the

e time, another start point of

algorithm design

Prior to jump on scripting, very clear definition of the system needs to be thought out step by step. Key things

were how to evaluate a slope at a certain point on the surface and iterate to find the optimal path between the two points.

stination point. Then we conpe.

PROCESS

step 01

Get the shortest path between two points

on a surface (geodesic).

step 03

1) within the range

2) steeper than maximum

3) steeper than minimum

step 03

step 02

Get a tangetn vector on the path at the

point to get a slope angle. Slope can be calcuated

by the angle between the tangent

and Z-axis at the point.

1) within the range

2) steeper than maximum

3) steeper than minimum

step 03

Check if the slope at the point is within the

range between maximum and minimum

slope. There might be three possible cases.

step 04

In this case, the tangent vector is steeper

than the maximum so we want to find alternative

route.

1) within the range

2) steeper than maximum

3) steeper than minimum

COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 2

COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 3

step 05

Rotate the tangent vector along with the

normal vector of the point 5 degrees at a

time clock wise until the vector gets within

the range between max and min slope.

step 08

Move the starting point by the vector (vector

multiplied by a factor. The smaller the

factor, the more accurate the process will

be). Then we might need to pull the point

back to the surface.

step 06

Do the same thing this time in count clock

wise.

step 09

Repeat the process with the point that

we’ve just got form the previous step.

Do the iteration over until the output point

is close enough to the destination point.

step 07

Compare the two to pick closer one to the

destination point.

step 10

By connecting all those points including

start and end ones, we get the path.

COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 4

COMPONENT ORIENTED DESIGN IN GRASSHOPPER VB - http://woojsung.com 5


GRASSHOPPER VB WORKSHOP - Unrolling Surface

UNFOLDING CURVED SURFACE //

DIGITAL MEDIA CLASS, HARVARD GSD 2013

(re)fabricating tectonic prototypes, Spring 2013, Harvard, GSD - Leyre Asensio Villoria

GH version 0.9.0014

woojae sung . woojae.sung@yahoo.com . www.woojsung.com

The goal of the definition is to generate curved surfaced approximation with triangles and automate unfolded map of the triangles on to

x-y plane for digital fabrication.


Unrolling Surface - http://woojsung.com 3

algorithm design

Prior to jump on scripting, very clear definition of the system needs to be thought out step by step. Key things

were how to approximate a curved surface using triangulation, and orient individual patches to xy plane for digital fabrication.

PROCESS

step 01

Build a surface.

step 04

Triangulate patches.

step 02

Subdivide the surface into series of strips.

step 05

Keep a particular order so we can handle

points and segments of each triangle easily

in scripting.

step 03

Subdivide strips into series of patches.

step 06

Set a reference point for unrolling.

Unrolling Surface - http://woojsung.com 1

Unrolling Surface - http://woojsung.com 2

step 07

Move the reference point along with -y

vector and the length of the first segment

of the first triangle to get the 2nd point.

step 10

This time, use the 2nd segment of the first

triangle as a starting point for the next iteration.

Use the 3rd point of the first triangle

as a reference point of second triangle.

Then set a movement vector using the

2nd segment of the flattened first triangle.

Based on the length of the 2nd segment of

the 2nd triangle and the movement vector,

move the reference point.

step 08

Move the 2nd point along with y axis in

the amount equal to the length of 2nd segment

of the first triangle.

step 11

Rotate the point using the angle, this time

clockwise, to get the 2nd point of the second

triangle. 3rd point of the second triangle

will be 2nd point of the first flattened

triangle.

step 09

Rotate 2nd point with the angle between

the first and second segments of the first

triangle to get the 3rd point. Then using

the 3 points, get a closed polyline which

represents flatten 1st triangle.

step 12

Repeat the process but this time rotate

point counter clockwise.

Note that when index number of input triangle

is 0, or even number or odd number,

the process are slightly differ from each

other in terms of rotation angle and setting

up reference point.

Unrolling Surface - http://woojsung.com 4


CELL PACKING //

PARAMETRIC WORKSHOP, 2011

The goal of the definition is to find an optimal combination of variables that meets the pre-defined requirements. Galapagos, built in

equation solver in Grasshopper was used.


IDEA

The idea was to create four component types, and then array / pack them together. Each component has only one variable, the angle between

two lines, which are represented by solid red lines tangent to a circle in the center. Each angle varies within a predefined range, for example,

TYPE A’s angle is in a range between 5 to 10 degrees, TYPE B’s in between 7 to 12, etc.. In the second step we array them based on a certain

order, which we can modify later. Then in the last step we want to minimize the sum of distance D1 and D2 so the array can be packed as tight

as possible. Since we have four independent variables, it seems quite tough to get the optimum angle value for each component by moving

number sliders. To solve the optimum value for each number sliders, we will use Galapagos, built-in algorithm solver in Grasshopper.

STEP01 COMPONENTS

STEP02 INITIAL ARRAY

VARIABLE

ANGLE 01

VARIABLE

ANGLE 02

VARIABLE

ANGLE 03

VARIABLE

ANGLE 04

TYPE A

TYPE B

TYPE C

TYPE D

STEP03 PACKED

D1

D2

COMPONENT PACKING VB + GALAPAGOS - http://woojsung.com 01


COMPONENT PACKING VB + GALAPAGOS - http://woojsung.com 04

DEFINING A COMPONENT

In the first place, we are going to define a component using only Grasshopper’s built-in objects (then we will convert it to a custom VB scripting

object). The first thing is to draw a line (we call it as Start Line) in Rhino in length of 20 and connect it to Grasshopper Curve Object. Then we

get a mid point of the line to get a perpendicular line (we call it as Start Leg) in length of 2.5. Now we can get a tangential circle at the end of

the perpendicular line. Then we rotate geometries including the Start Line and the Start Leg by a certain amount of angle to get the “End line”

and “End Leg”.

CUSTOM VB COMPONENT

As you can see from the screenshot below, the custom VB component has three inputs and seven outputs, which are pretty familiar with us. If

not, refer to the component process diagram in the previous page. What it does is basically same thing with the GH definition in the previous

page. We supply a curve as the initial input geometry, radius of a circle as fixed number (though it is from a number slider), and pivot angle as

a variable. Then we get series of outputs such as End Curve, End Leg, etc.. (002 component VB.ghx)

INPUT GEOMETRY

Start Line

Circle /

Pivot Cell

End Leg

End Line

L = 0.5

Start Leg Pt

LENGTH = 2.5

Center Pt

RADIUS = 2.5

ANGLE

Start Leg

Pivot Point

End Leg Pt

Why do we use VB component over GH Objects? If you don’t bother with the length definition like below, you don’t have to. However, you will

find it much easier to do whatever you want to do as you get to know about VB Scripting better (Such a fantastic excuse!).

01 A CENTER POINT 02 A PERPENDICULAR LINE 03 A CIRCLE 04 ROTATE BY ANGLE 05 ROTATE BY ANGLE

GH DEFINITION

Below is the screenshot of the definition ( 001 component GH objects.ghx ).

COMPONENT PACKING VB + GALAPAGOS - http://woojsung.com 02

COMPONENT PACKING VB + GALAPAGOS - http://woojsung.com 03

CODE REVIEW

Double click on the VB object, you will get a new window to edit VB script.

L = 0.5

INPUT GEOMETRY

Start Line

Start Leg Pt

LENGTH = 2.5

'defines start_leg_pt //////////////////////////////////////////////////////////////////////////////////////////

End Line

Circle /

Dim s_pt As New point3d(start_crv.PointAt(0.5))

Pivot Cell

End Leg

Center Pt

L = 0.5

start_leg_pt = s_pt

Start Leg Pt

RADIUS = 2.5

• Any line that starts with ‘ means that the line is just a note / comment. This does not do anything. Start Leg

• The second line defines variable “s_pt” as a new point, and assign a mid point of the input curve (“start_

crv”) to it. Then assign “s_pt” to “start_leg_pt”, the output of the VB object.

ANGLE

Start Leg

Pivot Point

INPUT GEOMETRY

Start Line

LENGTH = 2.5

Center Pt

RADIUS = 2.5

Circle /

Pivot Cell

Pivot Point

'defines pivot_pt //////////////////////////////////////////////////////////////////////////////////////////////

End Line

Dim p_pt End Leg As New point3d(line_start.PointAt(1.0))

pivot_pt = p_pt

'defines pivot_cell ////////////////////////////////////////////////////////////////////////////////////////////

Dim pivot_circle As New Circle(line_start.PointAt(1.0), pivot_cell_radius)

ANGLE

pivot_cell = pivot_circle

• Define “p_pt” as a new point object, then assign the end point of “start leg (line_start)” to it.

• Then we assign “p_pt” to ““pivot_pt”, the output of the VB object.

• Define End Leg Pt “pivot_circle” as a new circle object, then assign a circle with given center(“pivot_pt”) and

radius(“pivot_cell_radius”, the input of the VB object).

• Assign it to “pivot_cell”, the output of the VB object.

End Leg Pt

01 A CENTER POINT 02 A PERPENDICULAR LINE 03 A CIRCLE 04 ROTATE BY ANGLE 05 ROTATE BY ANGLE

L = 0.5

INPUT GEOMETRY

Start Line

Start Leg Pt

'defines End Line end_leg ///////////////////////////////////////////////////////////////////////////////////////////////

INPUT GEOMETRY

Start Line

Circle /

01 A CENTER POINT 02 A PERPENDICULAR LINE 03 A CIRCLE 04 ROTATE BY ANGLE 05 ROTATE BY ANGLE

Pivot Cell

End Leg

Dim rot As transform = transform.Rotation(pivot_ang * math.PI / 180, vector3d.ZAxis, line_start.PointAt(1.0))

'defines start_leg /////////////////////////////////////////////////////////////////////////////////////////////

End Line

Center Pt

Dim rotated_leg As line = line_start

Circle /

Dim start_crv_start Pivot Cell As New Point3d(start_crv.PointAt(0.0))

End Leg

Center Pt

Dim start_crv_end As New Point3d(start_crv.pointat(1.0))

rotated_leg.Transform(rot)

L = 0.5

Start Leg Pt

Dim original_vector As New Vector3d(start_crv_start - start_crv_end)

end_leg = rotated_leg

ANGLE

Dim rotation_ang_start_leg As Double = math.PI / 2

'defines end_leg_pt ////////////////////////////////////////////////////////////////////////////////////////////

Start Leg

Pivot Point

Dim rotation_axis_start_leg As New Vector3d(0, 0, 1)

s_pt.Transform(rot)

ANGLE

original_vector.Rotate(rotation_ang_start_leg, rotation_axis_start_leg)

Start Leg

Pivot Point

end_leg_pt = s_pt

End Leg Pt

Dim line_start As New line(start_leg_pt, original_vector, pivot_cell_radius)

'defines end_crv ///////////////////////////////////////////////////////////////////////////////////////////////

start_leg = line_start

End Leg Pt

Dim st_line As line = start_crv

01 A CENTER POINT 02 A PERPENDICULAR LINE 03 A CIRCLE 04 ROTATE BY ANGLE 05 ROTATE BY ANGLE

st_line.Transform(rot)

End Line

Dim end_line_st_pt As New Point3d(st_line.PointAt(1.0))

Dim end_line_end_pt As New Point3d(st_line.PointAt(0.0))

Dim end_line As New line(end_line_st_pt, end_line_end_pt)

end_crv = end_line

LENGTH = 2.5

RADIUS = 2.5

• Define two points variables one at the start and the other at the end of the input curve (“start_crv”).

• Then defines a vector, “original_vector”, using two points (We don’t care about the actual length of the

1 A CENTER POINT 02 A PERPENDICULAR LINE 03 A CIRCLE vector).

04 ROTATE BY ANGLE 05 ROTATE BY ANGLE

INPUT GEOMETRY

Start Line

• We need to rotate the vector(blue arrow) 90 degrees clock wise to get a perpendicular Circle / vector (green arrow)

in order to draw a perpendicular line, “Start Leg”.

Pivot Cell

End Leg

Center Pt

• To use ‘rotate method’, we first need to define rotation axis and angle. The angle should be 90 degrees

(PI/2 in radians). And Z-direction vector will serve as a rotation axis.

• Apply ‘rotate method’ to the existing vector. Methods can be applied followed by dot connector. Rotate

method consist of two input variables such as rotation angle and axis. For more information, visit http://

L = 0.5

Start Leg Pt

www.rhino3d.com/5/rhinocommon/

• Then we define a line, “line_start”, by three variables; start point of line segment, direction of line ANGLE segment

and length of line segment.

Start Leg

Pivot Point

• Assign the line to “start_leg”, the output of the VB object.

LENGTH = 2.5

LENGTH = 2.5

RADIUS = 2.5

01 A CENTER POINT 02 A PERPENDICULAR LINE 03 A CIRCLE 04 ROTATE BY ANGLE 05 ROTATE BY ANGLE

RADIUS = 2.5

End Leg Pt

• In this step, we will rotate “start line”, “start leg” and “start leg point” in a given angle, then assign them

to the corresponding output variable: “end line”, “end leg”, and “end leg point”.

• Define a rotation matrix. This will be handy since we will need to repeat the exact same transformation

couple of times. A rotation matrix consists of angle, axis, and center point of rotation. Supply corresponding

value from previously defined variable.

• Define “rotated_leg” as a line and assign “line_start” to it. Then, rotate it by the rotation matrix.

• Do the same thing for leg point and end line.

• Unlike others, “end line / start line” is direction-sensitive. When we rotate “start line”, its direction will be

reversed, so we need to flip the line.

• Get the start and end point of the rotated line, “st_line”, and make another line, “end_line”, out of the

points. Note how we supply start and end points to reverse the line.

COMPONENT PACKING VB + GALAPAGOS - http://woojsung.com 05


COMPONENT PACKING VB + GALAPAGOS - http://woojsung.com 08

USING A SUBROUTINE (FUNCTION) IN VB COMPONENT

Now that we have a working custom object, we can copy and paste it multiple times to array all the components. However, copy and paste will

cause the same problem that we had before. (003 subroutine component VB.ghx)

Let’s open up the script editor and copy from “Private Sub ~” to “End Sub” as is shown below.

We can be smart to use a subroutine in VB scripting. The idea is to define a subroutine, which is kind of a custom function within VB script, and

call it whenever we need it, just as we use “line” function.

line(start point, direction vector, distance)

Let’s say that we want to make a subroutine called “FunctionA” which do something with two inputs and one output. Then one thing we should

do is to define how it works, and the other is to call it and ask it to do whatever it supposes to do. The second part should be somewhere in VB

scripting area, and the first part should be in “custom additional code” space (not sure how scripters call these). Also note that when we define

a subroutine, “ByVal” means that it is an input variable, and “ByRef” means it is an output variable.

FunctionA (ByVal input1, ByVal input2, ByRef output1)


Sub FunctionA (ByVal input1, ByVal input2, ByRef output1)

......

End Sub


Then paste it in between ‘ and ‘

COMPONENT PACKING VB + GALAPAGOS - http://woojsung.com 06

COMPONENT PACKING VB + GALAPAGOS - http://woojsung.com 07

Then change the first part of the script as shown below. In this case, we call the subroutine as “component”.

CODE REVIEW

Double click on the VB component, you will get a new window to edit VB script.

‘defines output parameters //////////////////////////////////////////////////////////////////////////////////////

Dim pivot_cell_list As New List(Of circle)

Dim pivot_pt_list As New List(Of point3d)

Dim start_leg_list As New List(Of Line)

Dim start_leg_pt_list As New List(Of point3d)

Dim end_leg_list As New List(Of Line)

Dim end_leg_pt_list As New List(Of point3d)

Dim end_crv_list As New List(Of Line)

• The first part defines main outputs. Since we want to visualize all the components, we should define the variables in the form of list.

And we need to change inputs / outputs as shown below.

We have same inputs such as input curve, circle radius, and pivot angles. In the mean time, we also need an additional string input that defines

component type (A/B/C/D).

‘defines output parameters of “component” subroutine /////////////////////////////////////////////////////////////

Dim pivot_cell As circle

Dim pivot_pt As point3d

Dim start_leg As line

Dim start_leg_pt As point3d

Dim end_leg As line

Dim end_leg_pt As point3d

Dim end_crv As line

• Those variables are the output of “component” subroutine. If we do not define these before we call “component” subroutine, Grasshopper

will spit out error messages. Unlike outputs, we don’t have to worry about inputs of the subroutine, because they are already

defined within the subroutine.

‘defines rotation_ang ///////////////////////////////////////////////////////////////////////////////////////////

Dim rotation_ang As Double

• This defines “rotation_angle”. Why? Because this angle may vary depend on the type of component (A/B/C/D). So we first define the

angle as an empty variable, then we assign specific value later based on component types.

COMPONENT PACKING VB + GALAPAGOS - http://woojsung.com 09


COMPONENT PACKING VB + GALAPAGOS - http://woojsung.com 12

‘checks component types and computes output based on the types /////////////////////////////////////////////////

For i As Integer = 0 To celltype.Count - 1

If i = 0 Then

If celltype(i) = “A” Then

rotation_ang = A_ang

Else If celltype(i) = “B” Then

rotation_ang = B_ang

pivot_cell_list.Add(pivot_cell)

pivot_pt_list.Add(pivot_pt)

start_leg_list.Add(start_leg)

start_leg_pt_list.Add(start_leg_pt)

end_leg_list.Add(end_leg)

end_leg_pt_list.Add(end_leg_pt)

end_crv_list.Add(end_crv)

Next

• Add every single output for the current iteration to the lists, before the next iteration.

Else If celltype(i) = “C” Then

rotation_ang = C_ang

Else If celltype(i) = “D” Then

rotation_ang = D_ang

End If

component(int_line, r, rotation_ang, pivot_cell, pivot_pt, start_leg, start_leg_pt, end_leg, end_leg_pt, end_crv)

• Now we multiply component based on component types supplied in the form of a list of strings (A/B/C/D).

• Do iteration for a certain amount of times depends on the length of characters list. That is what “For i As ~ “ do.

• If this is the first path of the iteration(if i = 0 then), we use “int_line” (one that we made in Rhino and supplied as an input geometry of

VB object) as our input geometry for the subroutine. Else, we use “end_crv” from the previous iteration as the input curve.

• Assign type specific rotation angle to variable “rotation_ang”. A_ang / B_ang / C_ang / D_ang are input parameters that we can adjust

in number sliders.

• Then finally we call the subroutine, “component”. Note that we supply “int_line”(input geometry), “r”(radius of a circle) and “rotation_ang”

and we get “pivot_cell”, “start_leg”, “start_leg_pt”, “end_leg”, “end_leg_pt”, and “end_crv”.

• As is mentioned, “end_crv” will be an input geometry for the next iteration.

‘output /////////////////////////////////////////////////////////////////////////////////////////////////////////////

A = pivot_cell_list

B = pivot_pt_list

C = start_leg_list

D = start_leg_pt_list

E = end_leg_list

F = end_leg_pt_list

G = end_crv_list

• Put list variables to the corresponding output parameters so we can see the result in Rhino viewport.

Else

If celltype(i) = “A” Then

rotation_ang = A_ang

Else If celltype(i) = “B” Then

rotation_ang = B_ang

Else If celltype(i) = “C” Then

rotation_ang = C_ang

Else If celltype(i) = “D” Then

rotation_ang = D_ang

End If

int_line = end_crv

component(int_line, r, rotation_ang, pivot_cell, pivot_pt, start_leg, start_leg_pt, end_leg, end_leg_pt, end_crv)

End If

• Note that “end_crv” in the current iteration is assigned as “int_line” for the next iteration.

COMPONENT PACKING VB + GALAPAGOS - http://woojsung.com 10

COMPONENT PACKING VB + GALAPAGOS - http://woojsung.com 11

STEP03 PACKED

OPTIMUM SOLUTION BY GALAPAGOS

To pack the components as tight as possible, firstly, we need to

define two distance variables. As the sum of two gets smaller,

the components will be packed tighter.

(004 galapagos.ghx)

D1

• We get the first and last lines.

• Then we get start and end points of

them

• Calculate distances, D1, D2.

• Add two values.

• Inverse the value, since Galapagos tries

to find the maximum value.

• Connect angle sliders to Galapagos’ Genome

tab, and connect the inversed distance

value to Fitness tab.

• Double click on Galapagos object and go

to the solver tab and hit start solver button

on top.

• Wait until it finished the calculation.

D2


PARAMETRIC TOOL BASIC CONCEPTS //

DIGITAL SERIES, SYRACUSE ARCHITECTURE 2010


Grasshopper Learning Material

Syracuse Architecture / Apr 10th 2010

by Woojae Sung / woojsung.com

GH Version 0.6.0059

ROTATION AXIS

TYPE ‘REVOLVE’

ENTER

PROFILE CRV

- TYPE ‘REVOLVE’

- HIT ENTER

- PICK PROFILE CRV

- HIT ENTER

- PICK ROTATION AXIS

- HIT ENTER

- TYPE ‘0’ AS START ANGLE

- HIT ENTER

- TYPE ‘360’ AS END ANGLE

ENTER

YOUR APPLE

Chapter01

Grasshopper Introduction

ENTER

PICK PROFILE CRV PICK ROTATION AXIS ‘0’ AS START ANGLE ‘360’ AS END ANGLE YOUR APPLE

ENTER

ENTER

ROTATION AXIS

PROFILE CRV

- TYPE ‘REVOLVE’

- HIT ENTER

- PICK PROFILE CRV

- HIT ENTER

- PICK ROTATION AXIS

- HIT ENTER

- TYPE ‘0’ AS START ANGLE

- HIT ENTER

- TYPE ‘90’ AS END ANGLE

YOUR APPLE

TYPE ‘REVOLVE’

ENTER

PICK PROFILE CRV

ENTER

PICK ROTATION AXIS

ENTER

‘0’ AS START ANGLE

ENTER

‘90’ AS END ANGLE

ENTER

YOUR APPLE

BUILD A TABLE WITH 10000 POINTS ON IT

BUILD APPLES

ARRAY THEM ON THE TABLE

x 1250

10000 POINTS

x 1250

10000 APPLES

x 2500

x 5000

Chapter01 Grasshopper Introduction

Basic Concept

Grasshopper is a graphical algorithm editor. We work on real 2D/3D geometries with Rhino. With Grasshopper, we work on the algorithm

behind those real geometries.

Basic Concept : Apple Making Process

In Rhino

Below is an usual work process to make an apple in Rhino work environment. First we need to draw a profile curve and a rotation axis.

Then, type in ‘Revolve’ then pick the profile and rotation curves with starting and ending angles. In this case, we supply 0 as the starting

angle and 360 as the ending angle to get a whole apple.

PROFILE CRV

- TYPE ‘REVOLVE’

YOUR APPLE

- HIT ENTER

PROFILE CRV

- TYPE ‘REVOLVE’

- PICK PROFILE CRV

YOUR APPLE

- HIT ENTER

PROFILE CRV

TYPE ‘REVOLVE’ - HIT ENTER

YOUR APPLE

- PICK PROFILE HIT ENTER - PICK ROTATION

CRV

AXIS

- HIT ENTER

PICK PROFILE - HIT ENTER CRV

ROTATION AXIS

- PICK ROTATION AXIS

HIT ENTER - TYPE ‘0’ AS START ANGLE

- HIT ENTER

PICK ROTATION - HIT ENTER AXIS

ROTATION AXIS

- TYPE ‘0’ AS START ANGLE

HIT ENTER - TYPE ‘360’ AS END ANGLE

ROTATION AXIS

- HIT ENTER

TYPE ‘0’ AS START ANGLE

- TYPE ‘360’ AS END ANGLE

HIT ENTER

- TYPE ‘360’ AS END ANGLE

ENTER ENTER

ENTER

ENTER ENTER

ENTER

ENTER ENTER

TYPE ‘REVOLVE’ PICK PROFILE CRV PICK ROTATION AXIS ‘0’ AS START ANGLE ‘360’ AS END ANGLE YOUR APPLE

TYPE ‘REVOLVE’ PICK PROFILE CRV PICK ROTATION AXIS ‘0’ AS START ANGLE ‘360’ AS END ANGLE YOUR APPLE

TYPE ‘REVOLVE’ PICK PROFILE CRV PICK ROTATION AXIS ‘0’ AS START ANGLE ‘360’ AS END ANGLE YOUR APPLE

ENTER

ENTER ENTER

ENTER

ENTER ENTER

ENTER

Your boss is not happy with this. He wants to change the mixing ratio of apples. You have two choices; do it again, or find another job.

DO IT AGAIN, OR KILL YOUR BOSS AND GET A NEW JOB

In Grasshopper

In Grasshopper, you don’t work on the real geometries. Rather, you work on the logic behind the geometries. Once the apple making

logic has been set up, you can change parameters such as starting and ending angles. Also you can change the shape of apples by supplying

different profile curves as well as rotation axis. Or you can make multiple apples out of just one definition by supplying multiple

angle values and/or profile/rotation curves to the definition.

ROTATION AXIS

TYPE ‘REVOLVE’

ENTER

PROFILE CRV

PICK PROFILE CRV

INPUTS

ENTER

PICK ROTATION AXIS

ENTER

- TYPE ‘REVOLVE’

- HIT ENTER

- PICK PROFILE CRV

- HIT ENTER

- PICK ROTATION AXIS

- HIT ENTER

- TYPE ‘0’ AS START ANGLE

- HIT ENTER

- TYPE ‘360’ AS END ANGLE

‘0’ AS START ANGLE

ENTER

‘360’ AS END ANGLE

ENTER

YOUR APPLE

YOUR APPLE

What if we want to have only a quarter of an apple? Basically, we need to do the same thing again, but this time, we supply 0 as the starting

angle and 90 as the ending angle.

ROTATION AXIS

ROTATION AXIS

ROTATION AXIS

ENTER ENTER

PROFILE CRV

PROFILE CRV

PROFILE CRV

ENTER

ENTER ENTER

ENTER

- TYPE ‘REVOLVE’

- HIT ENTER

- TYPE ‘REVOLVE’

- PICK PROFILE CRV

- HIT ENTER

TYPE ‘REVOLVE’ - HIT ENTER

- PICK PROFILE HIT ENTER - PICK ROTATION

CRV

AXIS

- HIT ENTER

PICK PROFILE - HIT ENTER CRV

- PICK ROTATION HIT ENTER - TYPE ‘0’

AXIS

AS START ANGLE

- HIT ENTER

PICK ROTATION - HIT ENTER AXIS

- TYPE ‘0’ AS START ANGLE

HIT ENTER - TYPE ‘90’ AS END ANGLE

- HIT ENTER

TYPE ‘0’ AS START ANGLE

- TYPE ‘90’ AS END ANGLE

HIT ENTER

- TYPE ‘90’ AS END ANGLE

TYPE ‘REVOLVE’ PICK PROFILE CRV PICK ROTATION AXIS ‘0’ AS START ANGLE ‘90’ AS END ANGLE

TYPE ‘REVOLVE’ PICK PROFILE CRV PICK ROTATION AXIS ‘0’ AS START ANGLE ‘90’ AS END ANGLE

TYPE ‘REVOLVE’ PICK PROFILE CRV PICK ROTATION AXIS ‘0’ AS START ANGLE ‘90’ AS END ANGLE

ENTER ENTER

ENTER

ENTER ENTER

ENTER

ENTER ENTER

ENTER

YOUR APPLE

YOUR APPLE

YOUR APPLE

YOUR APPLE

YOUR APPLE

YOUR APPLE

OUTPUTS

PARAMETERS

SUPLY MULTIPLE INPUTS

MODIFY INPUTS

Now, your boss wants to have a table on which 5,000 apples, 2,500 three quarter apples, 1,250 two quarter apples, and 1,250 one quarter

apples are distributed randomly. First you should make a table which has 10,000 reference points on it. Then make 4 different types

of apple, copy and move one by one to the reference points. Don’t forget to count apples so as to make your boss happy.

INPUTS

10000 APPLES ARE

UNDER YOUR CONTROL

BUILD A TABLE WITH 10000 POINTS ON IT

BUILD A TABLE WITH 10000 POINTS ON IT

BUILD A TABLE WITH 10000 POINTS ON IT

10000 POINTS

10000 POINTS

10000 POINTS

BUILD APPLES

BUILD APPLES

x 1250

BUILD APPLES

x 1250

x 1250x 1250

x 1250

x 1250x 2500

ARRAY THEM ON THE TABLE

ARRAY THEM ON THE TABLE

ARRAY THEM ON THE TABLE

10000 APPLES

10000 APPLES

10000 APPLES

SUPLY MULTIPLE PARAMS

MODIFY PARAMS

PARAMETERS

OUTPUTS

x 2500

x 2500

x 5000

x 5000

x 5000

GRASSHOPPER LEARNING MATERIAL

CH01.3

DO IT AGAIN, OR KILL YOUR BOSS AND GET A NEW JOB

DO IT AGAIN, OR KILL YOUR BOSS AND GET A NEW JOB

DO IT AGAIN, OR KILL YOUR BOSS AND GET A NEW JOB


Chapter02 Interface / Basic Knowledge

Interface

Grasshopper’s workspace is pretty similar to other windows applications. However, as a history/algorithm editor, it has some unique

features like components/parameters, which eventually will be linked to each other to make a working definition.

Interface : Workspace

Main Menu

File handling, copy/paste, undo/redo, interface/display setting, realtime solution toggle, etc..

Shelves

Chapter02

Interface / Basic Knowledge

Shelves are where all Grasshopper objects are listed by categories. Each shelve has its sub tabs which show limited numbers of items.

To access to all available components/parameters, click on black title bar at the bottom.

Canvas Tool Bar

Short cuts for some frequently used commands such as ‘zoom extend’, ‘realtime solution on/off toggle’, ‘show/hide toggle’, ‘component

on/off toggle’, and ‘bake command button’.

Canvas

Interface : Grasshopper Objects

Grasshopper objects fall into two major categories, components and parameters, which will be covered later on this tutorial. However,

before we move on, it is important to understand how Grasshopper objects are structured.

Structure & Types of Grasshopper Objects

INPUT TAB

INPUT FROM OTHER COMPONENTS

INPUT OPTION

RIGHT CLICK TO CHANGE OPTIONS

BODY

RIGHT CLICK TO CHANGE OPTIONS

OUTPUT OPTION

RIGHT CLICK TO CHANGE OPTIONS

OUTPUT TAB

OUTPUT TO OTHER COMPONENTS

INPUT TAB + INPUT OPTION + BODY + OUTPUT OPTION + OUTPUT TAB

INPUT TAB + BODY + OUTPUT TAB

BODY + OUTPUT OPTION + OUTPUT TAB

INPUT TAB + INPUT OPTION + BODY

Canvas is the main workspace where you work with lots of component/parameter to make an actual definition. To activate a component/parameter,

click the component/parameter icon on a shelve and drop it on canvas by clicking somewhere on canvas. Once you

drop it, you can move, delete, copy or paste as you do in other windows applications. You can also pan/zoom your working canvas with

mouse button as you do in Rhino.

Status Bar

Grasshopper objects usually can be divided into 5 different parts; Input Tab, Input Option, Body, Output Option, Output Tab. However,

depends on object types, some of them have only 3 parts as shown in the figure above.

‘Input Tab’ is where an object get input from the output data of others. If you are not sure what kind of data should be connected to an

input tab, you can check the tool tip by hovering your mouse point on top of the ‘Input Option’ character right next to the input tab. You

can also access to an input option setting window by clicking right mouse button on the character. If you want to change data processing

setting of an object, right click on the ‘Body’. ‘Output Option’ is pretty same with ‘Input Option’, where you can change some output data

setting. ‘Output Tab’ is where output data stored so we can pass it to other Grasshopper objects.

Object Connection

To connect your output data to other Grasshopper objects, click on the white little bubble in ‘Output Tab’ and drag and drop it onto input

tab(s) of other Grasshopper objects as shown in the figure below.

drag mouse point

release

click & hold mouse button

Displays information such as errors, warnings, etc..

If you want to have multiple connection, hold your shift button while you connecting tabs as shown below.

hold down shift button

GRASSHOPPER LEARNING MATERIAL

CH02.3


Object Status

There are couple of different object colors which indicate the status of object.

Basic Knowledge : Data Matching

Data matching is one of key concepts of most parametric tools. Since a Grasshopper object deal with multiple data from different input

sources, we need to have a clear logic on how to match data.

default status without data

preview on

For example, let’s say that we have a Grasshopper object which draws a line out of two input points like below.

object selected

preview off

default status with data

object on

We can also supply multiple points to get multiple lines at the same time as below.

error

object off (do not process data)

Basic Knowledge

There are some background knowledge you should understand before we move on.

What if we have different numbers of points for each input? This may cause problem in drawing lines because the number of input

points are not matching. If we set the data matching option as ‘Shortest list’ in option window, Grasshopper will draw lines based on

short input list.

Basic Knowledge : Coordination Systems

Grasshopper provides couple of different coordination systems, some of which are familiar with Rhino users.

A. XYZ (WORLD)

B. UVW (SURFACE)

Else if we set the data matching option as ‘Longest list’ in option window, Grasshopper will draw lines based on longest input list.

Z

V

W (SURFACE NORMAL)

(0,0,0)

U

X

Y

C. L (CURVE/CURVE ON SURFACE)

D. t (CURVE/CURVE ON SURFACE)

Or we can set the data matching option as ‘Cross reference’ in option window, in case we want to have crazy data matching.

L = 0.0 L = 0.25

t = 0.0 t = 12.5

L = 0.75

L = 1.0

t = 37.5

t = 50

CURVE LENGTH = 1 (UNITIZED)

CURVE LENGTH = 50 (REAL SCALE)

GRASSHOPPER LEARNING MATERIAL

CH02.5

Basic Knowledge : Data Structure (Tree / Branch / List / Item)

Grasshopper provides multi-dimensional data structure, which we call ‘Tree’. ‘Tree’ is composed of multiple ‘Branches’. Branches can

have sub branches. Only the branches at the lowest hierarchy can have ‘List’. A list is a one-dimensional array containing items with

index number.

Let’s say that we have 4 lists, and each of them has 3 items in it. Numbers in round bracket in the figure below is item index number.

(0)

(0)

(0)

(0)

(0)

(0)

(1)

(1)

(1)

(0)

(0)

(0)

(2)

(2)

(2)

(2)

(1)

(2)

(2)

(1)

(2)

(2)

(1)

(1) (1)

(2)

(1) (1)

(1)

(0)

(1)

(0)

(2)

(2)

(2)

(1)

(0)

(1)

(2)

(1)

(0)

( 2)

(1) (2)

(0)

( 2)

{0:2} (1)

(0) {0:1} (0)

(1) (2)

{0:1} {0:2} ( 2)

(0)

(2)

(0)

{0:1} {0:2}

(1) (2)

{0:3} (0)

{0:0}

(1)

{0:3}

(1)

(2)

(0)

{0:0}

(1)

(2)

(0)

(2)

(0)

{0:3}

(1) {0:0} {0}

(1)

(2)

(0)

{0}

(0)

{0}

Branch is represented as form of numbers separated by semicolons in braces. Numbers in braces represent hierarchy, which means

a branch can have any numbers of sub branches. The 4 lists from the diagram above can be mapped onto 4 branches as shown in the

(1)

figure below like {0;0}, {0;1}, {0;2}, {0;3}. And these branches can be merged as another branch which (0) is represented as {0}.

(1)

(2)

(1)

(0)

( 2)

(1) (2)

(0)

( 2)

{0:2} (1)

{0:3}

(0) {0:1} (0)

(1) (2)

{0:3}

{0:1} {0:2} ( 2)

{0:2}

(0)

(2)

(0)

{0:2}

{0:2}

{0:3}

{0:1}

{0:1}

(1) (2)

{0:3} (0)

{0:0}

(1)

{0:3}

{0:2} {0:1}

(1)

(2)

(0)

{0:0}

(1)

(2)

(0)

(2)

(0)

{0:0}

{0:3}

{0:1}

(1) {0:0} {0}

(1)

{0:0}

(2)

(0)

{0}

{0:0}

{0}

{0}

{0}

{0}

(1)

(0)

(1)

(2)

(1)

(0)

( 2)

(1) (2)

(0)

( 2)

{0:2} (1)

(0) {0:1} (0)

(1) (2)

{0:1} {0:2} ( 2)

(0)

(2)

(0)

{0:1} {0:2}

(1) (2)

{0:3} (0)

{0:0}

(1)

{0:3}

(1)

(2)

(0)

{0:0}

(1)

(2)

(0)

(2)

(0)

{0:3}

(1) {0:0} {0}

(1)

(2)

(0)

{0}

Chapter03

Parameters / Components

{0}

Below is complete map of data tree structure with one main branch, 4 sub branches, 4 lists, and 12 items.

{0:3}(2)

{0:3}(2)

{0:2}(2)

{0:3}(1)

{0:2}(2)

{0:3}(1) {0:2}(1)

{0:3}(2)

{0:1}(2)

{0:2}(1)

{0:2}(2)

{0:1}(2)

{0:3}(0)

{0:3}(1)

{0:1}(1)

{0:0}(2)

{0:3}(0)

{0:2}(1) {0:1}(1)

{0:1}(2) {0:0}(2)

{0:2}(0)

{0:3}(0) {0:2}(0)

{0:1}(1) {0:0}(1)

{0:0}(2)

{0:1}(0)

{0:0}(1)

{0:2}(0) {0:1}(0)

{0:0}(0)

{0:0}(1)

{0:1}(0)

{0:0}(0)

{0:0}(0)

(1)

(0)

(1)

(2)

(1)

(0)

( 2)

(1) (2)

(0)

( 2)

{0:2} (1)

(0) {0:1} (0)

(1) (2)

{0:1} {0:2} ( 2)

(0)

(2)

(0)

{0:1} {0:2}

(1) (2)

{0:3} (0)

{0:0}

(1)

{0:3}

(1)

(2)

(0)

{0:0}

(1)

(2)

(0)

(2)

(0)

{0:3}

(1) {0:0} {0}

(1)

(2)

(0)

{0}

{0}

GRASSHOPPER LEARNING MATERIAL

CH02.7


(2)

(1)

(0)

(1) (2)

(0)

(1)

(0)

( 2)

(0)

(1)

(2)

2nd ITEM INDEX = 1

(2)

(1)

(0)

(1) (2)

(0)

(1)

(0)

( 2)

(0)

(1)

(2)

Chapter03 Parameters / Components

Create new data from scratch

Parameters

There are two major object types in Grasshopper; parameters and components.

Parameters usually store data, while components do some action such as creating

curves, surfaces, etc. For example, we need at least two curves to make a loft surface.

Those curves are stored as form of parameter in Grasshopper, so we can do loft action

out of the curves.

Parameters : Geometry / Primitive

PARAMETER

COMPONENT

Some parameters are not able to get data from Rhino object. For example, circle parameter does not provide connection with Rhino

circle. Instead, it has a built-in option to draw a circle directly by providing radius and center point. The circle by the parameter is

completely independent from any Rhino object. To make a circle using circle parameter, right click on it, select ‘set a circle’ from the

popup, then draw a circle in Rhino view port.

Parameters : Special

Grasshopper provides three different ways of assigning data to parameters; referencing

Rhino data, referencing Grasshopper data, and creating new data from scratch.

Reference Rhino data

Note : For more information about each

parameter / component, right click and

refer to help file.

Special parameters are more about controlling, manipulating and representing data, rather than pure parameters. Four major roles;

getting new input data, representing data, referencing data, and converting/modifying data.

Get user input

They are useful to get user input such as custom color, numeric number or boolean value.

RHINO CURVE

Represent data

Represent data in graphical fashion. For example, Bar Graph parameter visualizes numeric input data using bar chart. Parameter

Viewer parameter shows data tree structure in the form of simple table.

PARAMETER

COMPONENT

Convert / Modify data

Some parameters can work like bridges between Rhino and Grasshopper data. It is

useful in getting inputs from rhino data. For example, to make a loft surface in

Grasshopper, the first thing that we should do is to get curves from Rhino. To assign a

Rhino curve to Grasshopper’s one, right click on curve parameter on Grasshopper

canvas, select ‘set one curve’ from the popup menu, then select a curve from Rhino

viewport. Now since they are connected to each other, when we move the curve in

Rhino view port, we can see the Grasshopper curve follows it.

Generate different type of data from user input. For example, Image Sampler parameter produces series of numeric data out of an

input image file, by picking up RGB values of corresponding coordinates.

Reference data

Most of special parameters also can reference Grasshopper data.

Reference Grasshopper data

GRASSHOPPER CURVE

PARAMETER

COMPONENT

Most of parameter also can reference Grasshopper data itself. It is pretty much like an

internal bridge between data in Grasshopper.

GRASSHOPPER LEARNING MATERIAL

CH03.3

Components

Unlike parameters, components usually do something with input data from parameters or from other components. There are two

major actions that components do; data manipulation and geometry creation. For example, some components calculate numeric data

operations such as addition, subtraction, multiplication, or division. While some other components do some physical works like creating

points, curves or surfaces.

(1) (2)

(0)

{0:1}

(2)

(1) {0:0}

(1)

(0)

( 2)

{0:2}

{0:3}

(0)

(1)

(1) (2)

(0)

{0:1}

(2)

(1) {0:0}

(1)

(0)

( 2)

{0:2}

{0:3}

(0)

(1)

(0)

(2)

(0)

(2)

{0}

{0}

Components : Logic

2nd BRANCH = {0:1}

Components : Scalar

Logic components are pretty much about data manipulation rather than physical works. They fall into four different categories; List/

Sets, Tree, Script, and Boolean. List and Sets components manipulate list data. List data exist in the form of one dimensional array with

item index numbers (refer to data tree section). Tree components control data tree itself rather than individual data item in the list (also

refer to data tree section). Script components let users to make customized functions as well as components with VB.net / C# language.

Boolean components provide stream control like gate and filters.

List data handling (List / Sets)

Scalar components calculate scalar operations such as addition, subtraction, multiplication, and division. Also some of them provide

built-in functions like Log, Sine, Max, etc. We can also find some useful constants such as Pi in this shelf. However, the most important

ones here is Interval (Domain in the later version of GH).

Interval (Domain)

List / Sets components deal with list data, one dimensional array of individual items. Every item in the list data has its own item index

number starting from 0. For example, let say that we have 4 lists consisting of 3 items. We can retrieve every 2nd items from those lists

by ‘List Item’ component. We can also cull every 3rd items from those lists by ‘Cull Nth’ component.

{0:0}

{0:1}

{0:2}

{0:3}

{0:0}

{0:1}

{0:2}

{0:3}

Interval or domain is usually numeric data which has a starting and ending value. In Grasshopper, all objects with coordinate systems

can be seen as domain or interval. For now, Grasshopper provides up to two dimensional domain. Curves could be treated as one

dimensional objects which have t or L parameters (refer to the coordinate system section). Also, surfaces could be though of as two

dimensional domain with U and V value (also refer to the coordinate system section).

For example, a surface can be subdivided into several pieces by domains. Assume that the dimension of a surface is 10 in U direction

and 8 in V direction. Grasshopper recognizes the surface as two dimensional domain; U:0~10 / V:0~8. If we split each domain into two

sub domains like U:0~5,5~10 and V:0~4,4~8, we can subdivide the surface into 4 patches.

{0}

{0}

U DOMAIN : 0 ~ 10

U DOMAIN : 0 ~ 10

0 ~ 5 5 ~ 10

Tree structure handling (Tree)

0 ~ 4 4 ~ 8

V DOMAIN : 0 ~ 8

V DOMAIN : 0 ~ 8

Most of tree components deal with tree structure itself. In the previous example, if we want to retrieve 2nd branch, we can do that with

‘Tree Branch’ component.

GRASSHOPPER LEARNING MATERIAL

CH03.5


Components : Vector

Util

Vector components create and control vectors, points and planes. This might sound weird because a point does not have direction or

magnitude which vectors have in common. However, Grasshopper recognize a point as a vector, precisely as an ending point of a vector.

A plane is a vector because it defines origine and three unit vectors (x,y,z) enabling us to use a plane as a sub coordinate system.

Utility components do some special operations on curves. For example, we can invert the direction of a curve by ‘Flip Curve’ component.

Z

Z

Components : Surface

SUB COORDINATE SYSTEM

@ (4,2,3)

Z’

X’

POINT (4,2,3)

Y’

X

Y

X

Y

Surface components also fall into three categories; Freeform/Primitive, Analysis, and Util. Freeform/Primitive components create

different types of surfaces out of input data such as points, curves, etc.. Analysis components get points or curves out of surfaces. Util

components modify the property of surfaces.

Components : Curve

Freeform / Primitive

Curve components fall into three categories; Primitive/Spline, Analysis/Division, and Util. Primitive/Spline components create different

types of curve out of input data. Analysis/Division components get points or planes out of curves. Util components modify the property

of curves.

Primitive / Spline

Freeform/Primitive components create surfaces based on user input. For example, with ‘Loft’ component, we can define a surface

between multiple curves from Rhino.

Analysis

Primitive/spline components create curves based on user input. For example, with ‘Curve’ component, we can define a curve out of 4

input points from Rhino.

Analysis / Division

Analysis components produce points or curves as the product of surface analysis processes. For example, by supplying an UV coordination

of a point on a surface, we can get the normal vector of the surface on that point.

Util

Analysis/Division components produce points or planes as the product of curve analysis/division processes. For example, by supplying

a number and an input curve, we can get equidistant points along with the curve.

Utility components do some special operations on surfaces. For example, we can invert the direction of a surface by ‘Flip’ component.

GRASSHOPPER LEARNING MATERIAL

CH03.7

Components : Intersect

Components : Xform

Intersect components fall into three categories; Boolean, Mathematical/Physical, and Region. Boolean components do boolean operations

between closed planar curves as well as Breps. Mathematical/Physical components get points or curves between geometries

where they intersect with each other. Region components do trim or split curves with any given geometries.

Xform components fall into two categories; Affine/Euclidian and Morph. These components either transform or deform any given

geometries. Affine/Euclidian do basic transform/deform actions such as scaling, rotating or moving geometries. Morph literally deform

geometries.

Boolean

Affine / Euclidian

Boolean components are pretty much same as the compound path commands of Adobe Illustrator such as union, intersection and

subtraction (difference). They works with only closed planar curves or closed Breps.

Besides the difference between Affine and Euclidian transform, they are basic transforming tools available in Grasshopper. They usually

need reference points or vector for their 3D operations.

Mathematical / Physical

Morph

Mathematical and Physical components are basically same in that they get intersecting geometries such as curves or points. However,

Physical calculate the intersection based on purely physical characteristics, while Mathematical do it based on the mathematical definition

of the geometries. For example, there are a line and a cylinder, and they meet at a point. Physically speaking, they meet at point A.

However, mathematically, they intersect at two points. This is because the line is an infinite with a specific inclination when mathematically

defined.

Morph is one of the most powerful transformation/deformation tools in Grasshopper. For example, we can morph a pre-defined component

into a twisted box on/in between surface(s). If you are familiar with the concept of Rhino Paneling Tools, you will see most of

Morph components are pretty much about it.

Physically Defined Line

without Imaginary Line

Mathematically Defined Line

with Imaginary Line

PHYSICAL INTERSECTION

MATHEMATICAL INTERSECTION

Region

Region components split/trim curves with closed Breps or curves.

GRASSHOPPER LEARNING MATERIAL

CH03.9


PARAMETRIC DESIGN //

SPEECH AT UIA SEOUL 2017

@ SELECTIVE AMPLIFICATION / 2017 / SEOUL / KOREA


PARAMETRIC DESIGN //

SPEECH AT UIA SEOUL 2017

I would like to bring up the idea of bottom up design process in a context of parametric design. This molecular approach, as opposed to

more traditional, top down design process, changed the way how we design certain things. The traditional design process where we set up

holistic framework and gradually run down to specific parts still maintains good hold on most of design processes, but the new approach

enables us to do something entirely new by doing things exactly in an opposite way.


SKETCHES //

ARCHITECTURAL IDEAS

@ SELECTIVE AMPLIFICATION / 2006 - 2018


Selective-Amplification is an architectural design studio

heavily utilizing parametric design approaches and

technologies, based in New York / Seoul. We believe

architecture and design want be unique experiences that

selectively amplify certain factors of our lives to make

them more beautiful and enjoyable.

More magazines by this user
Similar magazines