18
introducción al diseño generativo con grasshopper miguel vidal calvet guillermo ramírez camarero www.frikearq.com

introducción al diseño generativo con grasshopper

Embed Size (px)

DESCRIPTION

manual de iniciación al diseño generativo y parametrizacion en Arquitectura

Citation preview

Page 1: introducción al diseño generativo con grasshopper

introducción al diseño generativo

con grasshoppermiguel vidal calvet

guillermo ramírez camarerowww.frikearq.com

Page 2: introducción al diseño generativo con grasshopper

diseño generativo

Page 3: introducción al diseño generativo con grasshopper

Christopher Wren, 51 iglesias a partir del plan de reconstrucción de Londres.

Page 4: introducción al diseño generativo con grasshopper

procesos

Page 5: introducción al diseño generativo con grasshopper

Guillermo Ramírez CamareroMiguel Vidal Calvet

www.frikearq.com

iniciación aldiseño generativo con Grasshopper

idea modelo matemático

implementación(código fuente)

(leyes de relación entre objetos)

Page 6: introducción al diseño generativo con grasshopper

Guillermo Ramírez CamareroMiguel Vidal Calvet

www.frikearq.com

iniciación aldiseño generativo con Grasshopper

idea modelo matemático

implementación

resultados

información

(código fuente)(leyes de relación

entre objetos)

Page 7: introducción al diseño generativo con grasshopper

Guillermo Ramírez CamareroMiguel Vidal Calvet

www.frikearq.com

iniciación aldiseño generativo con Grasshopper

2 paradigmas

- diseño paramétrico

- diseño discriminativo

Page 8: introducción al diseño generativo con grasshopper

Guillermo Ramírez CamareroMiguel Vidal Calvet

www.frikearq.com

iniciación aldiseño generativo con Grasshopper

algoritmo

resultados

datos datos

proceso de diseño paramétrico

Page 9: introducción al diseño generativo con grasshopper

Guillermo Ramírez CamareroMiguel Vidal Calvet

www.frikearq.com

iniciación aldiseño generativo con Grasshopper

algoritmo

algoritmo de selección

resultados

resultados

datos datos

evaluaciónsí

no

proceso de diseño discriminativo

Page 10: introducción al diseño generativo con grasshopper

aplicaciones prácticas

Page 11: introducción al diseño generativo con grasshopper

Guillermo Ramírez CamareroMiguel Vidal Calvet

www.frikearq.com

iniciación aldiseño generativo con Grasshopper

diseño del proceso y no de un resultado concreto.

posibilidad de gestionar complejidad de datos.

generación de soluciones adaptadas a condiciones de contorno.

01

02

03

Page 12: introducción al diseño generativo con grasshopper

grasshopper

Page 13: introducción al diseño generativo con grasshopper

Guillermo Ramírez CamareroMiguel Vidal Calvet

www.frikearq.com

iniciación aldiseño generativo con Grasshopper

entorno de programación visual.

esquema de flujo de datos antes de empezar.

intérprete.

sacar paneles informativos.

hacer comentarios de lo que se vaya haciendo.

personalizar nombres de componentes y poder hacer búsquedas.

plug-in para Rhinoceros.

higiene visual.

01

01

02

02

03

030405

¿qué es Grasshopper?

algunas recomendaciones en el uso de Grasshopper

Page 14: introducción al diseño generativo con grasshopper

Guillermo Ramírez CamareroMiguel Vidal Calvet

www.frikearq.com

iniciación aldiseño generativo con Grasshopper

El objetivo de este ejercicio es introducirse en el uso de Grasshopper como herramienta de diseño generativo, pasando por las utilidades fundamentales del programa. Utilizaremos colecciones y funciones numéricas para dibujar una superficie que, a continuación, panelizaremos. Y, una vez panelizada, la analizaremos con un vector solar básico para poder optimizarla.

ejercicio práctico00. objetivo del ejercicio

Page 15: introducción al diseño generativo con grasshopper

Guillermo Ramírez CamareroMiguel Vidal Calvet

www.frikearq.com

iniciación aldiseño generativo con Grasshopper

01. trabajar con colecciones numéricas

A. Dibujar una matriz de puntos con dominios y un rangos.B. Afectar las coordenadas Z de esa matriz de puntos por una función.C. Dibujar la superficie a partir de esos puntos.

A. Dibujar una matriz de puntos con dominios y rangos.

Un dominio es un tramo continuo de la recta real, es decir, representa la colec-ción de todos los números entre esos dos valores. Dominio (domain) es un com-ponente cuya entrada son dos valores reales A y B y cuya salida es un intervalo continuo de la recta real y se escribe “A To B”.

Rango (range) se utiliza para generar valores diescretos a partir de un dominio continuo. Es un componente cuyas entradas son un dominio y un valor N, y cuya salida son valores numéricos. Es decir, toma un dominio continuo D y lo divide N veces, generando una colección de N+1 valores discretos.

A

N divisiones

N+1 valoresc d e B

A B

Conectamos la salida del rango a las entradas X e Y de PointXYZ y dibujará una hilera de puntos que tienen la coordenada X igual a la Y, puesto que las dos listas de números provienen del mismo rango:

(1,1) (2,2) (3,3) (4,4) (5,5) ....

Ahora, si nuestra intención es hacer una matriz de puntos, debemos cruzar estas coordenadas. Para ello, hacemos clic con el botón derecho en la parte central del componente Point, y seleccionamos Cross Reference. Esto quiere decir que a cada coordenada X (1, 3, 5, 7..) Grasshopper le va a hacer corre-sponder todas las coordenadas Y (1, 3, 5, 7..) produciendo una lista de pares de coordenadas de la siguiente manera:(1,1) (1,2) (1,3) (1,4) (1,5) ...

