Vous êtes sur la page 1sur 53

INSTITUTO ARNAIZ

DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER

PROFESOR ADOLFO NADAL SERRANO


MDULO
DE
DISEO

PARAMTRICO

EXPLCITO

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

Los problemas de diseo no pueden ser resueltos sin la ayuda de un computador, siendo la
maquina un complemento y no un substituto del talento creativo, la computadora mientras no pueda inventar, puede explorar relaciones muy rpida y sistemticamente de acuerdo a reglas preestablecidas. El computador funciona como una extensin natural de la habilidad analtica del hombre.
Chermayeff, Community and Privacy (1963:166)


1. OBJETIVOS DEL CURSO

Los objetivos del curso son, por un lado, conseguir la familiaridad del alumno con sistemas y software de modelado
tridimensional, y, por otro, la introduccin de metodologas innovadoras de diseo por medio de plataformas integradas diseo
paramtrico explcito.

El CAD no es una tecnologa esttica, y que, una vez aplicada, proporciona todas sus posibilidades a los equipos de
diseo de forma definitiva. Sus capacidades van evolucionando con el tiempo, al mismo ritmo que los equipos se hacen ms
potentes y se abaratan, permitiendo que los desarrolladores de aplicaciones incorporen nuevas caractersticas y funcionalidades a sus productos.

De este modo, estos continuos avances permiten conceptualizar mejor los diseos, estimular y predecir el comportamiento de nuevas soluciones, realizar estimaciones de costes y compartir diseos con clientes y empresas del sector. Adems,
es posible hacer numerosas simulaciones virtuales de instancias de diseo desde fases muy iniciales de proyecto. En definitiva,
hemos de responder de manera efectiva y eficiente a las tendencias del sector mediante un pensamiento creativo:

- A travs de la simplificacin de las tareas no crticas, tales como las tradicionales de diseo y dibujo (muros, ventanas,
pilares, escaleras,...).

- El diseo en tres dimensiones debe ser una obviedad. Esto implica obtener grandes mejoras de productividad y calidad a travs del diseo espacial.

- La automatizacin de procesos generativos de forma.

- La posibilidad de testar numerosas instancias formales respondiendo automticamente a parmetros cambiantes.

2. PLANIFICACIN Y MDULOS

2.1. Mdulo bsico

El mdulo bsico trata de conseguir el dominio bsico de la herramienta en dibujo 3D, diseo tridimensional, y la
creacin de listados de propiedades de objetos y elementos constructivos, as como creacicin de listados.

El mdulo constar de 18 horas lectivas distribuidas durante 6 semanas de la siguiente manera:


a. Bloque 1: Introduccin a la interfaz y diseo 2D
- Da 1 (20 de junio, 1.5 horas): Introduccin a la interfaz y navegacin.
- Da 2 (21 de junio, 1.5 horas): Introduccin a modelado y vistas. Trabajo y modificacin de un modelo existente (I),
cotas, muros. Paleta de propiedades y Edit Type.
- Da 3 (27 de junio, 1.5 horas): Introduccin a modelado y vistas. Trabajo y modificacin de un modelo existente (II),
grupos, herramientas copiar, mover, rotar, alinear, matriz. [Mobiliario y grupos si procede]
- Da 4 (28 de junio, 1.5 horas): Introduccin al diseo esquemtico de masas. Importacin de archivos de croquis, uso
de planos de referencia. Introduccin a listados.
- Da 5 (4 de julio, 1.5 horas): Diseo esquemtico de masas (II). Modificacin de geometra en 3D, asignaciones de niveles, plantas de masa y plantas reales. Ajuste interactivo de volumetras y presentacin bsica de listados.
b. Bloque 2: introduccin a modelado tridimensional y visualizacin
- Das 6-8 (5, 11 y 12 de julio, 4.5 horas): Muros: tipos. Muros bsicos y muros cortina. Delimitacin asociativa de espacios y habiitaciones. Edificin de huecos, edicin de perfiles y muros curvos. Trabajo con muros cortina: perfiles, paneles y jerarqua. Comienzo de trabajo de proyecto personal.
- Da 9 (18 de julio, 1.5 horas): Suelos, techos, cubiertas (I)
- Da 10 (19 de julio, 1.5 horas): Suelos, techos, cubiertas (II). Aplicacin de cubiertas y suelos al modelado de una vivienda como proyecto personal.

