72
frikearq grasshopper manual básico de aplicado al diseño de Arquitectura .com edición Abril 2010 para Grasshopper versión 0.6.0057

Grasshopper by Guillermo Ramirez+Miguel Vidal

Embed Size (px)

DESCRIPTION

Grasshopper aplicado al diseño de Arquitectura

Citation preview

Page 1: Grasshopper by Guillermo Ramirez+Miguel Vidal

frikearq

grasshoppermanual básico de

aplicado al diseño de Arquitectura

.com

edición Abril 2010para Grasshopper versión 0.6.0057

Page 2: Grasshopper by Guillermo Ramirez+Miguel Vidal

0

1

2

3

4

Qué es y cómo funciona Grasshopper

Componentes lógicos. Programación visual

Componentes geométricos

Diseño paramétricoComponentes escalares. Las matemáticas de Grasshopper

- ¿Qué es Grasshopper?- Interfaz gráfica- Objetos. Tipos y modos de visualización- Datos. Tipos. Modos de entrada. Listas

- Operadores comparativos, booleanos y condi-cionales- Gestión de listas

- Constantes- Operadores escalares- Operadores trigonométricos- Funciones- Intervalos, rangos y series

- Vectores- Puntos. Nubes de puntos- Curvas. Rejillas- Superficies. Panelización

- Transformaciones- Intersecciones- Morphing - Sistemas paramétricos

índice

AAnexo: enlaces web

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 3: Grasshopper by Guillermo Ramirez+Miguel Vidal

00.0 ¿Qué es Grasshopper?

Qué es y cómo funciona Grasshopper

- plugin programa que corre “dentro” de otro programa. En este caso, Grasshopper toma instancias de clases de objetos de Rhino y lo utiliza como entorno de visualización

- fase de desarrollo en fase de pruebas: aparecen nuevas versiones continuamente, el código no está completamente depurado, puede haber errores, comandos que no funciones, el programa se puede colgar con facili-dad, no hay traducciones

- intérprete “continuo” los eventos de Grasshopper se actualizan continuamente, refrescando su visu-alización en Rhino, a no ser que los detengamos

- programación visual Grasshopper emplea el paradigma de la programaci’on visual, “conectando caji-tas”; es similar a de escribir código en cualquier lenguaje de programación, pero no es necesario tener conocimientos de ningún lenguaje, pero sí entender cómo se gestionan los datos y las acciones

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 4: Grasshopper by Guillermo Ramirez+Miguel Vidal

0.1 Interfazgráfica

MENÚ PRINCIPAL

PANEL DE COMPONENTES

BARRA DE HERRAMIENTAS

LIENZO

(con doble click, búsqueda de comandos)

BARRA DE ESTADO

NAVEGADOR

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 5: Grasshopper by Guillermo Ramirez+Miguel Vidal

0.2 Objetos. Tipos y modos de visualización

entrada de datos (si es necesaria)

entrada de datos

salida de datos

salida de datos

TIPOS DE OBJETOS

almacena datos

fabrica y gestiona

datos

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 6: Grasshopper by Guillermo Ramirez+Miguel Vidal

MODOS DE VISUALIZACIÓN

ALGUNOS OBJETOS “ESPECIALES” QUE MÁS VAMOS A EMPLEAR

* Panel

* Receiver * Slider

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 7: Grasshopper by Guillermo Ramirez+Miguel Vidal

0.3 Estructura de datos: listas. Modos de entrada de datos

ESTRUCTURA DE DATOS

- persistente denota información que es poco probable que sea modificada y siempre preserva su versión an-terior cuando ha sido modificado. P. ej. cualquier dato que almacenemos en los parámetros

- no persistente (volátil) es una estructura de datos dinámica, es decir, que es susceptible de ser modificada mientras el usuario está accediendo a su sesión archivo. P. ej. un slider

(está relacionado con el modo de almacenar datos en memoria por parte del programa. se trata de una noción a tener en cuenta cuando estamos trabajando para evitar fallos, “cuelgues” del programa, más probables en tanto en cuanto estamos utilizando un software en fase de desarrollo)

LISTAS

Todos los datos, tanto persistentes como volátiles, están implementados en Grasshopper en formato de listas. Una lista es una estructura en la que los datos están almacenados con las siguientes características:

- sucesión de datos (se colocan “uno detrás de otro”)

- el orden es relevante ({A, B, C} no es igual que {C, B, A})

- la longitud está determinada (“list length”)

- se accede a los datos refiriendose al índice dentro de la sucesión