(2,1) (2,2) (2,3) (2,4) (2,5) ...

Page 16: introducción al diseño generativo con grasshopper

Guillermo Ramírez CamareroMiguel Vidal Calvet

www.frikearq.com

iniciación aldiseño generativo con Grasshopper

B. Afectar las coordenadas Z de la matriz de puntos por una funcón.

C. Dibujar la superficie a partir de esos puntos

Descomponemos los puntos de la malla cuadrada base con Decompose Point y los “recomponemos” en otro punto XYZ (esta vez sin cross reference activo), tomando las coordenadas X e Y. La coordenada Z se generará en una función de n variables (f(n)) en la que introducimos, haciendo click con el botón derecho en la banda central del componente en edit expression, la ecuación del parabolide hiperbólico. El número de variables se define, también haciendo click con el botón derecho en la parte central del componente y luego yendo a input manager

Tomaremos, por ejemplo, una suma de seno y coseno con la siguiente forma:

(sin(b+(t*a))+cos(c+(t*d)))*f

En este caso, la variable t representarán todos los “momentos” por los que queremos que pase nuestra superficie, así que le pasaremos otro dominio, de tal manera, que podemos controlar la altura máxima y mínima de la superficie, y un rango para fijar el número de puntos, que tienen que ser tantos como puntos tengamos en la base. Puesto que el rango devuelve N+1 valores, pasaremos la cantidad de punto (list length) menos uno.

Dibujaremos la superficie a partir de los puntos anteriores con surface grid o surface from point. La entrada P será la última lista de puntos XYZ y U la cantidad de puntos en cualquiera de las direcciones de la superficie (esta superfice sólo funciona con plantas cuadradas) , que será la N del rango de la planta + 1.

Page 17: introducción al diseño generativo con grasshopper

Guillermo Ramírez CamareroMiguel Vidal Calvet

www.frikearq.com

iniciación aldiseño generativo con Grasshopper

02. deformación de geometría: panelización de superficies

A. Dibujar la geometría que se quiere utilizar para panelizar la superficie.B. Dividir el dominio bidimensional asociado a la superficie.C. Replicar y deformar la geometría original sobre la superficie.

B. Dividir el dominio bidimensional asociado a la superficie.

C. Replicar y deformar la geometría original sobre la superficie.

A. Dibujar la geometría que se quiere utilizar para panelizar la superficie.

Dibujamos, en Rhino o Grasshopper, cualquier geometría para replicarla por las subdivisiones de la superficie original, en este caso, una superficie plana (Plane Surface). Dicha geometría se replicará mapeando una caja de referencia sobre dichas subdivisiones. Podemos tomar, también, cualquier caja de referencia. En este caso utilizamos el componente Bounding Box para encerrar la geometría que replicar en su volumen capaz alineado en el plano universal XY.

Necesitamos dividir el dominio bidimensional de la superficie con divide domain2. Las entradas U y V del divide domain2 se refieren a las coordenadas locales propias de la superficie.

Para panelizar la superficie utilizamos el componente Surface Morph, que toma una geometría contenida en una caja de referencia y la replica sobre una superficie deformándola de acuerdo a las coordenadas locales de la superficie.U y V las tomaremos de la división del dominio bidimensional y W corresponderá a la altura de la caja de destino sobre la que se mapeará la caja de referencia. En caso de utilizar más de una geometría para replicar, no debemos olvidarnos de activar la referencia cruzada para todas las geometrías cross reference.

Page 18: introducción al diseño generativo con grasshopper

Guillermo Ramírez CamareroMiguel Vidal Calvet

www.frikearq.com

iniciación aldiseño generativo con Grasshopper

03. análisis solar de la superficie y visualización de resultados

Con el componente Point Polar dibujamos un punto que gira en torno al Origen. Uniendo con Vector Two Points el Origen y el punto polar, obtenemos la dirección de nuestro sencillo vector solar, con vector display podemos visualizarlo.Aquí estamos utilizando un vector solar muy básico, puesto que el objetivo del ejercicio es puramente didáctico. Dicho vector prodremos sustituirlo simplemente subreescribiendo la entrada del componente por otro más preciso, en caso de que necesitemos un análisis solar riguroso.

Referenciamos con dos Curve (icono de borde hexagonal) dos curvas dibujadas en Rhino, y conectamos ambos a la entrada S de un componente Loft. Con Divide Surface dividimos la superficie en puntos en los cuales conocemos el vector normal (salida N del Divide Surface). Un Flatten en las salidas N y P del Divide Surface nos libra de las sublistas.

1. Definir un vector en coordenadas polares.2. Dibujar y dividir una superficie.3. Comparar vectores y asignar color.4. Visualizar.

1. Definir un vector en coordenadas polares.

2. Dibujar y dividir la superficie.

Con un Angle comparamos los vectores normales (salida N del Divide Surface) con el vector solar (salida L de Line). A estos valores de ángulo les tenemos que asignar un color. Esto se consigue con Gradient. Con la paleta de Gradient definimos el espacio de color que vamos a hacer corresponder con los valores de ángulo, este espacio queda determinado entre los límites L0 y L1. Un ángulo de 0 radianes será rojo, uno de Pi será rojo también, y, en Pi/2, cuando los los vectores sean perpendiculares, la luz será rasante y le asignaremos el color verde.

3. Comparar vectores y asignar color.

El último componente, Preview, sirve para colorear: le asigna color a geometría. Nuestra información de color sale del Gradient, y la geometría a colorear son todos los puntos que salen del flatten de la salida P de Surface Divide.

4. Visualizar.