[ 2 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

- Da 11 (25 de julio, 1.5 horas): Elementos de circulacin: escaleras, rampas (I)


- Da 12 (26 de julio, 1.5 horas): Elementos de circulacin: escaleras, rampas (II)
- Extra:

edicin de familias 2D y 3D [3 horas]

preparacin de documentacin grfica [1.5 horas]

renderizado y animaciones [1.5 horas]

[ 3 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

INTERFAZ DE GRASSHOPPER

[ 4 ]

[ 5 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

I. INTERFAZ DE GRASSHOPPER

1. La pantalla de Grasshopper

Grasshopper divide la pantalla en reas que proporcionan informacin o solicitan la introduccin de datos, contando
con numerosas ventanas interactivas y contextuales que cambian en funcin del elemento seleccionado o el comando en
ejecucin.

Barra de men: Permite acceder a los comandos, las opciones y la ayuda.

Contenedores y widgets: en funcin del tipo seleccionado (Params, Maths, Sets, Vector, Curve, Surface, Mesh, Intersect, Transform, PanelingTools), muestra las opciones de contenedores (comandos) displonibles agrupadas por subtipos.

rea grfica: Muestra la definicin actual de Grasshopper asociada al modelo, as como otras ayudas al mismo (brjula). Asimismo se muetra el tipo genrico de previsualizacin de objetos (ninguno, wireframe, shaded)

Barra de estado: Muestra el autoguardado y la versin de Grasshopper.
Ttulo de definicin

Pestaas de men

Pestaas tipo de
contendores
Contenedores y
widgets
Men general
guardado/vista
Modo de previsualizacin

Markov widget
Brjula

Versin

[Fig 1. Interfaz de Grasshopper]



2. Barras de mens

Las barras se clasifican segn tipos, que agrupan funciones (contenedores) de uso semejante. Dichos contenedores, a
su vez, estn clasificados segn subcategoras, lo que ayuda a su localizacin de manera ms sencilla.

Esta barra muestra los diferentes comandos agrupados en pestaas de la siguiente manera:

- Params, que contiene los siguientes subgrupos, de izquierda a derecha:
Geometry: contenedores para asociar o referenciar puntos, vectores, y otra geometra sencilla desde el modelo.
Primitive: booleanas, nmeros, strings y otro tipo de datos primitivos
Input: sliders, panels (informativos)
Util: utilidades extra como grficas y otras.

[ 6 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

- Maths: incluye herramientas de anlisis matemtico, fundamentales en diseo generativo y paramtrico.


Domain: operaciones con dominios
Matrix: matrices
Operators: operadores lgicos y sencillos
Polynomials: funciones matemticas bsicas
Script: muy importante, contiene herrramientas para definir funciones, expresiones, y scripts en varios lenguajes de programacin.
Trig: trigonometra, incluye seno, coseno y otras conocidas funciones y relaciones trigonomtricas
Util: utilidades

[Fig 2. Subgrupo Geometry dentro del tipo Params mostrando todas las posibles funciones (contenedores)]


- Sets: referente a elementos de informacin y estructuras de datos.

List: gestin de listas de informacin, fundamental
Sequence: especialmente importantes las referentes a eliminacin de datos (Cull)
Sets
Strings
Tree

- Vector:

Color

Field

Grid

Plane: importante para la definicin de figuras en planos de trabajo diferentes al z=0

Point: operaciones con puntos

Vector: operaciones con vectores

- Curve:

Analysis

Division
Primitive: creacin de todo tipo de curvas primitivas, desdelneas hasta crculos y arcos

Spline

Util: equivalente a las herramientas de edicin de curvas en rhino

[ 7 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS


- Surface:

Analysis: rea, volumen, curvatura...

Freeform: creacin de superficies de forma libre

Primitive: cilindros, conos, y otros

Util:

- Mesh:

Analysis

Primitive

Triangulation

Util.

- Intersect:

Mathematical

Physical

Region (BREPs, Boundary Representations)

Shape

- Transform

Afine

Euclidean

Morph

Util

- Pestaas agragadas por plugins o extensiones: Paneling Tools y otros. En el caso de Paneling Tools podrs encontrar
los siguientes grupos:

Curve

Grid

Grid Attractors

Grid utility

Panel 2D

Panel 3D

Panel Utility

Utility
II. NAVEGANDO Y WORKFLOW DE TRABAJO DE GRASSHOPPER

El workflow de Grasshopper est inevitablemente unido a Rhinoceros, y a los objetos de ste. De esta manera, una
definicin de Grasshopper siempre estar asociada a un objeto o grupo de objetos de rhino, sin los cuales no tendra sentido. En la mayora de los casos, querrs comenzar modelando algo muy sencillo en rhinoceros para posteriormente explorar
posibilidades de diseo por medio de Grasshopper.

Esto permite explorar en poco tiempo numerosas variaciones de diseo a partir de unas condiciones iniciales determinadas. Por esta razn, cada una de las herramientas tiene una serie de opciones que Grasshopper muestra de manera
contextual, es decir, dependiente del tipo de objeto o componente que pretendas usar.




As pues, los pasos a seguir son:


- Crear geometra base en rhinoceros
- Utilizar dicha geometra mediante referenciacin en Grasshopper
- Modificar o ampliar la geometra en la definicin (previsualizacin)
- Convertir la geometra previsualizada en pobjetos reales mediante el comando Bake


1. Navegacin en Grasshopper

La navegacin en Grasshopper es muy sencilla e intuitiva. Puedes hacer zoom/pan con el botn central del ratn y el
botn derecho, respectivamente.

- Barra espaciadora: muestra men contextual

- Botn izquierdo: seleccin

[ 8 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

- Alt+Ctrl + Botn Izq: muestra la localizacin de un contenedor dentro de las barras de mens
- Doble click: men contextual de bsqueda de contenedores


2. Workflow

De manera genrica, abriremos las definiciones de Grasshopper mediante el comando _grasshopper en rhinoceros.
Asegrate de tener la ltima versin del plugin instalada en tu ordenador. Crearemos entonces una serie de objetos en
rhinoceros que asociaremos explcitamente en grasshopper para su definicin y modificacin. A partir de dichos objetos
podremos modificar su geometra, o crear geometra nueva de manera completamente interactiva.

III. INICIACIN AL WORKFLOW DE GRASSHOPPER: COMPONENTES Y ASOCIACIN DE GEOMETRA

Abre el archivo del tutorial en Rhino (si ests usando Grasshopper, es razonable pensar que eres un usuario avanzado
de Rhino, por lo que no se explicar aqu en ningn caso ninguna metodologa referente a Rhino). Encontrars tres lneas. Estas lneas son rectngulos redondeados en sus esquinas de diferentes tamaos y a diferentes alturas. La razn de los mismos
es crear un contexto a partir del cual modelar un estadio de ftbol absolutamente paramtrico.

Abre ahora Grasshopper (es muy recomendable disponer de dos monitores simultneamente para poder visualizar las
modificaciones en el modelo provocadas en Grasshopper) y el archivo del tutorial.

1. Abrir y preparar el archivo

Abre el archivo en men File>Open Document o directamente en el icono situado en la esquina superior izquierda del
Canvas. Una vez que lo hayas abierto, deberas ver una serie de pilas o contenedores interconectados por lneas. Los contenedores son funciones y las conexiones muestran las relaciones entre ellos.
Contenedor asociado
a geometra

Contenedor tipo
funcin

Nombre de grupo

Conexin 1

Conexin 2

Slider

rea de grupo
[Fig 3. Interfaz de Grasshopper mostrando componentes]


2. Tipos y estructura de componentes

En principio, hay varios tipos bsicos de contenedores en Grasshopper

- Componentes asociados a geometra bsica del modelo (geometry o primitive)

- Componentes tipo funcin, con input/s) y output(s) que no necesariamente han de coincidir en nmero (de alguno
de los tipos y subtipos mencionados anteriormente).

- Panels: Notas o displays de informacin

- Sliders: controlan dinmicamente valores numricos

[ 9 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

Por la simplicidad de los componentes, nos centraremos bsicamente en los comportamientos bsicos de los mismos:


a. Display de informacin

Los componentes albergan informacin de diferentes tipos, bien geomtrica, numrica, alfabtica o de otra ndole. En
el caso de contener geometra, sta se previsualiza de diferentes modos en la ventana de rhino, en funcin de si es geometra
propia de Rhino o creada dentro del entorno de Grasshopper. As, los puntos se representan como cruces para diferenciarlos
de los puntos de Rhino.

La geometra en rojo es geometra creada en Grasshopper pero no activa (es decir, que el componente que la ha creado no est seleccionado en ese momento)

La geometra en color verde es geometra seleccionada

La geometra que se muestra en azul es aqulla que est siendo seleccionada actualmente por el usuario.
Geometra inicial
Geometra final
Rhino
Grasshopper

Puntos

Curvas

Puntos
seleccionados

[Fig 4. Comparacin de geometra en rhino y grasshopper]


b. Edicin

Todos los componentes muestran un men de edicin contextual si pulsas sobre ellos con el botn derecho.

Sobre los sliders, sto te permitir editar el tipo de nmero que contiene, as como sus valores mximos y mnimos.

Sobre los paneles, te permitir controlar qu y cmo se muestra la informacin, as como el color de los mismos

Sobre las funciones, adems de los genricos ya explicados, podrs controlar los distintos inputs y outputs de manera
directa. Para conectar componentes, sencillamente arrastra el ratn desde el punto blanco del output de uno al input correspondiente del siguiente. Por favor, s consciente de la consistencia de informacin (es decir, no unas una curva a un lugar
donde se supone que debe haber un texto).

Sobre los componentes de asociacin de geometra, podrs seleccionar directamente si quieres relacionar el componente a uno o varios elementos del modelo.


En funcin del estado de los componentes, podrs encontrar alguna de las siguientes situaciones:
Color negro: parmetro con contenido (es decir, con referencia activa a geometra de modelo). Marcado con la letra A
en la figura 5.
Color naranja: parmetro correcto que precisa de una referencia de geometra o de datos. Letras B y E. Es posible que
dicho color implique la presencia de Avisos o Warnings. stos indican posibles problemas con el componente o los
datos, pero funcionan a pesar de ello. Esto es, los avisos no tienen que ser corregidos necesariamente.
Color verde: un componente seleccionado o activo (la geometra en la ventana de rhino tambin se mostrar verde).
Letra C.
Color gris: componente normal y en funcionamiento. Letra D.
Color rojo: un componente con errores (posiblemente input inconsistente). Letra F.
Conexin entre componentes. Letra G. Las conexiones pueden tener varios tipos de displays en funcin del tipo de
datos que contengan. As, sern dobles para listas de datos.

[ 10 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

[Fig 5. Casos de componentes en funcin de su estado. Fuente: Grasshopper Premier 2nd edition, LIFT Architects]

Nombre
Input

Output

Conexin in

Conexin out

Conexin in

Conexin out

Conexin in

Conexin out

Procesamiento de datos

Nueva conexin

[Fig 6. Divide: ejemplo de un componente funcin con todos sus elementos]


c. Gestin de input y output

La conexin de componentes se realiza mediante dragging o arrastre del puntero del ratn entre los diferentes componentes. Para ello, sita el cursor sobre el semicrculo blanco correspondiente a la salida de un componente y arrastralo hasta la entrada correspondiente del siguiente componente. Vers que se crea una previsualizacin con una flecha que indica
qu inputs/outputs has relacionado.

Puedes aadir mltiples entradas manteniendo pulsado el botn shift.

Para eliminar una conexin, sencillamente pulsa el botn control y selecciona qu conexin quieres eliminar. Tambin
puedes pulsar sobre dicha conexin con el botn derecho y seleccionar la opcin correspondiente.

d. Edicin avanzada mediante zoom-in

Algunos componentes muestran controles avanzados. Para acceder a ellos, haz zoom hasta que aparezcan. Algunos de
ellos pueden incluir:

Modificacin del nmero de inputs y outputs.

Alineacin de texto y otras configuraciones de visualizacin

[ 11 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

[Fig 7. Men contextual habitual. Fuente: Grasshopper Premier 2nd edition, LIFT Architects]


3. Receptores inalmbricos

Hasta Grasshopper 0.0.6. se tena tambin la capacidad de transmitir informacin inalmbrica mediante el uso de receptores, que podan encontrarse en la subcategora especial dentro de la categora/etiqueta de Parmetros. De este modo,
se realizaba la conexin normalmente para despus ver cmo desapareca automticamente. Esto ocurra porque los receptores mostraban la conexin nicamente cuando estaban seleccionados, si bien dicha configuracin por defecto poda
cambiarse a always o never. Como cualquier otro componenete, se poda conectar el receptor a tantos otros inputs como
necesites.

En versiones ms recientes de Grasshopper, los receptores han desaparecido para ser adaptados (absorbidos, realmente) en el modo de visualizacion de las conexiones. De esta manera, en vez de usar un emisor, puedes configurar la visualizacin de la conexin de un determinado input para que no muestre un cable, sino unas ondas que representan la conexin
inalmbrica a distancia. Pulsa el botn derecho sobre el componente y selecciona el tipo de visualizacin Wire Display, tal y
como puedes ver en la figura 8.

[Fig 8. Configuracin de la conexin para visualizacin inalmbrica]

[ 12 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

[ 13 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

MODELADO PARAMTRICO DE UN EDIFICIO:


VECTORES, CURVAS Y SUPERFICIES

[ 14 ]

[ 15 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

I. DESCRIPCIN DEL PROYECTO



1. Objetivo

El objetivo del proyecto es mostrar de manera sencilla y eficaz el modo de trabajo con grasshopper mediante un ejemplo que crece en complejidad y trata con geometra preexistente para posteriormente modificarla y aadir componentes de
manera progresiva.

- Se tratan los siguientes tipos de geometra:

Puntos y vectores

Curvas

Superficies simples




- El resultado final ser el modelo paramtrico de un estadio en el cual podrn controlarse:


Altura de graderos
Forma y disposicin de la cubierta
Cantidad de componentes en cubierta
Triangulacin y huecos


2. Punto de partida: curvas base en rhinoceros

Dibuja tres rectngulos con vrtices redondeados en Rhino. Dichos rectngulos sern la base de nuestro edificio y se
corresponden vagamente con los permetros interiores del gradero de un estadio. Asimismo, la curva inferior se usar ms
adelante para definir el tamao del campo y la superior para la geometra de la cubierta. Aunque en la figura 1 se han incluido
las dimensiones, stas son relativamente irrelevantes, dado el carcter paramtrico que el modelo ir adquiriendo.

Curva superior: CrvUp


Curva media: CrvMed
Curva inferior: CrvDown

[Fig 9. Configuracin de la conexin para visualizacin inalmbrica]


Abre ahora Grasshopper desde la ventana de Rhino mediante el commando _Grasshopper. Vers que aparece el
plug-in con la ventana vaca. Ya que lo primero que vamos a hacer es asociar geometra existente en el modelo a la definicin
de Grasshopper, necesitamos unos contenedores (en forma de componentes) que puedan albergar dicha informacin. Ve a
Params>Geometry y selecciona Crv. Haz click sobre cualquier punto del lienzo para situar el componente vaco o arrastra el
icono.

Una vez hayas esto tendrs el componente en el lienzo, y debers asociar geometra al mismo. Para hacer esto, pulsa
con el botn derecho sobre el componente y selecciona la opcin Set One Curve. A continuacin selecciona la primera de
las curvas. Nombra los componentes de manera clara y concisa para entender perfectamente el contenido de las mismas.
Puedes usar, por ejemplo, CrvDown, CrvMid y CrvUp para definir las curvas inferior, media y superior, respectivamente.
Estas curvas van a servir para crear los graderos y la cubierta.

[ 16 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS


3. Crear la superficie del campo a partir de la curva inferior

Para crear la superficie del campo de juego vamos a utilizar la herramienta offset, que crea curvas desplazadas desde
la original a una distancia determinada. Tomaremos como base la curva inferior CrvDown y haremos un offset hacia dentro
(con distancia negativa, al tener como partida una curva cerrada).

Cuando tengamos la nueva curva, podremos crear las superficies correspondientes al anillo exterior y al campo, de dos
maneras diferentes, que se describen en los apartados b. y c.

a. Crear las curvas por desplazamiento:

[Fig 10. Offset en Curves>Utils]


Ve a la pestaa de curvas, selecciona utilidades y dentro de ellas, offset: curves>util>offset. Como hemos dicho, para
definir un desplazamiento de curva offset, se necesitan los siguientes inputs:
- Curva base para desplazar (Base Curve, C): en este caso CrvDown
- Distancia de desplazamiento (Offset Distance, D): una distancia que puede ser variable, en funcin de nuestros intereses. En este sentido podemos parametrizar ya la curva desplazada.
- Plano base de desplazamiento (Base Plane, P): el plano sobre el cual se realiza el desplazamiento, por defecto el World XYZ
- Tipo de esquina (Corner Type, C): con diferentes opciones, (0) none, (1) sharp, (2) round, (3) smooth, (4) chamfer.
Slider

Panel

Base Plane

Offset
distance

Corner
type

Base Curve

Result
Curve

[Fig 11. Offset inputs]


Para nuestro caso, puedes crear dos sliders, en Params>Input>Slider, y cambiar, mediante la edicin de propiedades, su
nombre y tipo hasta que concuerden con lo que necesitamos. Ajusta el Slider Offset Dist hasta que pueda contener nmeros
negativos menores que 1 y Offset Type a otro que contenga nmeros naturales de 0 a 4. Conecta los sliders correspondientes
al componente y la curva a su input. Deberas tener un esquema parecido al de la figura 11.

[ 17 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

Base Curves

Timeliner

Result
Surface(s)

[Fig 12. Menu Planar Srf y el componente con sus inputs/outputs]


b. Superficies mediante curvas planas

Una vez hayas obtenido la curva desplazada, procedemos a crear una superficie mediante curvas planas. La idea es
crear una superficie entre ambas, de manera que sirva como base a una eventual pista de atletismo perimetral o semejante.
Para crear una superficie a partir de curvas planas ve a Surface>Freeform>Planar Srf (Fig. 12). Para crear una superficie plana
necesitars los siguientes inputs:

- Set o conjunto de curvas de borde.

S, eso es todo. As que conecta las dos curvas (CrvDown y su desplazamiento) al componente para obtener la superficie resultante del anillo. Es posible que, si las dos curvas no estn en el mismo plano exactamente, el programa cree dos
superficies. Si es el caso, lee el siguiente apartado.

c. Superficies mediante booleana o interseccin de BREPs

En el caso que hayas obtenido dos superficies independientes, puedes sustraer la interior de la exterior para obtener la
superficie del anillo, mediante una operacin muy semejante a una diferencia booleana. Para ello, siempre que hayas obtenido dos superficies del componente planar, has de separar los resultados e intersectarlos, para despus elegir la superficie
interseccin de las dos.

[Fig 13. Sets>Tree>Flatten Tree]

[ 18 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS


Crea en el lienzo una definicin parecida a la que se muestra en la figura 14. En este caso lo que vamos a hacer es crear
unas superficies planas, recogerlas en la lista del output y aplanar esta lista (ms informacin sobre listas en el apartado dedicado al respecto), para luego separar los elementos de la misma en dos elementos, los cuales van a sustraerse para obtener
la interseccin.
- Crea las superficies planas
- Ve a Sets>Tree>Flatten Tree (o haz doble click sobre el lienzo y busca el componente en el men emergente)
- Asocia el output del componente de las superficies planas al input del componente flatten, de manera que
la lista, con entradas del tipo {0}-0 y {0;0}-0 pase a {0}-0,1. Para aclarar cmo funcionan las listas dedicaremos
posteriormente un captulo al respecto. La gestin de datos de Grasshopper es una de las caractersticas ms
importantes del uso del mismo, por lo que es precisa una aclaracin bsica al respecto.
- Una vez hayas aplanado la lista que contiene las superficies, podemos separar sus elementos en sendos
componentes. Para ello, seleccionaremos cada uno de ellos independientemente, gracias al componente
Item, que selecciona un elemento de la lista a partir de su ndice (es decir, a partir del identificador del mismo). Crea, para este caso concreto, dos componentes iguales, a los que vamos a alimentar con ndices diferentes; en funcin de estos ndices obtendremos elementos diferentes (en este caso una u otra superficie).
- Una vez separados los componentes, podemos crear la diferencia entre ellos. Sita el componente de diferencia de Breps, en Intersect>Shape>Solid Difference. Asocia ambas superficies en el componente (uno en
cada input) para obtener el resultado deseado.
CREATE SURFACE DIFERENCE


List item (select)
List item (select)

CREATE PLANAR SURFACES

Sliders

Offset

Planar Srf

List
Index

List

Flatten (list)

Cull (list item)


Index (list item)

Difference (Surfaces)

Crv Down
[Fig 14. Definicin]


4. Creacin bsica de los graderos y loft de superficies

Ya hemos creado las superficies del campo. A continuacin crearemos los graderos del estadio, para lo cual usaremos
la curva media CrvMed y la superior CrvUp.

Por un lado, crearemos una serie de divisiones en dichas curvas, y lneas que nos permitar previsualizar la posicin de
los asientos en el gradera, de modo muy esquemtico. Asimismo, podremos contar el nmero de asientos, que ir variando
segn creemos ms o menos subdivisiones en las curvas. Por otro lado, podemos crear las superficies de los graderos, para
obtener una visin tridimensional ms clara del conjunto. El comando Loft toma como inputs un conjunto de curvas y una
serie de opciones (que se conectan, como un componente aislado, al componente principal del Loft).

[ 19 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS


a. Creando las subdivisiones de los asientos en el gradero

En primer lugar, divide las curvas base. Para ello selecciona el comando Curve>Division>Divide Curve. El componente
necesita los siguientes inputs:
- Curva a dividir
- Nmero de segmentos
- Dividir en los kinks o esquinas.

En este caso, asocia las curvas inferior y media a componentes de divisin independientes, de manera que resulten en
listas independientes de puntos. Crea un slider con nmeros naturales que puedes conectar a ambos inputs de los componentes de divisin, de manera que nos aseguraremos dividir las curvas en el mismo nmero de segmentos. Una vez hayamos
dividido las curvas, podremos crear lneas entre los puntos resultantes de cada una de ellas, que podramos asemejar a las
columnas donde se situaran los asientos en el gradero.

Ve a Curve>Primitive>Line, y conecta la salida del primer componente de divisin como primer input de la lnea y la
salida del segundo componente de la divisin como segundo input. Vers cmo se crean las lneas que albergaran, en un
caso supuesto, cada uno de los asientos del gradero.

Puedes ver la definicin en la figura 15.

Curve
Params

CREATE SEAT DIVISIONS

Divide
Line
Contours

Base plan

X axis Y axis

Z axis

Divide by length
Sphere
Expression (radius)

Distance
Normal
Base Plane
Input Surface

CREATE SEAT SURFACES

CREATE SEAT WIDGETS

[Fig 15. Definicin para crear subdivisiones de asientos]


Podrs apreciar la subdivisin de los asientos entre las dos curvas inferior y superior, tal como ves en la figura 16. La idea
es poder controlar tanto la subdivisin en altura como a lo largo de las columnas, es decir, tratamos con una divisin en forma
de rejilla. De esta forma es posible no nicamente controlar la geometra de los graderos como tambin conocer la capacidad del etadio de manera dinmica. Siguiendo esta lgica sera posible controlar la forma y tamao del estadio siguiendo
una lgica inversa, es decir, a partir de la capacidad deseada del mismo:

- Introducir el nmero de asientos deseados

- Introducir la proporcin de asientos en vertical (es decir, el nmero de filas)

- Introducir la proporcin de asientos en horizontal u ocupacin por asiento (es decir, el nmero de columnas o la distancia entre asientos)

La figura 16 muestra, en esta fase del proyecto, tanto las divisiones que hemos creado para las curvas inferior y media
como las lneas que las unen, donde tericamente iran situados los asientos de los graderos. Por el momento, crearemos
unos widgets a modo de indicaciones de su situacin; posteriormente podremos sustituirlos por cualquier forma o bloque
deseado (esto no se incluye en el presente manual). Dichos widgets sern, simplemente, unas esferas que situaremos en el
centro de los asientos.

[ 20 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

Curve Division 1

Curve Division 2

Stand Lines
Closeup of stand subdivisions
[Fig 16. Subdivisiones del gradero en sus sucesivas etapas]


b. Superficies base de los graderos (versin simplificada)

Parte de la definicin de la figura 15 incluye la creacin de superficies para la definicin ms detallada de la geometra
del estadio (superficies inclinadas) y su posterior aplicacin para crear los graderos reales (escalonados).

Para crear los graderos usaremos una vez ms el comando (componente) loft, con las propiedades por defecto. Como
ya sabes, el comando loft toma una serie de curvas como input, en este caso las parejas inferior-media y media-superior. El
resultado de aplicar el comando ser, como es evidente, dos superficies donde localizar los graderos inferior y superior, respectivamente.

Como es de suponer, es posible que se precise de una zona intermedia de trnsito entre ambos graderos, por lo que
se puede pensar en independizar algo ms estas dos superficies. Para hacer el modelo ms realista, podemos duplicar la
curva intermedia mediante un offset y crear la superficie correspondiente al gradero superior con dicha curva, que podemos
llamar, a partir de ahora, CrvMed2. Puedes crear la superficie de trnsito, una vez ms, usando el comando Loft o PlanarSrf
a partir de las dos curvas intermedias. De este modo obtendramos un modelo ms apropiado y ligeramente ms completo
y complejo. Puedes ver un ejemplo de cmo realizarlo en la definicin de la figura 15, si bien trataremos este caso con ms
detalle en el siguiente captulo.

Upper surface

Lower surface

CrvUp
CrvMed2 (offset)
CrvMed
CrvDown

[Fig 17. Superficies del gradero diferenciadas por una zona intermedia (resolucin de
previsualizacin baja)]

[ 21 ]

Crv mid
Crv up
Vector

X Y Z

Input geometry
Transformation vector

CREATE BASE LINES

Move

CREATE SKYLIGHT
CURVE
Input geometry

Crv in

Fit Plane

Non-U
Scale

Center

Curve

ScaleFactor

Base Plane
ScaleFactors

MODIFY SKYLIGHT CURVE

Area
Centroid

Scale
Uniform

[Fig 18. Definicin para la creacin de la superficie base de la cubierta con los grupos necesarios]

OBTAIN
NEW LINES

Crv mid2 Crv up2

Area
CREATE SURFACE

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER

ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

[ 22 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS


5. Cubierta: modificacin de curvas y loft

A continuacin, el estadio precisa una cubierta que enfatice su valor geomtrico y arquitectnico. El primer paso a
seguir es la definicin de las lneas de base que van a conformar, a la postre, la forma de la superficie final de la cubierta.
Observa con detenimiento la definicin de la figura 18. En ella encontrars los siguientes pasos:

- Obtencin de nuevas lneas de definicin de la cubierta a partir de las existentes (la cubierta se entiende separada de
los graderos, por lo que se realiza un offset hacia afuera para controlar dichas lneas. Como resultado se obtienen las curvas
llamadas Crv mid2 y Crv up 2

- Creacin de la curva del hueco de la cubierta mediante sucesivas transformaciones. Para la creacin de dicha lnea se
realiza, una vez ms, un offset de la recin obtenida CrvUp2.

- Modificacin de la curva del hueco de cubierta (CrvIn), tal como sigue:
Desplazamiento mediante el comando Move, lo que permite controlar su posicin sobre el estadio
Escalado uniforme o no uniforme de la misma, para controlar la forma definitiva y apertura del hueco de
cubierta. A continuacin se describirn las dos formas de escalar.

- Creacin de la superficie a partir de las curvas Crv Mid 2, CrvUp2 y CrvIn.

[Fig 19. Men de Scale y ScaleNU]


a. Utilizacin de escalado uniforme

El escalado uniforme escala, como su nombre indica, un objeto geomtrico con el mismo factor de escala en las tres dimensiones del espacio. Puedes encontrar el componente en Transform>Affine>Scale/ScaleNU o tecleando scale en el men
emergente cuando haces doble click. Para utilizar el componente, debes alimentarlo con la siguiente informacin:

- Geometra a escalar (independientemente del tipo)

[Fig 20. Surface>Analysis>Area]

[ 23 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS


- Centro de escalado: preferiblemente, el centro de la curva. Para obtener el centro de la curva usa Surface>Analysis>Area,
un comando que funciona con superficies, curvas, y BREPs (Boundary REPresentations) en general y del que podrs obtener
tanto el rea del objeto como su centroide. Este componente precisa nicamente de un input geomtrico vlido.

- Factor de escala: en nuestro caso siempre menor que 1 y mayor que 0.1, para evitar problemas con geometra imposible.

Conecta la curva interior CrvIn al componente de escalado en G (geometry input). Para hallar el centroide de la curva,
que usaremos como punto base para escalar, emplea el comando Area descrito anteriormente. Conecta de nuevo CrvIn
como input, y usa el output C (centroide) como input para el escalado. Finalmente crea un slider que contenga valores ente
0.1 y 1 para controlar el factor de escala, que es igual para X, Y, Z, de manera automtica. Prueba a modificar los valores de los
sliders para ver cmo la curva va cambiando simultneamente si escala y su colocacin.

[Fig 21. Escalado uniforme y escalado no uniforme]

[Fig 22. Opciones de superficie en funcin de los distintos parmetros de offset, movimiento, y factores de escala]


b. Escalado no uniforme

Una vez familiarizados con el escalado uniforme, podemos probar el No Uniforme. La principal diferencia estriba en
que el no uniforme precisa 3 inputs que definan cada uno de los factores de escala para las respectivas transformaciones
en X, Y, y Z. Asimismo, y de manera un tanto extraa, el escalado no uniforme toma, en lugar de un punto base, un plano de
transformacin, del que extrae, automticamente, un punto base a posteriori. Esto va a hacer que tengamos que disear un
mtodo especfico para poder crear un plano donde queremos, lo que nos servir de investigacin a nivel ilustrativo.

- Crea un plano base:
En este caso, necesitamos que el plano base de escalado se site, una vez ms, en el centro de rea (centroide) de la
curva en cuestin. Como queremos escalar la curva CrvIn, buscaremos crear un plano cuyo centro est en el centro
de la misma. Podemos hacer esto de diferentes maneras. Una manera relativamente eficiente es hallar por un lado
el centroide, y usarlo como base para definir un base por tres puntos. Otra manera ms sencilla sera, sencillamente,
dividir la curva en un numero suficiente de segmentos (mnimo 3) y tratar de averiguar un plano que pase por todos
ellos. Exactamente esto se consigue usando el componente PlFit. Encuentra el componente en Vector>Plane>Plane Fit
o introduciendo una bsqueda en el men contextual que aparece al hazer doble click en el lienzo.

[ 24 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

[Fig 23. PlaneFit en Vector>Plane>PlaneFit]

- Modifica el plano base:


Vers que el plano base se ha creado basado en (0,0,0) pero con la orientacin correcta. Todo lo que necesitas hacer es
desplazar o trasladar el plano base a su posicin correcta, que es el centroide de la curva base. Para ello, halla el centroide de la curva con el componente Surface>Analysis>Area, que ya hemos usado anteriormente, y utiliza su output C
(centro) como input T (vector de desplazamiento) del componente Move. Puedes ver un close-up en la figura 24.

Crv centroid

NON UNIFORM SCALE

Scale Factors

Plane on
(0,0,0)

Translate Plane to
Curve Centroid

Curve
Base Plane X Y Z

Non-uniformly
scale Curve

[Fig 24. Non Uniform Scale]

[ 25 ]

- Finaliza el comando Scale NU:


Ya se puede concluir el escalado no uniforme de la curva. Alimenta el componente Scale NU con la curva, el plano base
modificado, y tres valores de X, Y, Z, para comprobar cmo vara la forma de la misma. Obtendrs algo parecido a la
figura 22 sin ver la superficie, ya que an no se ha creado.

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS


c. Loft

Finalmente, une CrvMid2, CrvUp2, y CrvIn en un componente Flatten para posteriormente usar el componente Loft.
Esto crear las geometra que falta, y obtendrs como resultado la cubierta. A este nivel, deberamos tener un estadio paramtrico simple (realmente, una muy simple volumetra) semejante al de la figura 25.

Hasta ahora, hemos creado de forma sencilla e intuitiva las superficies ms importantes de que consta el estadio, incluyendo:

- Campo

- Gradero

- Cubierta

A partir de ahora, completaremos el edificio con ms detalles de gradero y con una serie de huecos en la cubierta y su
estructura, lo que permite conocer ms a fondo cmo describe Grasshopper las superficies (si eres usuario de RhinoScript o
avanzado de Rhino, ya sabrs los conceptos bsicos) y algunos elementos interesantes para modificar los conjuntos numricos.

[Fig 25. Parametric Stadium - nivel bsico]

[ 26 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

[ 27 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

MODELADO PARAMTRICO AVANZADO:


SUPERFICIES Y MODIFICADORES

[ 28 ]

[ 29 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

I. DESCRIPCIN DE SUPERFICIES EN GRASSHOPPER



1. Topologa

Bsicamente, las superficies se tratan en Grasshopper como entes bidimensionales, por tanto susceptibles de ser descritas en funcin de dos trminos, que podemos denominar U y V. Imagina que ests en un campo de ftbol y te mueves por
l. Conociendo las coordenadas de una de las esquinas del campo, podras localizarte en funcin de tu posicin con respecto
a la banda (ancho) y la lnea de portera (largo), siempre dentro de los lmites (dominios) del campo. De la misma manera
describimos la posicin de cualquier punto en una superficie en Rhino y Grasshopper, a partir de los llamados dominios en
U y V (que corresponderan al ancho y largo del campo dentro de unos valores mximos determinados).

Ahora, si quisiramos subdividir el campo en pequeas superficies, valdra con dividir tanto el ancho como el largo en
una serie de segmentos y trazar los correspondientes rectngulos. El nmero de rectngulos sera el resultado de multiplicar
el nmero de segmentos de uno por el nmero de segmentos del otro, por lo que incrementamos el nmero de piezas del
terreno de manera muy rpida. De nuevo, el comportamiento de Grasshopper en cuanto a subdivisiones es exactamente el
mismo; cada una de las parcelas se denomina Subsuperficie. Para lograr tener subsuperficies tenemos que subdividir cada
uno de los dominios por un nmero de segmentos y aplicar dicha divisin a la superficie original. Cada una de las parcelas o
subsuperficies se comporta en s misma como una superficie, por lo que podramos, tericamente, realizar el mismo proceso
de manera recursiva para cada una de las parcelas, si esta fuera nuestra intencin.

Sin embargo, el uso de algoritmos recursivos no es el fuerte de Grasshopper (para esto es mejor que programes) y sera
precisar entrar en componentes de scripting para poder hacerlo. Adems, excede ampliamente el foco de nuestro manual
por el momento.

2. El componente SubSrf

Encuentra el componente SubSurface en Surface>Util>Isotrim. Por favor, fjate que el nombre del comando no es
SubSrf, a pesar del nombre del componente. Esto se debe a que las subsuperficies se obtienen haciendo recortes (trims) a
partir de isolneas (iso) de la superficie.

[Fig 26. Isotrim Menu]

El componente IsoTrim precisa de los siguientes inputs:


- Una superficie base, a dividir
- Un dominio bidimensional que sirva para realizar la divisin. Es importante recalcar que el dominio debe ser bidimensional, dado el carcter asimismo bidimensional del objeto base de la geometra. Crearemos dicho dominio modificando el original de la superficie mediante el componente dominio, que veremos a continuacin.

[ 30 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

Input domain
(modified)

Input geometry
(surface)

Input domain
(surface)

U0 (min U)
U1 (max U)
V0 (min V)
V1 (max V)

U domain
V domain

SubSrf
(Isotrim)

Domain to 2
subdomains

Domain to
4 numbers

[Fig 27. Componentes SubSurface (IsoTrim) y Domain]


3. El componente Domain

Puedes encontrar los componentes de dominio en Mats>Domain>Domain2 Components. Vers que hay dos componentes que se llaman igual (como ves en la figura 27), realizan la misma operacin devolviendo resultados ligeramente
diferentes. En el primer caso, el componente devuelve un set de 4 nmeros, correspondiente a los siguientes valores:

- U0: valor mnimo del dominio en la direccin U (base para el dominio, en otras palabras). Por defecto, 0.

- U1: valor mximo del dominio en la direccin U (final del dominio en esta direccin).

- V0: valor mnimo del dominio en la direccin V (base para el otro dominio). Por defecto, 0.

- V1: valor mximo del dominio en la direccin V (final del dominio en la otra direccin).

En el segundo caso, el componente devuelve nicamente 2 conjuntos de valores:

- U: dominio en la direccin U.

- V: dominio en la direccin V.

La ventaja que ofrece obtener los cuatro valores es que somos ms libres de jugar con ellos, para luego poder recrear
otro dominio modificado a partir de los valores que queramos de U y V. Esto es, dado un mximo y un mnimo, podemos crear
tantos valores intermedios como queramos y siguiendo el patrn deseado, sin que necesariamente haya de ser un patrn
homogneo con distancias iguales, por ejemplo.
II. UNA CUBIERTA COMPLEJA

1. La base de la cubierta: superficie y subsuperficies

La idea de la cubierta es sencilla: ser el repositorio de la representatividad del edificio. Lo que vamos a hacer es subdividir la superficie original que hemos creado en el captulo anterior en un nmero determinado de subdivisiones (que podr
controlarse paramtricamente) para luego modificar cada una de esas subsuperficies a nuestro antojo, creando patrones
ms o menos definidos o ms o menos complejos.

[ 31 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

El proceso ser el siguiente:


- Usar la superficie generada como base
- Modificar el dominio de la misma
- Obtener subsuperficies a partir de la superficie base y el dominio modificado


a. Usar la superficie generada como base

Si bien puedes enganchar directamente la superficie resultante del loft al componente de subdivisin, es posible que
quieras hacer esto de manera ms explcita usando un parmetro superficie que est conectado inalmbricamente a dicha
superficie, para ganar claridad en la definicin.

b. Modificar el dominio de la superficie base y crear las subsuperficies

Esta es realmente la parte ms interesante de nuestra actuacin por el momento. La figura 29 explica perfectamente
los pasos a seguir, que se describen a continuacin:

- Obtencin del dominio original con los valores mximo y mnimo para la creacin de un rango entre ellos.
Ve a Math>Domain>Domain2 Components (el ltimo de la lista) y aade el componente al lienzo de la definicin.

- Asignacin de un rango de divisiones independientes para los dominios U y V mediante grficas
Crea dos sliders con nmeros naturales. stos servirn para definir cuntas divisiones tendrn los rangos que
asignaremos a U y V.
A continuacin crea dos componentes Range (Rango), que encontrars en Sets>Sequence>Range. Estos
componentes crean un conjunto de valores entre dos dados con un nmero de pasos (por ejemplo, crea un
conjunto de valores ente 0 y 1 con 10 pasos intermedios: 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0). Como
habrs imaginado, conecta los sliders que has creado a dichos componentes y vers que el rango resulta en
n+1 valores a partir de un slider de n valores.
Context menu
(15 values for input = 14)

Domain
(by default from 0.0 to 1.0)

Number of steps
for V domain division

Range

Graph

[Fig 28. Componentes Domain, Range y Graph]

Finalmente crea unas grficas en Params>Input>Graph Mapper y conecta el output del rango a cada una de
ellas de manera independiente (es decir, duplica el resultado para U y V).

- Ajuste de las grficas en funcin de los criterios de diseo deseados.

Con el botn derecho puedes seleccionar el tipo de grfico que quieras (edita el componente), prueba varios
tipos y observa el resultado.

- Creacin del dominios bidimensional a partir de los valores U0 y V0 iniciales y los obtenidos de los rangos para U y
V. Para superficies nos interesa tener un rango de valores combinado para las dos direcciones principales de la misma, que
hemos denominado U y V. Para ello, hemos de combinar los dominios lineales que vamos a crear independientemente en

[ 32 ]

[ 33 ]

Number of
subdivisions
*keep 1

List of
subsurfaces

Original surfaces domain


(need max values, min vals = 0)

Surface
divide

Subdivisions in
U\V directions

uv
parameters

Normal
vectors

[Fig 30. Roof Triangulation]

Get list

APPLY DOMAIN

Order list

Srf4Pt

Create
Domain Length Cull 2D Dom

[Fig 29. Subdivide Surface con rangos y modificadores de grficas]


Points on
Flatten
New
surface
point list
point lists
4 items
each

Shift list

List
Shift by 1

V DOMAIN

U DOMAIN

Multiply
by max

Range
Maximum value V1

Graph
Subdivisions Range modifiers

Range domain
(default 0 to 1.0)
Number of values

Exp-type graph

RANGE DOMAIN

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER

ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

uno slo. Sigue los pasos a continuacin:


Conecta el resultado de la grfica al input B de un componente de multiplicacin (encuntralo en
Math>Operators>Multiplication). Conecta el mximo del dominio U o V en el input A. Como resultado obtendrs un rango ente 0.0 y el mximo que has introducido en el parmetro A.
A continuacin hemos de crear un dominio lineal, para lo que necesitamos dos listas. La primera lista es el rango que acabamos de obtener de la multiplicacin. La segunda debe contener los mismos valores desplazados,
para poder tener, al combinarlos, una lista del tipo 0.0 to 0.1086, 0.186 to 0.166... que corresponden a diferentes
puntos de la superficie. Para ello, utiliza un componente Shift (recuerda, encuntralo en Sets>List>Shift List) y
asigna el integer 1 a la entrada S.
Crea el dominio a partir de las dos listas. Conecta la original a A y la recin creada (Shifted List) a B. Vers que
el ltimo item de la lista contiene un intervalo no vlido, ya los extremos del mismo coinciden. Para evitar errores, has de eliminar este ltimo item de la lista, lo que puedes conseguir mediante el comando CullN.

- Asignacin de este conjunto de dominios 2D al componente de subsuperficie para que cree el nmero de subdivisiones apropiado.
Asigna el ndice del ltimo item de la lista a CullN y ya tienes la lista preparada para ser usada por el 2D Domain
(que encontrars en Math>Domain>Domain2 -create a 2D Domain from 2 linear domains).

- Conecta finalmente el dominio creado al componente SubSrf para obtener, de la superficie original, las subsuperficies
correspondientes. Vamos a usar ahora cada una de estas (sub)superficies para popular la original con componentes.

Puedes ver la definicin detallada de estos ltimos pasos en la figura 31.

2. Usar subsuperficies para popular un modelo con componentes de diseo.

Lo que necesitamos ahora es extraer los 4 puntos de los vrtices de las subsuperficies creadas para crear una triangulacin. De esta manera, si los puntos son, por ejemplo, el 0, 1, 2, y 3, podemos crear 2 tringulos con los puntos 0, 1, y 2 por un
lado, y 0, 2, y 3 por otro. Al crear superficies en dichos tringulos, usaremos el componente Srf4Pt, o creear superficie a partir
de 4 puntos. Recuerda que, para que la superficie o polilnea correspondiente est cerrada, el primer punto y el ltimo han de
coincidir, por lo que deberemos alimentar los puntos de la siguiente manera: 0,1,2,0 para el primer tringulo y 0, 2, 3, 0 para
el segundo.

Una vez hayamos triangulado extraeremos las aristas de las superficies y procederemos a modificar la superficie para
que sea ms compleja. Puedes ver la definicin exacta en la figura 30. Los pasos que debes seguir son los siguientes:

- Utilizacin del componente SDivide (Surface>Util>Divide Surface) para la obtencin de los puntos sobre la superficie.
Vers que la lista que resulta de dicho componente es un poco confusa, por lo que es recomendable aplanarla con el componente Sets>List>Flatten List y proceder a ordenarla a nuestro gusto.

- Crear una lista ordenada de puntos:
Conecta el resultado del flatten a un componente de Partition, que crea sublistas a partir de una lista inicial
dividindola cada n componentes. En nuestro caso, como queremos tener 4 puntos en cada elemento de la
lista, crearemos una particin cada 4 elementos. De este modo, obtendremos tantas listas como elementos
tenamos entre 4 (o lo que es lo mismo, el mismo nmero que subsuperficies).
La lista estar entonces ordenada y podemos proceder a ordenar los puntos para los tringulos.

- Ordenar los puntos para crear la triangulacin:
Sigue exactamente los pasos que encuentras en la figura 30, es ms sencillo de lo que parece a simple vista. De
lo que se trata es de poder identificar cada uno de los puntos y de introducirlos en el orden correcto. Si te fijas,
vers que los inputs A y D (primer y ltimo punto) del componente Srf4Pt son iguales, y corresponden al punto
0 (primer punto de cada item de las listas). Los puntos B y C necesitan retocarse mediante un Shift para que
correspondan a los puntos 1 y 2 (o segundo y tercero de las listas). As, los inputs del primer componente A, B,
C, y D, corresponden a los 0, 1, 2, y 3. De igual modo , los puntos A, B, C, y D del segundo componente corresponden a 0, 2, 3, y 0.

Esto es todo lo que necesitas para triangular cualquier superficie.

3. Usar los tringulos para crear componentes.

Recuerda que hemos creado tringulos a partir de superficies de cuatro puntos. Esto lo hacemos de esta manera para
disponer de superficies cerradas, siempre ms estables a nivel geomtrico. A continuacin obtendremos los componentes
siguiendo el protocolo que se indica:

[ 34 ]

[ 35 ]

Graph values
(from 0.0 to 1.0)

Original surfaces domain


(need max values, min vals = 0)

Value range
(0.0 to 1.0)

Shift list

Shifted list

[Fig 31. Creacin del dominio bidimensional]

Max domain
value

Range from 0.0 to


max domain value

Shift list by 1

Result
(range from 0.0 to
max domain value)

List

Domain

Linear domain 1
Linear domain 2

Index of last
item in list

2D
domain

Culled Domain List


*erased last interval

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER

ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

- Duplicar los bordes de las superficies


- Unir los bordes duplicados para crear un tringulo
- Escalar o crear un offset hacia dentro del tringulo para crear otro interior
- Crear una superficie entre ambos
- Extruir la superficie como slido con una superficie deseada


a. Duplicando los bordes

Usa el comando Edges, que extrae las lneas de borde (las aristas) de un objeto BREP cualquiera. En el ejemplo vers
que lo hemos hecho con la pareja de listas de superficies obtenidas de la triangulacin. Como resultado obtendrs una lista
de curvas que a continuacin hemos de tratar para obtener tringulos cerrados.

b. Unir los bordes duplicados

Para unir los bordes, toma la lista de Naked Edges de los resultados del comando Edges anterior. Usa Flatten sobre
ella para obtener una lista unidimensional con todos los bordes. Deberas obtener una lista con exactamente el triple de
objetos de la lista inicial (es decir, tres aristas por cada rectngulo). Al alisar la lista, todos los bordes estn indeferenciados
en la nueva lista, pero en orden. Es decir, cada grupo de tres bordes consecutivos pertenece a un mismo tringulo, por lo que
podemos formar sublistas de 3 elementos que correspondan a cada uno de los 3 bordes de cada tringulo. Para ello, usa el
comando Partition de lista con la resultante del Flatten e introduce un valor de 3 en el input S (Size of List, o tamao de la
lista). Obtendrs un conjunto de sublistas (tantas como tringulos) que contienen cada una los tes bordes que necesitamos.
A continuacin une dichas aristas conectando el output C del comando Partition con el input C del Join. Obtendrs la lista de
curvas unidas y cerradas.

c. Escalar el borde para obtener el hueco interior del componente

Como en ocasiones interiores, podemos escalar cada una de las curvas obtenidas de manera uniforme para crear huecos en nuestros componentes que nos sirvan para simular una estructura de celosa tridimenional, barras, o cualquier otro
tipo de configuracin. Para ello, sigue los pasos que ya conoces:

- Obtn el centroide de masas de la curva exterior

- Crea un slider para el factor de escala que vare entre algo ms de 0 y algo menos de 1 (0 podra dar error y 1 dejara
la curva sin modificar, lo que tambin podra generar un error).

- Conecta las curvas, centroides, y factor de escala al componente Scale


Puedes adems introducir variantes de diseo mediante la modificacin de estas curvasvariando su geometra de diferentes maneras, incluyendo:

- Su grado

- La inclusin de fillets para redondear los bordes

- Otras que puedas pensar.

En este caso, hemos utilizado el comando fillet con un slider para modificar las curvas interiores. Tambin puedes utilizar cualquier otro tipo de factores externos a la geometra (que veremos ms adelante) o internos a ella, tales como

- La curvatura de la superficie original (a menor curvatura mayores esfuerzos),

- La posicin relativa de las piezas,

- El ngulo con la vertical,
o cualquier otro parmetro que ayude a que tu diseo sea ms inteligente.


d. Crear una superficie entre ambos

Una vez ms estamos recurriendo a partes y componentes que ya nos son conocidos. Para crear la superficie entre las
curvas, y al haber sido las primeras escaladas uniformemente (lo que nos garantiza que son coplanares), podemos emplear
el comando Planar, al que asignaremos tanto las curvas obtenidas inicialmente de Join como las que acabamos de crear
mediante Fillet (o el mtodo que hayas estimado oportuno).


e. Extruir la superficie

Extruir la superficie requiere que definamos una serie de parmetros:

- En primer lugar, el vector director de la extrusin (que nos dar la direccin, el sentido y la magnitud de la misma). Po-

[ 36 ]

[ 37 ]

Edges

Bezier-type graph

Non manifold Edges

Naked Edges
Interior Edges

Graph
modifiers

OBTAIN JOINED EDGES - CLOSED LOOPS

Down-scale curve
(obtain inner curve)

Srf Closest
Point

Create in-between
planar surface

OFFSET COMPONENTS

[Fig 32. Creacin del dominio bidimensional]

Obtain curve centroid

CREATE INNER CURVE

uv Parameters

CALCULATE EXTRUSION OPTIONS

Extrude

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER

ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

demos obtenerlo directamente evaluando la superficie en un punto dado. Para ello, lo ms sencillo es calcular el punto ms
cercano de la superficie al centroide de masas de cada uno de nuestros componentes, y hallar sus coordenadas en espacio
UV (R2).

[Fig 33. Surface CP Menu]


Para ello, usa el comando Surface>Analysis>Surface Closest Point (Surface CP). Vers que el componente tiene dos
inputs, que corresponden al punto de referencia P y a la superficie base S. Los outputs que genera son los siguientes:

P: Closest Point o punto ms cercano sobre la superficie

uvP: coordenadas UV del punto, el output que necesitamos

D: distancia ente el punto seleccionado y la superficie de referencia

Podramos pensar que lo que necesitamos es el punto ms cercano. Sin embargo, y puesto que estamos tratando con
vectores, necesitamos las coordenadas del punto en R2 para posteriormente evaluar la superficie con estos parmetros y
obtener la normal a la superficie en cada punto.

[Fig 34. Evaluate Surface Menu]


El comando Eval (Surface>Analysis>Evaluate Surface) toma una superficie, una pareja de coordenadas (u,v) y devuelve lo siguiente:

[ 38 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS


Punto: el punto (coordenadas x,y,z) en las coordenadas u y v dadas.

Normal: el vector normal a la superficie en dicho punto. Por defecto, el vector es unitario.

Frame: en ese punto, devuelve el plano tangente a la superficie.

De este modo, extraemos la normal que usaremos como base a la extrusin, con la dimensin por defecto (1 unidad) o
modificada por medio de algn tipo de escala o factor.

- En segundo lugar, debemos definir la dimensin de la extrusin. Para escalar un vector usa el comando Amplitude,
que encontrars en Vector>Vector>Amplitude. El mecanismo del componente es extremadamente sencillo y necesitas nicamente el vector base y el factor de escala. Ya hemos empleado sliders para escalar geometra en ocasiones anteriores, as
que no vamos a detenernos en ello.

En esta etapa, deberas tener un modelo semejante al de la figura 35

[Fig 35. Modelo acabado con cubierta]

III. PERFECCIONANDO EL GRADERO



Probemos a continuacin a perfeccionar el gradero. Si hasta ahora ste lo habamos representado nicamente con
una superficie inclinada, es posible crear automticamente los asientos o graderos en funcin de su altura, siguiendo la configuracin base de la superficie que hemos generado originariamente. Para ello crearemos una serie de curvas de contorno
con unos intervalos definidos (1 metro, por ejemplo), las extruiremos para crear un segundo grupo, y uniremos mediante
superficies las del primer y segundo grupo. Este proceso se puede repetir tantas veces como tramos diferentes de galera
tengamos, de manera que nicamente lo explicaremos y disearemos una vez.

Puedes ver una descripcin diagramtica de la definicin en la figura 36 a continuacin.


1. Crear las lneas de contorno.

Para crear las lneas de contorno usaremos el componente Intersect>Mathematical>Contour. Arrastra el componente
al lienzo y vers que precisa de una gran cantidad de inputs, que explicamos a continuacin:

[ 39 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS


- S (Shape): malla o BREP de base. La superficie del loft inicial.

- P (Plane): plano base para comenzar los contornos. El plano base el ms bajo posible, por tanto lo hallaremos con el
componente del rea de la curva base (la del campo)
- N (Normal): direccin normal al desplazamiento del plano de contorno. stos sern perpendiculares al vector. El vector ser vertical inicialmente.

- D (Distancia): distancia de salto entre plano y plano para los contornos. Esta distancia la controlaremos por un slider,
pero para comenzar puede ser 1 unidad.

Input geometry
(surface)

Loft Original
(previsualizacin)

Contours
from Loft Surface

Moved contours

Vertical offset
lines (move)

Contour
Lines

Final geometry
(loft between contour
and moved curves)

Final loft
surface

[Fig 36. Proceso de modelado del gradero]


Observa la definicin de la figura 37 para comprender el proceso completo. Vers que en la ltima fase se hace preciso
ordenar las listas de las curvas con las que tratamos para su correcta aceptacin por el comando Loft. Este extremos lo explicaremos ms adelante con cautela.

Define los inputs del componente Contour con los siguientes valores:
Shape: el loft original, la superficie con la que hemos trabajado hasta ahora.
Plane: el plano base de la curva que hallamos partir del centroide. Define el plano con el origen en el centroide de masas de la curva (ya calculado previamente), el eje X universal y el eje Y universal. Los ejes puedes
extraerlos de Vector>Vector>UnitX y Vector>Vector>UnitY. Conecta dichos componentes al input del plano.
Normal: un eje vertical y hacia arriba, es decir, el vector Z
Distancia: en este caso crearemos un slider, pero podemos trabajar con 1 unidad (es decir, los contornos estarn separados entre s 1 metro en vertical)


2. Copia las lneas de contorno

Este paso es muy sencillo. Mueve las lneas de contorno hacia arriba la misma distancia que hayas usado para crear
los mismos contornos, de manera que la primera lnea copiada coincida en altura con la segunda del contorno. Como ves,
cuando vayamos a crear la nueva superficie, deberemos estudiar cuidadosamente cmo ordenamos las listas de curvas.

[ 40 ]

[ 41 ]

Normal
Plane Vector

Origin
X Axis vector
Y Axis vector

Input
curves

CREATE CONTOUR LINES

Contour

Weaving pattern
List1
List2

[Fig 37. Creacin de las curvas de contorno y el loft definitivo para los graderos]

Contour
Distance

Loft surface
Base Plane
Normal vector
Distance

Vertical vector
(horizontal planes)

Contour

MOVE CONTOUR LINES


LOFT WEAVED CURVE LIST

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER

ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

3. Ordena las listas de curvas


Para crear el loft, ten en cuenta el orden en el que vamos a introducir las curvas. ste debera ser el siguiente:
- Primera curva de contorno (lista 1)
- Primera curva movida (lista 2)
- Segunda curva contorno...


Como ves, hemos de combinar los elementos de las listas uno a uno, por lo que se hace imprescindible el uso de Weave.
Este componente, que encuentras en Sets>List>Weave, te permite definir un patrn de hilado ente dos listas. En este caso,
deberemos definir cuntos elementos y en qu orden (de cada lista) se van a introducir (aunque es el comportamiento por
defecto del componente hacer uno a uno).

[Fig 38. Definicin del patrn de weave]


Haz click con el botn derecho sobre el componente para abrir el panel contextual. En el input P, dentro de la opcin
Set Multiple Integers, define los siguientes: 0,1. Estos corresponden a la lista 0 y a la lista 1. De esta manera, el componente
analizar las listas y coger el primer elemento de la primera y luego el primer elemento de la segunda, y en se orden los
insertrar en la nueva lista. Al llegar al final de la definicin del patrn, volver a hacer los mismo con el siguiente elemento
de las lista hasta que las dos listas se acaben.

Una vez hayas hecho esto con las listas, obtendrs un nica lista refundida de las dos anteriores, y que podrs pasar
directamente al comando loft. El resultado debera ser como el de la fase 4 de la figura 36. Repite esta operacin con tantos
tramos de graderos tengas, e intenta crear tantos parmetros como sean necesarios para tener un control apropiado sobre
el modelo. Recuerda que la definicin correspondiente a este modelo es una definicin simplificada, y que por tanto es muy
mejorable. Algunas opciones seran:

- Introducir atractores para generar variabilidad externa a la definicin geomtrica.

- Modificar las aperturas de los huecos en funcin de factores intrnsecos al objeto.

- Ver posibilidades de scripting para fabricacin, lo que implicara un cambio radical del modelo.

[ 42 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

[ 43 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

CREACIN DE GEOMETRAS LIBRES COMPLEJAS


CON CRITERIOS ESTTICOS

[ 44 ]

[ 45 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

I. OBJETIVO

1. Topologa

Esta parte del manual se centra en generacin de geometra compleja y su modificacin a partir de controles externos
interactivos. Dichos controles son externos a la volumetra propia del edificio o modelo y pueden considerarse modificadores
del mismo, condicionantes que influyen en el comportamiento del mismo. De este modo, soleamiento, vistas, o sencillamente cuestiones estticas y de voluntad de diseo, pueden asemejarse a limitaciones geomtricas. De este modo, un punto
puede significar un rayo de luz, o un vector una direccin de apertura de lamas o semejante.

2. Descripcin del marco proyectual

Debes haber manejado Grasshopper con cierta soltura antes de comenzar a modelar este tipo de geometras. Trabajaremos con una superficie sencilla a la que aplicaremos un algoritmo de triangulacin y posteriores modificaciones para
generar volumen en componentes. Posteriormente, modificaremos la geometra ya creada con una serie de atractores.
II. TRABAJAR CON EL ALGORITMO VORONOI SOBRE DIFERENTES SUPERFICIES

1. Breve descripcin del algoritmo

Imagina que tienes un mapa de una ciudad en donde haya una cantidad n determinada de repetidores mviles, por
ejemplo. Un telfono localizado en cualquier punto de la ciudad trata siempre de conectar con los postes ms cercanos, por
lo que la ciudad se divide en zonas, en donde cada una de ellas tenga exactamente la cobertura de uno y slo uno de esos
repetidores y se encuentre lo ms cerca posible del mismo sin que exista ningn otro repetidor ms cercano. La resolucin
de este particionado zonal de un territorio definido se dispersa mediante el diagrama de Voronoi, y se resuelve matemticamente mediante una ecuacin de tipo n*(log n) para permutar varios algoritmos; sin embargo, no vamos a entrar en el algoritmo en tanta profundidad. Por otro lado, el Voronoi puede resolverse adems por medio de teoremas geomtricos como la
triangulacin Delaunay.

Puedes ver un grfico resuelto con el algoritmo en la figura 39. Vers que hay una serie de puntos y lneas. Los puntos
ms oscuros corresponden a los puntos de los repetidores, en el caso anterior, mientras que los grises corresponden a las
celdas que aqullos definen. De este modo,. se crean paquetes o zonas que corresponden a cada uno de los puntos dentro
de un espacio finito y limitado. Como puedes observar, todo lo que necesitamos es un conjunto de puntos y un espacio o
marco que los contenga. En nuestro caso, aplicaremos adems esta solucin al espacio bidimensional de una superficie, ya
que stas pueden definirse en espacio R2, al igual que la solucin plana que estamos tratando en el ejemplo.

[Fig 39. Voronoi en plano, en gris las celdas o espacios contenedores]

[ 46 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS


2. Aplicando el algoritmo en Grasshopper (mtodo I)

En este primer caso vamos a trabajar con el algoritmo de una mare muy especfica: dibujaremos el algoritmo en 2D,
crearemos la solucin tridimensional a partir de la caja contenedora de lasuperficie base; calcularemos la intereseccin ente
la solucin Voronoi y nuestra superficie, y crearemos una malla a partir de dicha interseccin. Otra opcin es, sin lugar a duda,
mapear la solucin bidimensional plana directamente sobre una superficie. Tambin estudiaremos esta opcin. En funcin
del tipo de superficie que tengas, es posible que quieras usar uno u otro mtodos.

En cualquiera de los casos, ya existe un componente que resuelve Voronoi en Grasshopper, por lo que no es necesario
que intentes crearlo t. Como en la mayora de los casos, basta con emplear de manera adecuada los componentes existentes.

a. Crea el setup para la solucin Voronoi

Recuerda, todo lo que necesitamos es una superficie y una nube de puntos. Para la superficie puedes crear una desde
el principio en Rhino o seleccionar, por ejemplo, la cubierta del estadio que acabamos de disear en el apartado anterior. La
nube de puntos, en este caso, la crearemos directamente dentro de la interfaz de Grasshopper mediante la poblacin de
una superficie, si bien se podra intentar controlar manualmente.

- Para crear una distribucin aleatoria de puntos sobre una superficie, hallaremos primero el dominio de la superficie, y
luego encontraremos (dentro de dichos rangos o dominios) tantos nmeros aleatorios como necesitemos, para combinarlos
en parejas que resulten finalmente en parmetros U y V. As pues:
Halla el dominio de la superficie mediante el comando Domain. Encuentra el componente en
Maths>Domain>Domain2 Components. Como probablemente sepas, el comando precisa una superficie u objeto con un dominio bidimensional y lo descompone en sus subdominios U y V, los cuales, a su vez, son rangos
de nmeros que oscilan ente 0 y uno superior. Usaremos el valor de dichos nmeros para calcular otros aleatorios que pertenezcan a dicho dominio.

[Fig 40.Componente Domain2Components]

Genera nmeros aleatorios mediante el comando Sets>Sequence>Random. De nuevo, este componente precisa un dominio para el rango numrico (R), la cantidad de nmeros aleatorios a generar (N), y una semilla
(Seed, S) para la generacin del nmero aleatorio. Crea dos contenedores separados para U y V, y conctalos
de forma independiente. Asegrate de que tanto uno como otro componente generen el mismo nmero de

[ 47 ]

Reduce rnd
Populate
Domain

OPTION 2

OPTION 1

Randomize

Srf
3D Vor

4
2

Remove
duplicated
data

strt pt

(n-1)th mesh

resulting mesh
*single face

nth mesh

Average to
obtain scale
center

original segment

Obtain vertices
on surface

Evaluate Voronoi Intersect

RND SRF POPULATION

U domain
V domain

BASE GEOMETRY

ORDER POINTS

1
3

Meshes Join

Vertices from
segments

Face order
Mesh list
(quads)

resulting mesh
*all faces

vertex order
*in QUAD
scaled segment

end pt

Shift lists

Other segments
end/start points

Segments
end/start points

CREATE MESH

[Fig 41. Definicin de Voronoi para crear una malla a partir de una distribucin de nube de puntos sobre una superficie (mostrando dos opciones)]

OBTAIN BBOX

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER

ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

[ 48 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

valores y finalmente establece valores diferentes para las semillas de ambos componentes (por ejemplo, 0 y 1).
Una vez genrados los valores aleatorios, debemos combinarlos en un nico valor del dominio. Esto puede
hacerse de mltiples maneras. Sin embargo, para demostrar la flexibilidad de los componentes de Grasshopper, lo haremos utilizando un a priori extrao componente al efecto, el Vector XYZ, que crea un vector (esto es,
una trada de valores) a partir de tres componentes o valores por separado (para los que utilizaremos el rango
obtenido para U, el rango obtenido para V, y 0).

Amount random
numbers

[Fig 42.Obteniendo los valores aleatorios para U y V. Combinacin para su uso por el comando Eval]

[Fig 43.Menu Vector>Vector>VectorXYZ]

Conecta el output del componente VectorXYZ (Vec) al input uv del componente Surface>Analysis>Evaluate
Surface para obtener los puntos correspondientes a las coordenadas (u,v) dadas por los nmeros aleatorios. En
este caso, obtendrs la geometra en s.

[ 49 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS


b. Calcula la solucin Voronoi

Una vez hemos construido los puntos sobre la superficie con el dominio dado, podemos proceder al clculo de la solucin Voronoi tridimensional que nos servir para fijar la geometra final sobre la cubierta. Es conveniente recordar que en este
caso lo haremos por medio de la interseccin del clculo de la solucin Vornoi 3D con la superficie de la cubierta, tal como
puedes ver en la figura 41.
Conecta los puntos recin obtenidos al input P del componente Mesh>Triangulation>Voronoi 3D.
Conecta la caja opcional del Bounding Box de la superficie al input B (Boundary) del componente Voronoi 3D,
lo que le dar un entorno limitado de trabajo.

La solucin se computar automticamente, y deber tener un aspecto semjante al de la figura 44, que encuentras
a continuacin. De todas maneras, no se trata, como hemos dicho, de conocer a fondo el algoritmo, sino de poder usar las
herramientas necesarias para trabajar con el diseo que ms nos convenga en cada momento.

[Fig 44. 3D Voronoi: BBox, Solucin, Interseccin]

[ 50 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS


c. Crea la malla

A continuacin deberemos descomponer la geometra en segmentos, para posteriormente escalar dichos segmentos
y obtener as 4 puntos: el punto inicial y final de cada uno de ellos. Estos 4 puntos definirn los vrtices de las mallas, que
sern todas quads (a posteriori puede triangularse la malla). Dichas mallas tendrn nicamente una cara. De este modo, y
una vez hemos creado cada una de las mallas, podermos unirlas todas en una nica malla, cuyas caras sern cada una de las
mallas que hemos creado hasta el momento. As pues, el orden en el que introduzcamos las mallas iniciales es totalmente
indiferente, ya que en el ltimo paso las uniremos en una nica malla. Ten la precaucin de unificar las normales de la malla
antes de intentar modificarla, extruirla, o llevar a cabo cualquier otra operacin sobre ella.

- Para descomponer la geometra en segmentos, emplea el componente Explode. De esta manera obtendremos, por
un lado, los segmentos de la interseccin, y los puntos sobre la superficie. En este caso, vamos a emplear directamente los
vrtices sobre la superficie, ya que vienen ordenados por polgonos o reas, tal como puedes ver si conectas el output a un
panel de texto.

- Escalaremos los vrtices ordenadamente usando como centro el centro de masas de los polgonos. Para ello, y ya que
estamos tratando con puntos, usaremos el componente Maths>Util>Average para hallar la media de las coordenadas de
todos los puntos. Emplea el factor de escala que estimes oportuno, o algn tipo de parmetro en funcin del rea de cada
zona, por ejemplo.

- Escalados los vrtices hemos de ordenarlos de manera que generen una cara. Con los puntos inicial (0) y final del
segmento original (1) e inicial (2) y final (3) del segmento escalado definiremos dicha cara. Vers que realmente es en el componente Mesh>Primitive>Mesh Quad donde se ordenan dichos puntos, correspondiendo la siguiente distribucin:

A: 0

B: 1

C: 3

D: 2

De manera que queden correctamente ordenados, tal como puedes ver en la figura 41 de pginas anteriores.

- Hecho esto, conecta los vrtices al componente Merge, de manera que queden como una lista nica.

- Finalmente, asocia los vrtices y el output del componente Quad al componente Mesh, que se encarga de crear mallas
independientes en funcin de los vrtices dados y el orden en que se leen. Si as lo precisas, puedes unir todas las mallas en
una nica con el comando MeshJoin que encontrars en Mesh>Util.

[Fig 45. Solucin de la malla para el Voronoi obtenido]

[ 51 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS


d. Posibles extensiones

Para terminar, puedes probar a extender el ejercicio probando alguna de las siguientes variantes:

Escalar los huecos en funcin de algn parmetro geomtrico

Refinar la malla una vez creada

Extrusionar la malla para obtener diferentes efectos

Aplicar el comando smooth sobre la malla terminada (y extruida) para crar un efecto de suavidad

Crea huecos curvos a partir de los vrtices

En definitiva, explora un poco ms all las posibilidades que ofrece el software, y trata de aplicar una imprompta personal que aleje el diseo de la estndar y directa aplicacin de funciones predefinidas. Puedes obtener resultados semejarntes
al de la figura 46. En este caso, se han unificado todas las normales de la malla, extruido una distancia determinada, y aplicado
el comando Smooth con un valor de suavizado de 2. Intenta crear tus propios efectos.

[Fig 46. Malla modificada]

[ 52 ]

INSTITUTO ARNAIZ
DISEO PARAMTRICO EXPLCITO CON GRASSHOPPER
ADOLFO NADAL SERRANO MAS. ARCHITECT - ARCHI [O] LOGICS

[ 53 ]

Vous aimerez peut-être aussi