- el primer objeto tiene el índice cero

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 8: Grasshopper by Guillermo Ramirez+Miguel Vidal

MODOS DE ENTRADA DE DATOS

- como input (cable)

- menús contextuales (click con el botón derecho) - set values - manage data collection - expression

- conexión con objetos existentes en el archivo de Rhino

CORRESPONDENCIA DE DATOS ENTRE LISTAS DE OBJETOS

shortest list toma como referencia la lista con el índice menor

A B

3 modos de correspondencia de datos

longest list toma como referencia la lista con el índice mayor

cross reference une todos los elementos con todos

0 dato0 dato0

dato1 dato1dato2 dato2dato3 dato3

dato4dato5

123

índice índice012345

????

0123

012345

0

0

1

1

2

2

3

3

0

0

1

1

2

2

3

3

4

4

5

5

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 9: Grasshopper by Guillermo Ramirez+Miguel Vidal

1Componentes escalares. Las matemáticas de Grasshopper

1 el texto que se muestra entre corchetes y con la tipografía como “[pi]”es para expresar lo que se debe introducir para hacer la búsque-da en la ventana encabezada con “Enter a serch keyword ... ”, que aparece en el lienzo al hacer doble click con el botón izquierdo.

1.1 Constantes

- Π [pi]1 - е [natural logarithm] - φ [phi] - ε [epsilon]

1.2 Operadores escalares

- suma [addition] - resta [subtraction]

- multiplicación [multiplication] - division [division]

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 10: Grasshopper by Guillermo Ramirez+Miguel Vidal

1.3 Operadores trigonométricos

1.3 Funciones

- potencia [power] - 10x [power] - 2x [power] - еx [power]

- seno [sine]

- arco seno [arcsine]

- coseno [cosine]

- arco coseno [arccosine]

- tangente [tangent]

- arco tangente [arctan-gent]

2 las unidades de los ángulos en Grasshopper son radianes (Π rad ≡ 180º)

- factorial [factorial] - logaritmo neperiano [natural logarithm]

- logaritmo base 10 [logarithm]

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 11: Grasshopper by Guillermo Ramirez+Miguel Vidal

(funciones “personalizadas”)

- módulo [modulus]- logaritmo base N [natural logarithm]

- funciones de una, dos, tres y n variables [function]

También podemos introducir la expresión de la función haciendo doble click en el centro del parámetro

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 12: Grasshopper by Guillermo Ramirez+Miguel Vidal

1.4 Intervalos, rangos, series

Estructura paramétrica _ malla de pilares con intervalos

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 13: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 14: Grasshopper by Guillermo Ramirez+Miguel Vidal

Estructura paramétrica _ malla de pilares con series

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 15: Grasshopper by Guillermo Ramirez+Miguel Vidal

2Componentes lógicos. Programación visual

2.1 Sentencias condicionales. Operadores comparativos y booleanos.

En Grasshopper tenemos una serie de componentes de funciones comparativas precargadas, que comparan dos listas de datos y nos devuelve una lista de valores booleanos. Booleano es un tipo de dato lógico que puede repre-sentar el valor binario verdadero o falso. Las funciones comparativas de nuestra versión de Grasshopper son:

Sin embargo, podemos hacer lo mismo que lo anterior mediante un componente función.

- mayor [larger] - menor [smaller] - igualdad [equality] - similitud [similarity]

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 16: Grasshopper by Guillermo Ramirez+Miguel Vidal

Existen, también, unos operadores booleanos que combinan listas de valores booleanos con operaciones lógicas :

La estructura que vamos a seguir para ejecutar una orden condicional es la siguiente:

listas de datos que queremos evaluar

resultado de la

evaluación

(lista de valores booleanos)

filtrado de los datos iniciales a través del resultado

evaluación de los datos

(generalmente comparación)

- unión [and] - intersección [or] - complemento [not]

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 17: Grasshopper by Guillermo Ramirez+Miguel Vidal

Estructura paramétrica _ malla de pilares con condicionales

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 18: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 19: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 20: Grasshopper by Guillermo Ramirez+Miguel Vidal

2.2 Gestión de listas. Operaciones sobre listas

índice

índice dato

0 1 2 3 4 5 6 7 8 91er ÍTEM

longitudúltimo ÍTEM

dato dato datodato dato datodato dato dato dato

- list item

- list length

Este componente sirve para extraer ítemes concretos de listas. Tiene tres entradas: L para la(s) lista(s) de la(s) que queremos extraer el item, I para el índice que queremos obtener y W (wrap).

