frikearq .com manual b谩sico de
grasshopper aplicado al dise帽o de Arquitectura
edici贸n Abril 2010 para Grasshopper versi贸n 0.6.0057
frikearq .com
manual básico de aplicado al
0
Qué es y cómo funciona Grasshopper
1
3
Componentes geométricos
- ¿Qué es Grasshopper?
- Vectores
- Interfaz gráfica
- Puntos. Nubes de puntos
- Objetos. Tipos y modos de visualización
- Curvas. Rejillas
- Datos. Tipos. Modos de entrada. Listas
- Superficies. Panelización
Componentes escalares. matemáticas de Grasshopper
Las
- Constantes
4
Diseño paramétrico - Transformaciones
- Operadores escalares
- Intersecciones
- Operadores trigonométricos
- Morphing
- Funciones
- Sistemas paramétricos
- Intervalos, rangos y series
2
grasshopper
diseño paramétrico
Componentes lógicos. Programación visual - Operadores comparativos, booleanos y condicionales - Gestión de listas
A
Anexo: enlaces web índice
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
0
Qué es y cómo funciona Grasshopper
0.0 ¿Qué es 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 facilidad, no hay traducciones
- intérprete “continuo” los eventos de Grasshopper se actualizan continuamente, refrescando su visualización en Rhino, a no ser que los detengamos
- programación visual Grasshopper emplea el paradigma de la programaci’on visual, “conectando cajitas”; 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
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
0.1 Interfaz gráfica MENÚ PRINCIPAL
NAVEGADOR
PANEL DE COMPONENTES BARRA DE HERRAMIENTAS
LIENZO
(con doble click, búsqueda de comandos)
BARRA DE ESTADO
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
0.2 Objetos. Tipos y modos de visualización
TIPOS DE OBJETOS
entrada de datos (si es necesaria)
salida de datos
salida de datos entrada de datos
almacena datos
fabrica y gestiona datos
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
MODOS DE VISUALIZACIÓN
ALGUNOS OBJETOS “ESPECIALES” QUE MÁS VAMOS A EMPLEAR * Panel
* Receiver
* Slider
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
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 anterior 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
-
el orden es relevante
-
la longitud está determinada
-
se accede a los datos refiriendose al índice dentro de la sucesión
-
el primer objeto tiene el índice cero
(se colocan “uno detrás de otro”) ({A, B, C} no es igual que {C, B, A}) (“list length”)
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
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
B
A índice 0 1 2 3
shortest list toma como referencia la lista con el índice menor
índice dato0 dato1 dato2 dato3
?? ??
0 1 2 3 4 5
dato0 dato1 dato2 dato3 dato4 dato5
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 1 2 3
0 1 2 3 4 5
0 1 2 3
0 1 2 3 4 5
0 1 2 3
0 1 2 3 4 5
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
1
Componentes escalares. Las matemáticas de Grasshopper 1.1 Constantes -
Π
1 [pi]
-
е
[natural logarithm]
-
φ
-
[phi]
ε
[epsilon]
1.2 Operadores escalares -
suma [addition]
-
multiplicación
1
[multiplication]
-
resta [subtraction]
-
division
[division]
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úsqueda en la ventana encabezada con “Enter a serch keyword ... ”, que aparece en el lienzo al hacer doble click con el botón izquierdo.
frikearq .com -
manual básico de aplicado al
potencia
[power]
-
10x
[power]
-
2x
grasshopper
diseño paramétrico
-
[power]
еx
[power]
1.3 Operadores trigonométricos -
seno
-
arco seno
-
tangente
[arccosine]
-
arco tangente
logaritmo neperiano
-
logaritmo base 10
-
coseno
[arcsine]
-
arco coseno
[factorial]
-
[sine]
[cosine]
gent]
[tangent]
[arctan-
1.3 Funciones -
factorial
[natural logarithm]
2
las unidades de los ángulos en Grasshopper son radianes (Π rad ≡ 180º)
[logarithm]
frikearq .com -
logaritmo base N
manual básico de aplicado al
-
módulo
grasshopper
diseño paramétrico
[modulus]
[natural logarithm]
(funciones “personalizadas”) -
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
frikearq .com
manual básico de aplicado al
1.4 Intervalos, rangos, series
Estructura paramétrica _ malla de pilares con intervalos
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com Estructura paramétrica _ malla de pilares con series
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
2
Componentes 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 representar el valor binario verdadero o falso. Las funciones comparativas de nuestra versión de Grasshopper son: -
mayor
[larger]
-
menor
[smaller]
-
igualdad
[equality]
-
similitud
Sin embargo, podemos hacer lo mismo que lo anterior mediante un componente función.
[similarity]
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
Existen, también, unos operadores booleanos que combinan listas de valores booleanos con operaciones lógicas : -
unión
[and]
-
intersección
[or]
-
complemento
[not]
La estructura que vamos a seguir para ejecutar una orden condicional es la siguiente:
listas de datos que queremos evaluar
evaluación de los datos (generalmente comparación)
resultado de la evaluación (lista de valores booleanos)
filtrado de los datos iniciales a través del resultado
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
Estructura paramétrica _ malla de pilares con condicionales
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
2.2 Gestión de listas. Operaciones sobre listas dato dato datodato dato dato dato dato dato dato
índice
0
1
2
3
4
5
6
7
8
9
último ÍTEM
1er ÍTEM longitud
list item
-
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). -
list length
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 resultado e I para los índices.
índice
dato
frikearq .com -
shift list
Desplaza el orden de los ítemes de la lista las posiciones 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
Sort list ordena listas. Las entradas y salidas K ordenan 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 índice desde el que dividir la lista. Las salidas son A y B, las dos listas resultado.
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
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 conceptos de list item y list length.
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
Triangulación I _ malla de pilares 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. -
cull nth
[cull nth]
Elimina ítemes según una frecuencia, es decir, cada n ítemes. Tiene 2 entradas: L para la(s) lista(s), N para la frecuencia.
-
cull pattern
[cull pattern]
Elimina ítemes según un patrón de valores booleanos. Tiene 2 entradas: L para la(s) lista(s), N para la frecuencia.
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
ESTRUCTURA DE ÁRBOL DE LOS ARCHIVOS DE GRASSHOPPER 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 acceder a todos los datos que estamos manejando.
rama
rama
rama
rama
rama
Fuente: Grasshopper Primer for version 0.6.0007
índice
dato
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
Visualización de árboles de Grasshoper Para visualizar la estructura de una lista, utilizamos el componente param viewer. Podemos escoger entre una vista textual, por defecto, y una vista gráfica, “draw tree” (abajo).
Paths
número de ramas que hay.
{0;0;0} ruta de rama.
la
N
número de ítemes en cada rama.
representación de esta lista
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
Operaciones sobre estructura de árboles Se pueden realizar las mismas operaciones que con listas, pero con distintos componentes y, sobre todo, diferente sintaxis.
-
tree branch
Con este componente extraemos ramas de una estructura de árbol. 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 rutas de las ramas son cadenas de caracteres. -
tree item
Con este componente extraemos ítemes dentro de ramas 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 enteros.
frikearq .com -
flatten 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.
-
graft tree
Con “graft tree” hacemos la operación contraria: convertimos en una rama cada item de la lista original.
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com -
manual básico de aplicado al
grasshopper
diseño paramétrico
explode tree
Extrae las ramas de una estructura de árbol una por una. Se añaden salidas haciendo click con el botón derecho en “output manage”.
-
merge/merge03/merge multiple
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.
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
Formatear números como cadena de caracteres: acceso a ramas
Estructura paramétrica _ triangulación II _ “gusano paramétrico”
+
(con shift presionado)
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
3
Componentes geométricos 3.1 Vectores
Vector solar I
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
3.2 Puntos
Vector solar II
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
3.3 Curvas
Curva por puntos tangentes a otra curva
manual bĂĄsico de aplicado al
grasshopper
diseĂąo paramĂŠtrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
3.4 Superficies
Superficie por puntos
Fuente: escofet.com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com Panelización de superficies
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
4
Diseñ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. “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 Happold. 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
Fuente: Wikipedia
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 losas.
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
Sendai
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
Lucernarios paramétricos I
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
Lucernarios paramétricos II
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
A
Anexo: 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/
frikearq .com
manual básico de aplicado al
grasshopper
diseño paramétrico
grasshopper