introducción al diseño generativo con grasshopper

Page 1

introducción al

diseño generativo

con grasshopper miguel vidal calvet guillermo ramírez camarero www.frikearq.com


dise単o generativo


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


procesos


iniciación al diseño generativo con Grasshopper

idea

Guillermo Ramírez Camarero Miguel Vidal Calvet www.frikearq.com

modelo matemático

(leyes de relación entre objetos)

implementación (código fuente)


iniciación al diseño generativo con Grasshopper

Guillermo Ramírez Camarero Miguel Vidal Calvet www.frikearq.com

información

idea

modelo matemático

(leyes de relación entre objetos)

implementación (código fuente)

resultados


iniciación al diseño generativo con Grasshopper

Guillermo Ramírez Camarero Miguel Vidal Calvet www.frikearq.com

2 paradigmas - diseño paramétrico

- diseño discriminativo


iniciación al diseño generativo con Grasshopper

Guillermo Ramírez Camarero Miguel Vidal Calvet www.frikearq.com

datos datos

algoritmo

resultados

proceso de diseño paramétrico


iniciación al diseño generativo con Grasshopper

Guillermo Ramírez Camarero Miguel Vidal Calvet www.frikearq.com

datos datos

algoritmo

resultados algoritmo de selección proceso de diseño discriminativo

evaluación sí

resultados

no


aplicaciones prรกcticas


iniciación al diseño generativo con Grasshopper

Guillermo Ramírez Camarero Miguel Vidal Calvet www.frikearq.com

01

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

02

posibilidad de gestionar complejidad de datos.

03

generación de soluciones adaptadas a condiciones de contorno.


grasshopper


iniciación al diseño generativo con Grasshopper

Guillermo Ramírez Camarero Miguel Vidal Calvet www.frikearq.com

¿qué es Grasshopper?

01

plug-in para Rhinoceros.

02

entorno de programación visual.

03

intérprete.

algunas recomendaciones en el uso de Grasshopper

01

higiene visual.

02

esquema de flujo de datos antes de empezar.

03

sacar paneles informativos.

04 05

hacer comentarios de lo que se vaya haciendo. personalizar nombres de componentes y poder hacer búsquedas.


iniciación al diseño generativo con Grasshopper

ejercicio práctico 00. objetivo del ejercicio 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.

Guillermo Ramírez Camarero Miguel Vidal Calvet www.frikearq.com


iniciación al diseño generativo con Grasshopper

Guillermo Ramírez Camarero Miguel Vidal Calvet www.frikearq.com

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 colección de todos los números entre esos dos valores. Dominio (domain) es un componente 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”. A

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. N divisiones A

c

d N+1 valores

e

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 corresponder 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) ...


iniciación al diseño generativo con Grasshopper

Guillermo Ramírez Camarero Miguel Vidal Calvet www.frikearq.com

B. Afectar las coordenadas Z de la matriz de puntos por una funcón. 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. C. Dibujar la superficie a partir de esos puntos 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.


iniciación al diseñ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. 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. B. Dividir el dominio bidimensional asociado a la superficie. 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. C. Replicar y deformar la geometría original sobre 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.

Guillermo Ramírez Camarero Miguel Vidal Calvet www.frikearq.com


iniciación al diseño generativo con Grasshopper

03. análisis solar de la superficie y visualización de resultados 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. 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. 2. Dibujar y dividir la superficie. 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. 3. Comparar vectores y asignar color. 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. 4. Visualizar. 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.

Guillermo Ramírez Camarero Miguel Vidal Calvet www.frikearq.com


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.