Este componente nos da la cantidad de ítemes de una lista y tiene tan sólo una entrada: L para la(s) lista(s) de la(s) que queremos extraer la longitud.

- sub list

Sub list extrae los ítemes de una lista dentro de un(os) intervalo(s). L es la entrada para la(s) lista(s) e I para el dominio. Las salidas son L para la lista re-sultado e I para los índices.

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 21: Grasshopper by Guillermo Ramirez+Miguel Vidal

- shift list

- sort list

Desplaza el orden de los ítemes de la lista las posi-ciones que indiquemos. Tiene tres entradas: L para la(s) lista(s), S para la cantidad de posiciones y W si queremos dar la vuelta a la lista.

Sort list ordena listas. Las entradas y salidas K orde-nan la lista de menor a mayor y A ordena otra lista con el mismo patrón con los que se ha ordenado K.

- reverse list

Este componente modifica el orden de una lista, colocándo los ítemes en el orden inverso de la lista. Tiene tan sólo una entrada: L para la(s) lista(s) que queremos invertir.

- split list

Split list divide una lista en dos a partir de un índice. Tiene dos entradas: L para la(s) lista(s) e i para el ín-dice desde el que dividir la lista. Las salidas son A y B, las dos listas resultado.

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 22: Grasshopper by Guillermo Ramirez+Miguel Vidal

Cubierta para la malla de pilares

Para practicar estas nociones, haremos una cubierta para la malla de pilares que hemos hecho anteriormente. Se trata de un ejercicio poco práctico, ya que seguramente no haríamos una cubierta de este modo, pero no servirá para practicar con los con-ceptos de list item y list length.

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 23: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 24: Grasshopper by Guillermo Ramirez+Miguel Vidal

Triangulación I _ malla de pilares

- cull nth [cull nth] - cull pattern [cull pattern]Elimina ítemes según una frecuencia, es decir, cada n ítemes. Tiene 2 entra-das: L para la(s) lista(s), N para la frecuencia.

El modo en que vamos a triangular nuestra estructura es uniendo con una recta la lista de los puntos de base con el siguiente de los puntos

de coronación. Para ello emplearemos el componente “shift list. Vamos a introducir el componente “cull”, que elimina ítemes de listas.

Elimina ítemes según un patrón de valores booleanos. Tiene 2 entra-das: L para la(s) lista(s), N para la frecuencia.

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 25: Grasshopper by Guillermo Ramirez+Miguel Vidal

Los archivos de Grasshopper están estructurados con formato “ramificado”, como si fuera un árbol. A medida que se van añadiendo instrucciones, esta estructura crece y se va tomando diferentes rutas (paths).

Los archivos parten de una ruta principal, la lista origen y van generándose listas de listas cuando se añaden órdenes. De este modo, las rutas se van añdiendo unas a otras y, de este modo, se puede volver hacia atrás y ac-ceder a todos los datos que estamos manejando.

ESTRUCTURA DE ÁRBOL DE LOS ARCHIVOS DE GRASSHOPPER

Fuente: Grasshopper Primer for version 0.6.0007

rama

rama

rama

rama

rama

índice dato

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 26: Grasshopper by Guillermo Ramirez+Miguel Vidal

Visualización de árboles de Grasshoper

Para visuali-zar la estruc-tura de una lista, utiliza-mos el com-ponente pa-ram viewer. Podemos es-coger entre una vista tex-tual, por de-fecto, y una vista gráfica, “draw tree” (abajo).

Paths nú-mero de ra-mas que hay.

{ 0 ; 0 ; 0 } ruta de la rama.

N número de ítemes en cada rama. representación

de esta lista

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 27: Grasshopper by Guillermo Ramirez+Miguel Vidal

- tree branch

- tree item

Con este componente extraemos ramas de una estructura de ár-bol. Tiene dos entradas: T para la(s) estructura(s) de árbol de la que queremos extraer una rama, P para el ruta de la rama que queremos obtener. Las ru-tas de las ramas son cadenas de caracteres.

Con este componente ex-traemos ítemes dentro de ra-mas de una estructura de árbol. Tiene cuatro entradas: T para la(s) estructura(s) de árbol de la que queremos extraer una rama, P para el ruta de la rama que queremos obtener, i para el índice del item y W para wrap. Los índices de listas son enter-os.

Se pueden realizar las mismas operaciones que con listas, pero con distintos componentes y, sobre todo, diferente sintaxis.

Operaciones sobre estructura de árboles

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 28: Grasshopper by Guillermo Ramirez+Miguel Vidal

- flatten tree

- graft tree

“Flatten tree” convierte una estructura de diversas ramas en otra de una sola rama. Es decir hace de una lista de sublistas una lista única. En D insertamos la estructura y con P decidimos la ruta en la que colocamos esa lista.

Con “graft tree” hacemos la op-eración contraria: convertimos en una rama cada item de la lista original.

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 29: Grasshopper by Guillermo Ramirez+Miguel Vidal

- explode tree

- merge/merge03/merge multiple

Extrae las ramas de una estruc-tura de árbol una por una. Se añaden salidas haciendo click con el botón derecho en “out-put manage”.

Merge combina las listas de estructuras de árbol, teniendo en cuenta las rutas de dichas estructuras de árbol, dando lugar a una lista de listas con las rutas correspondientes.

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 30: Grasshopper by Guillermo Ramirez+Miguel Vidal

Estructura paramétrica _ triangulación II _ “gusano paramétrico”

+

(con shift presionado)

Formatear números como cadena de caracteres: acceso a ramas

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 31: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 32: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 33: Grasshopper by Guillermo Ramirez+Miguel Vidal

3Componentes geométricos

3.1 Vectores

Vector solar I

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 34: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 35: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 36: Grasshopper by Guillermo Ramirez+Miguel Vidal

3.2 Puntos

Vector solar II

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 37: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 38: Grasshopper by Guillermo Ramirez+Miguel Vidal

3.3 Curvas

Curva por puntos tangentes a otra curva

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 39: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 40: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 41: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 42: Grasshopper by Guillermo Ramirez+Miguel Vidal

Fuente: escofet.com

3.4 Superficies

Superficie por puntos

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 43: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 44: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 45: Grasshopper by Guillermo Ramirez+Miguel Vidal

Panelización de superficies

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 46: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 47: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 48: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 49: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 50: Grasshopper by Guillermo Ramirez+Miguel Vidal

4Diseño paramétrico de Arquitectura

Parametrización de estructuras

A modo de repaso de lo visto hasta ahora, vamos a parametrizar una estructura sencilla: el Monumento a los judíos asesinados, en Berlín, del arquitecto Peter Eisenman, en colaboración con Büro Happold.

Fuente: Wikipedia

“El Monumento a los judíos de Europa asesinados (en alemán, Denkmal für die ermordeten Juden Europas), también conocido como Holocaust-Mahnmal o Monumento del holocausto, es un monumento que recuerda en Berlín a los judíos víctimas del holocausto.Fue diseñado por el arquitecto Peter Eisenman y por el ingeniero Buro Hap-pold. Se trata de un campo inclinado de 19000 metros cuadrados cubierto por una rejilla cuadriculada en la que están situadas 2711 estelas o losas de hormigón. Estas losas tienen unas dimensiones de 2.38m de largo y 0.95m de ancho, y varían en cuanto a su altura, desde los 0.2 m a los 4.8m. (...)”

Fuente: es.wikipedia.org

NOTA: las medidas y número de losas originales dan lugar a un archivo muy pesado, así que emplearemos una superficie de 1900 m2 y 271 lo-sas.

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 51: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 52: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 53: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 54: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 55: Grasshopper by Guillermo Ramirez+Miguel Vidal

Sendai

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 56: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 57: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 58: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 59: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 60: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 61: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 62: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 63: Grasshopper by Guillermo Ramirez+Miguel Vidal

Lucernarios paramétricos I

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 64: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 65: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 66: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 67: Grasshopper by Guillermo Ramirez+Miguel Vidal

Lucernarios paramétricos II

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 68: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 69: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 70: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 71: Grasshopper by Guillermo Ramirez+Miguel Vidal

AAnexo: enlaces web

http://www.grasshopper3d.com/

http://en.wiki.mcneel.com/default.aspx/McNeel/ExplicitHistoryExamples.html

http://dimitrie.wordpress.com/

http://dritsas.net/doku.php

http://www.theverymany.net/

http://spacesymmetrystructure.wordpress.com/

http://rethinkarchitecture.blogspot.com/

http://www.livearchitecture.net/

http://www.giuliopiacentino.com/

http://tedngai.net/experiments.html

http://www.michael-hansmeyer.com/

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

Page 72: Grasshopper by Guillermo Ramirez+Miguel Vidal

grasshopperfrikearq .com manual básico deaplicado al diseño paramétrico

grasshopper