Issuu on Google+

CoDeLab Computational Design Laboratory

Andrea Buttarini


Computational Design Laboratory


ADDA Master in Advanced Design and Digital Architecture Computational Design Laboratory Marzo - Julio 2010


Proyecto de Tesis Andrea Buttarini Director ADDA Jordi Truco Arquitecte llicenciat per l’ETSAB. Llicencietura MArch Emergent Technologies and Design en la Architectural Association. Professor Escola Tecnica Superior d’Arquitectura de la Universitat Internacional de Catalunya. Professor de pregrau a Elisava. Profesorado ADDA Jordi Truco / HYBRIDa Marco Verde / Hyperbody TU Delft Luis Fraguada / LaN Marcel Bilurbina / ELISAVA Roger Paez / AiB Pau De Sola-Morales / URL Sylvia Felipe / HYBRIDa Juan P. Quintero / MEDIODesign Isaac Salom / SALOMSTUDIO Lluis Ortega / F451 Neil Leach / USC Andrew Kudless / MatSys

CONFERENCIAS ADDA Neil Leach / Swarm Architecture Pau De Sola-Morales / Genetic Vs Generative Lluis Ortega / Digital Society Roger Paez / Operative Cartographies Andrew Kudless / MatSys Luis Fraguada / Parametric Urbanism Jordi Truco / Animate Form Marco Verde / MC1 Hyperbody Recearch Juan Pablo Quintero / Fabrication Marcel Bilurbina / Processing Inteligent Patterns Isaac Salom / Visual Techniques AGRADECIMIENTOS Jordi Truco Marilia Coutinho Carolina Figueiredo DISEÑO Y MAQUETACIÓN Andrea Buttarini DOCUMENTACIÓN GRÁFICA Andrea Buttarini Marilia Coutinho Carolina Figueiredo TEXTOS Andrea Buttarini impresión AGE srl / Urbino - Italia


Introducción 8

Introducción del Curso / Jordi

Design Studio, Intelligent Patterns

Truco 9

Genético Vs Generativo /

Andrea Buttarini

24 24

Estudio del Sitio y de Flujos Plaza Lesseps

9 Generativo

28 Estudio Flujos

13 Genético y Teoría de la

39

Complejidad

Escenarios / Processing

39 Escenario Animado, Estudios

17

Nuevas Perspectivas

Previos

19

Nuevos Propósitos

41 Escenario Autoregulado 52 Escenario Autogenerado 58

Estudio Morfologico

68

Morfología Final

58

Primeras Morfologías


Taller de Tooling

Proyecto 118 Introducción

78 Introducción

119 Desarrollo Proyecto

79

Desarrollo Maqueta CNC

119 Replanteo de Datos

Programación y Producción CNC

124 Lógica de Ocupación del Espacio

98

Mecanizado CNC

132 Transición del Sistema-Entorno

79

107 Montaje

138 Usos, Programas y Soluciones 142 Distribución de Espacios Interiores 148 Rendering 156 Maqueta

156 Definición Digital 162 Nesting 166 Montaje 170 Maqueta Final


Introducci贸n


Introducción del Curso JORDI TRUCO

Ya es un hecho que la irrupción de la comutación en el mundo del diseño ha marcado un punto y aparte definitivo. El ordenador nos abre una lógica propia y nos permite no sólo operar de forma óptima, sino también entrar en logicas nuevas. Nos permite investigar, experimentar y crear sistemas que se auto organizan, sistemas emergentes, incluso sistemas que perciben su entorno y realizan acciones que incrementan sus posibilidades de éxito. En este Laboratorio nos centraremos en la relevancia que tienen los nuevos paradigmas digitales en el proceso de proyectar. El programa propone procesos de morfogénesis digital (diseño de formas y espacios) experimentando con programación y parametría. Con estas herramientas digitales estableceremos las propias gramáticas para crear sistemas formales, que se convertirán en espacios arquitectónicos y habitables. Las nuevas tecnologías nos acercan también a nuevos procesos de produccion (fabricación digital) que desembocan en formalizaciones de arquitectura no estándar. Los procesos de producción en serie ya no dependen de una repetición, sino de un sistema mecánico digital de reconfiguración permanente. Estudiaremos y aplicaremos todas estas técnicas de producción a nuestros proyectos y diseños. Ya lejos del movimiento moderno y del racionalismo arquitectónico más estricto, palabras como postmodernismo, deconstructivismo y minimalismo han dejado también de sonar contemporáneas y no se entrevé un estilo dominante en el horizonte que pueda tomarse como referencia; en cambio asistimos día a día a una clara revolución formal tanto en lo material como en lo virtual, claramente provocada por la era digital. Parece que si nos adentramos en el estudio y uso de estos nuevos medios digitales que se establecen desde mediados del siglo pasado, nos conducirán hacia aquello que podría ser la arquitectura contemporánea.

8


Genético Vs Generativo ANDREA BUTTARINI

Desde la disolución del Movimiento Moderno, que discurre de manera paralela a las revisiones historicistas de marcado contenido estilista, la teoría de la arquitectura ha mostrado un fuerte interés por las metodologías proyectuales positivistas. Por un lado, el estudio de la complejidad y de los sistemas dinámicos ha reinstaurado el interés por el estudio de las redes, los métodos “bottom-up”, los sistemas adaptativos, la genética y la creación automática de forma como fundamentos de una nueva generación de técnicas proyectuales. Por el otro, la universalización de las tecnologías digitales durante la última década ha hecho posible, de una vez por todas, hacer las comprobaciones necesarias y poner por escrito los resultados de todas estas investigaciones. Nuestra intención es centrar este seminario en el estudio de nuevas propuestas metodológicas que abran el campo de posibilidades del diseño y que establezcan puentes sólidos entre la teoría y la práctica, y que refrenden nuevas formas de proyectar. Este curso pretende dar una base teórica a las nuevas formas de generar arquitectura por ordenador, sea cual sea su metodología. En él se pretende dar una introducción a los ordenadores como sistemas formales y relacionar esta idea con las tendencias arquitectónicas del último medio siglo. El curso se basa en la lectura y discusión de una serie de textos representativos de algunas de estas ideas teóricas y de las tendencias arquitectónicas con las que están relacionados. La confusión entre los conceptos de genético y generativo, dos conceptos relacionados pero distintos, ejemplifica perfectamente el estanciamento de la metodología creativa arquitectónica, y en especial muestra las dificultades para superar los esquemas del paradigma de la Modernidad. Mediante una precisa e informada descripción del origen y significado de estos dos conceptos, y de su relación con la disciplina de la arquitectura, se pretende mostrar cuáles son los fundamentos de la arquitectura generativa, afincados en la tradición Moderna; y desde la interpretación de la genética, más ajustada a la realidad, se propone una posible agenda de la arquitectura para la conformación de la arquitectura al pensamiento contemporáneo. Pau de Sola-Morales Generativo Para tratar de colocar la palabra generativo (generar, dar vida a un individuo, procrear) dentro de la escena arquitectónica, tenemos que

9


empezar relacionarlo a la noción de sistema formal que se utiliza para proporcionar una definición rigurosa del concepto de demostración en lógica y en matemáticas. La noción de sistema formal corresponde a una formalización rigurosa y completa del concepto de sistema axiomático. En las ciencias formales de la lógica y las matemáticas, así como en otras disciplinas relacionadas, como son la informática, la teoría de la información, y la estadística, un sistema formal es una gramática formal usada para la modelización de diferentes propósitos. Llamamos formalización al acto de crear un sistema formal, con la que pretendemos capturar y abstraer la esencia de determinadas características del mundo real, en un modelo conceptual expresado en un determinado lenguaje formal. El término formalismo se utiliza, en ocasiones como sinónimo de sistema formal, para un determinado propósito. Un sistema formal consiste principalmente en lo siguiente: - Un conjunto finito de símbolos que pueden ser usados para la construcción de fórmulas, llamado el alfabeto o vocabulario. - Una gramática que especifica cuales secuencias finitas de estos símbolos son fórmulas bien formadas. - Un conjunto de axiomas que deben ser fórmulas bien formadas. - Un conjunto de reglas de inferencia. - Un conjunto de teoremas. A partir de estos elementos podemos generar las cadenas de nuestro sistema, que un algoritmo nos permite a su vez de transformar en otras cadenas. El algoritmo es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Su especificación más importante es en los términos de una máquina de Turing (MT). Una máquina de Turing (MT) es un modelo computacional que realiza una lectura/escritura de manera automática sobre una entrada llamada cinta, generando una salida en esta misma. Este modelo está formado por un alfabeto de entrada y uno de salida, un símbolo especial llamado blanco (normalmente b, Δ o 0), un conjunto de estados finitos y un conjunto de transiciones entre dichos estados. Su funcionamiento se basa en una función de transición, que recibe un estado inicial y una cadena de caracteres (la cinta, la cual puede ser infinita) pertenecientes al alfabeto de entrada. La MT no es más que lo que ahora llamamos programa, cualquier programa puede ser rastreado a una máquina de Turing. Si soy capaz de convertir una MT en símbolos, puedo crear una máquina de Turing universal (MTU) que es capaz de leer, interpretar, transformar y reproducir cada MT. Hoy en día la MTU la podemos llamar computador y es un sistema formal. Tomando el concepto de máquina de proceso universal, John von

10


Neumann desarrolló lo que se denomina arquitectura de von Neumann que es una familia de arquitecturas de computadoras que utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos (a diferencia de la arquitectura Harvard); la mayoría de computadoras modernas están basadas en esta arquitectura, aunque pueden incluir otros dispositivos adicionales, (por ejemplo, para gestionar las interrupciones de dispositivos externos). Pero para entender la lógica, el funcionamiento y porque nosotros utilizamos el ordenador de una manera determinada hoy en día, también hay que incluir en nuestra explicación el término gramática generativa que se refiere en lingüística a un conjunto de marcos teóricos para el estudio de la sintaxis de las lenguas. Una gramática generativa proporciona un conjunto de reglas o principios que predicen correctamente las combinaciones que aparecen en oraciones gramaticalmente correctas para una determinada lengua. Las ideas básicas de los modelos incluidos en esta corriente tienen su origen en la teoría estándar formulada por Noam Chomsky. El núcleo común de todos los modelos generativos sería el intentar diseñar un dispositivo formal que permita describir, analizar y especificar las oraciones de una lengua natural en forma simple, exhaustiva y general. Entonces un algoritmo que permite generar todas y sólo las frases gramaticales de un lenguaje. La teoría de Noam Chomsky fue muy influyente en muchas otras disciplinas, tales como en el nacimiento de la shape grammars por George Stiny que aplicó la idea de la gramática generativa a la forma, permitiendo experimentos de composición en arquitectura con la ventaja de llegar a una grande variedad de soluciones. Un ejemplo de este sistema de producción que puede generar formas geométricas a partir de primitivas simples, son los L-Systems o sistemas de Lindenmayer, una gramática formal (un conjunto de reglas y símbolos) principalmente utilizados para modelar el proceso de crecimiento de las plantas y la morfología de una variedad de organismos. Los L-Systems también pueden utilizarse para generar fractales auto-similares como los sistemas de función iterada. Así como la máquina de Turing, también los órdenes clásicos aspiraban a la mayor perfección, el orden arquitectónico hacia referencia al módulo (diámetro del fuste) y en el sistema derivado el todo estaba perfectamente en equilibrio, entonces en este enfoque se puede ver la primera idea de parámetria, la especificación de una variable de la cual depende el objeto final. En muchas arquitecturas, como los del Renacimiento por Leon Battista Alberti, Bramante y Sansovino, hay un uso libre de los órdenes y al mismo tiempo un equilibrio de proporciones de la construcción debido a un profundo conocimiento de la arquitectura del pasado (De Architectura de Vitruvio fue sin duda una de las principales fuentes de información). Así como Andrea Palladio, que en I quattro libri dell’architettura muestra las reglas sistemáticas para construir y ejemplos de proyectos, y en lugar de modelos para copiar, las tipologías arquitectónicas toman la

11


apariencia de esquemas compositivos donde se pueden experimentar infinitas variaciones, también Jean-Nicolas-Luis Durand, lejos de la idea que la arquitectura es un arte de la imitación, propone patrones de diseño más flexible como el método de composición basado en cuadrículas de referencia para los alzados y las secciones en las que colocar los elementos de la arquitectura, tales como paredes, pilares y columnas, generando edificios con diferentes usos, para llegar por último al Modulor de Le Corbusier que fue sin duda el emblema del módulo como forma generativa de la arquitectura racionalista. Este modo de entender el diseño que se podría llamar generativo, se estudió a fondo por Rudolf Wittkower y más tarde por Colin Rowe, quien explicacaron e interpretaron numerosos ejemplos de proyectos diseñados con reglas más o menos formales de Leon Battista Alberti, Palladio y Le Corbusier. Peter Eisenman, discípulo directo de Colin Rowe y que hacía parte de los arquitectos denominados New York Five (Peter Eisenman, Robert Graves, Charles Gwathmey, John Hejduk y Richard Meier), hizo uso del sistema formal de Noam Chomsky (gramáticas generativas) y del shape grammars de George Stiny con el abandono de los grandes ideales del racionalismo (ciudad ideal, etc.). Pero el trabajo de Eisenman inicia desde una perspectiva puramente racionalista, utiliza formas geométricas simples que se transforman y evolucionan por el uso de una gramática generativa. Empieza del significante, abandonando el significado (tal como lo fue para Le Corbusier una pared blanca), tratando de hacer una nueva arquitectura que no tiene ninguna relación con el racionalismo, la arquitectura entonces se fabrica, es un proceso, un proceso formal y lo importante es explicar este proceso. Con El fin del clásico: el fin del comienzo, el fin del fin Eisenman expliqua claramente que “mientras se pensaba que los origenes clásicos tenian sus raices en un orden divino o natural y se mantenía que los orígenes modernos derivaban su valor de la razon deductiva, los no-clásicos pueden ser estrictamente arbitrarios, simples puntos de partida sin valor.......Con el fin del fin, lo que antes era un proceso de composición o trasformación deja de ser una estrategia casual, un proceso de adición o sustración a partir de un origen. Como alternativa, el proceso se convierte en un proceso de modificación: en la invención de un proceso no-dialéctico, no-direccional y no-orientado hacia un objectivo.” En este contexto, la forma arquitectónica se revela como un espacio para la invención, en vez de ser la representación servil de otra arquitectura o un simple mecanismo practico. Peter Eisenman, aunque confunde la imagen del proceso con el proceso, sin embargo ha tenido el gran mérito de transformar la arquitectura de estática en dinámica. Con ello la arquitectura se convierte en neofunzionalista, es decir, en el resultado final se pueden leer los distintos pasos del proceso y por lo tanto Eisenman consigue poner los primeros pasos de la complejidad en el mundo de la arquitectura.

12


El ordenador influyó definitivamente en las nuevas generaciones de diseñadores, que han explotado el potencial de la computación para llegar a generar cada vez formas y arquitecturas más complejas y difícilmente pensable una vez. Arquitectos como Greg Lynn, Frank O. Gehry, Ben van Berkel (UN Studio), Lars Spuybroek (NOX), representan esta manera de acercarse a la arquitectura de formas organicistas (apodadas blobs). Para Greg Lynn, por ejemplo, el proyecto es un proceso que tiene el factor tiempo, y por lo tanto la forma no se crea, sino que se transforma. En su libro Animate Form, explica que “La animación es un término que difiere, pero a menudo se confunde con el movimiento. Mientras que el movimiento implica movimiento y acción, animación implica la evolución de una forma y las fuerzas que la formalizan; sugieren animalidad, animismo, crecimiento, actuación, vitalidad y virtualidad. Lo que hace tan problemática la animación para los arquitectos es que han mantenido una ética de la estática en su disciplina. Debido a su dedicación a la permanencia, la arquitectura es uno de los últimos modos de pensamiento basado en lo inerte. Más incluso que su papel tradicional de proporcionar vivienda, los arquitectos se espera que proporcionen cultura a trabes de lo inmóvil.” Las arquitecturas de Greg Lynn y Peter Eisenman tienen una parte de complejidad, el funcionalismo representa una solución a cada problema, pero no se pueden definir en pleno post-modernos. Es cierto que no estan interesados en la forma final, pero en realidad sus procesos pasan a través del uso de un profundo conocimiento de las herramientas para generar forma, no aportando al final una evolución positiva al diseño arquitectónico que pretende ser innovador. El ordenador es un producto del racionalismo, ¿entonces, cómo puede esta nueva forma de hacer arquitectura, que utiliza el ordenador de una manera predominante, separarse del modo de hacer arquitectura de los racionalistas? Problema abierto y pendiente, que pero lleva a la conclusión que la idea de Peter Eisenman de la búsqueda de un método para separarse definitivamente del pensamiento moderno, termina siendo una extensión del pensamiento racionalista ampliada por las nuevas herramientas digitales, como el computador. genético y teoría de la COMPLEJIDAD El significado de genético en biología (del griego antiguo ghenetikós “en relación con el nacimiento”, de ghénesis “génesis, origen”) se refiere al origen, la formación, la reproducción y la herencia biológica: características genéticas, en contraste a los caracteres determinados por el medio ambiente. Al tratar de comprender su significado en una posible visión arquitectónica debemos entenderlo y colocarlo dentro de la teoría de la complejidad. La mayoria de la gente tiende todavia a pensar que la forma biológica está definida por un detallado programa genético, y que toda la infor-

13


mación acerca de los procesos celulares es transmitida a la siguiente generación por medio del ADN cuando se divide la célula y su ADN es replicado. Una de las ideas fundamentales de la nueva manera de comprender la vida es la que las formas y las funciones biológicas no están determinadas, simplemente, por un programa genético, sino que son propiedades emergentes de la totalidad de la red epigenética. Para comprender esta emergencia necesitamos entender no sólo las estructuras genéticas y la bioquímica de la célula, sino también la compleja dinámica que se dearrolla cuando la red epigenética se enfrenta a las limitaciones fisicas y químicas de su entorno. La red epigenética es responsable de las modificaciones en la expresión de genes que no se encuentra en la secuencia del ADN y estas modificaciones son heredables. Una de las fuentes de mayores modificaciones de los genes es por el factor ambiental y puede afectar a uno o varios genes con múltiples funciones. Por medio de la regulación epigenética se puede observar como es la adaptación al medio ambiente dada por la plasticidad del genoma el cual tiene como resultado la formación de distintos fenotipos dependientes del medio ambiente al que sea expuesto el organismo. Estas modificaciones que se dan, presentan un alto grado de estabilidad y al ser heredables esto permite que se puedan mantener en un linaje celular por muchas generaciones. Cuando una célula se reproduce, no transmite únicamente sus genes, sino tambien sus membranas, sus enzimas y sus orgánulos, es decir, toda su red celular. La nueva célula no es producida a partir del ADN puro, sino de una continuación ininterrumpida de toda la red autopoiética (red de reacciones químicas que tienen lugar en el interior de la célula y que producen la totalidad de sus componentes, incluyendo los del perimetro que la limita). El ADN puro nunca es transmitido, porque los genes sólo pueden funcionar cuando están inmersos en la red epigenética. La célula es, por lo tanto, una red metabólica circundada por una membrana, autogenética y organizativamente cerrada; que es material y energéticamente abierta; que utiliza un flujo constante de materia y energía para producirse, regenerarse y perpetuarse a sí misma, y que funciona lejos del equilibrio, allí donde pueden emerger espontáneamente nuevas estructuras y nuevas formas de orden, lo cual conduce al desarrollo y a la evolución, dependiendo de un contexto (el sistema epigenético) no-lineal y complejo. El fenómeno de la vida tiene que ser considerado una propiedad del sistema como un todo, como explica Pier Luigi Luisi “La vida no puede ser adscrita a ningún componente molecular axclusivo (ni siquiera al ADN o al ARN), sino únicamente a la totalidad de la red metabólica circunscrita.” Antes de entrar en la discusión sobre las posibles aplicaciones en arquitectura, es importante hacer una descripción de los fundamentos teóricos generales de la complejidad, de la que podemos obtener los principios y modelos para el desarrollo de una nueva forma de pensar

14


y planear. Esta teoría se relaciona con los más diversos sectores y está presente en nuestra vida cotidiana arreglando la forma en que nos relacionamos con los demás y con el entorno en que vivimos. Sistemas Complejos El concepto básico de la teoría de la emergencia es que cualquier sistema complejo (sistema nervioso, los ecosistemas, la economía, las redes de computadoras) está formado por agentes independientes que interactuan, y con la adaptación y la evolución, desarrollan una forma de auto-organización que permite al sistema de adquirir propiedades colectivas que no son propios de los agentes individuales. La logica de la emergencia interpreta la organización como el emerger en un sistema de un comportamiento global que empieza de normas y reglas que establecen la relación entre los elementos que constituyen la parte inferior. Esta lógica se define bottom-up y es típico, por ejemplo, de las colonias de hormigas. En arquitectura se puede entender como el campo de las interrelaciones entre los seres humanos, los flujos de personas y cosas, sistemas materiales y entorno. La relación entre los habitantes y su hábitat se extiende más allá de los escenarios tradicionales para sugerir los límites de una ecología real. La Función de los Diferentes Sistemas En el interior, la teoría de sistemas se distinguen tres tipos: 1. Los sistemas simples: sistemas simples (por ejemplo, péndulo, billar) siguen un esquema causa effetto simple y lineal. 2. Sistemas complicados: Los sistemas complicados (tales como un reloj, un motor central de un coche) se componen de una serie de factores cuyo funcionamiento es predecible y organizable. 3. Los sistemas complejos: sistemas complejos (por ejemplo, el tiempo, los mercados bursátiles, el cerebro, el sistema económico) se caracterizan por una dinámica no-lineal, no son ni previsibles ni se pueden organizar y sobre todo no lo es su eficiencia. La estructura y el funcionamiento de los sistemas en gran medida influyen en sus efectos. Sistemas simples y complicados se pueden desglosar en unidades y se reconstituye en la estructura original que garanticen las operaciones. Los sistemas complejos no. En este sentido los sistemas complejos no pueden ser analizados o reducidos a microunità, porque la iteracion empuja los elementos e interconexiones continuas (aproximación y inducion). Sin embargo, los sistemas complejos tienen formas similares y patrones de desarrollo. Sistemas simples y complicados son capaces sólo de convertir la energía en otras formas, es decir, en calor (energía térmica) y en movimiento (energía mecánica). El secondo principio de la termodinamica (entropía) profiere que todo los sistemas tienden a alcanzar un estado de máxima entropía (deterioro, degradación o trastorno). Tomamos por ejemplo un coche: con el paso del tiempo se descompone en sus partes, pero el todo oxidado nunca se recuperará del coche original. Para los sistemas complejos, la situación es muy dife-

15


rente: además de crear un orden espontáneo y frenar ciertos trastornos, pueden reproducirse y moverse independientemente. Estas capacidades se resumen en el concepto de “autorganizacion” que, contrariamente a lo que uno podría suponer, no es sólo para “sistemas viventes”, sino que se extiende a todos los sistemas complejos. Por lo tanto, parece ser capaz de identificar una tendencia inherente a la materia, que en determinadas condiciones alimenta un proceso de autorganización cuya finalidad es lograr una forma superior de orden y / o eficiencia. Palabras Clave 1. Sistema Complejo: a la base de lo estudio de la complejidad està la idea que existe una ley general que rige la formación de configuraciones ordenadas dentro de los sistemas en equilibrio dinámico. Los sistemas complejos están compuestos por los agentes independientes que interactúan, (se adaptan y se evolucionan), y desarrollan una forma de autoorganización que permite al sistema de adquirir propiedades colectivas que no son propios de los agentes individuales (emergencia). Los mismos sistemas son adaptables en relación con la realidad externa. 2. Agentes Adaptivos: los agentes de un sistema se considera adecuado cuando tienen la capacidad de previsión (implícita o explícita) que empiezan de modelos basados en la realidad o la capacidad de retroacción con el entorno que les permite aprender de la experiencia. 3. Adaptación: mecanismo por el cual la selección establece el éxito evolutivo de un agente (por ejemplo, una especie) del sistema. La adaptación viene de selección y de mutaciones casuales dentro de los procesos de reproducción (sistemas biológicos) o por el aprendizaje y la experiencia (sistemas sociales). El cambio de las características de un agente sucede para responder a las solicitaciones que derivan del entorno en el que opera. 4. Evolución: Cambiar las características de un agente o de un sistema en función de los cambios en el entorno en que opera. La evolución empieza de abajo hacia arriba, desde lo simple a lo complejo. El proceso es por tentativa y error. 5. Auto-Organización: se observa una tendencia constante de la materia a organizarse cada vez en formas siempre más complejas en presencia de la tendencia al desorden. Hay una estrecha relación entre la auto-organización y selección. 6. Selección: La selección interviene en el ciclo de la evolución para determinar el éxito o el fracaso de las diferentes estrategias de adaptación. La selección natural puede ser entendida como una fuerza que empuja los nuevos sistemas auto-organizados hasta el borde del caos y luego a los niveles crecientes de complejidad. 7. Emergencia: en todos los niveles de complejidad surgen propiedades nuevas que no tienen nada que ver con las propiedades del nivel anterior. Se producen transiciones de fase que crean nuevos sistemas, que se rige por leyes completamente diferentes de las que gobiernan los sistemas jerárquicamente inferiores. En los sistemas emergentes se

16


observa como el todo es mayor que la suma de sus partes. 8. Coevolución: los agentes de un sistema, a través de su interacción y la retroacción, se adaptan a ellos y evolucionan hacia formas más funcionales a el ambiente en el que operan. La coevolución favorece la emergencia y la auto-organización en sistemas complejos de adaptación. En la base de la coevolución hay la competencia entre los agentes del sistema, todos comprometidos a buscar los recursos necesarios para sobrevivir y reproducirse. 9. Aprendizaje: el aprendizaje mediante la experiencia, conduce a la modificación de los modelos internos de la interpretación de la realidad, y permite a los agentes a ajustar su comportamiento y a evolucionar. El aprendizaje y la experiencia permiten la evolución en los sistemas sociales. El aprendizaje actúa sobre un único agente o grupos de agentes y produce cambios en el sistema sólo si puede ser transferido. Los tipos de aprendizaje se pueden distinguir en: el aprendizaje por la explotación (mejorando las conexiones que ya tiene), el aprendizaje mediante la exploración (cambiando la configuración de las conexiones). 10. Experiencia: La capacidad de un agente para obtener información de la interacción con el ambiente y utilizarla para afrontar situaciones que se repiten y para adaptar sus comportamientos. La experiencia permite la adaptación y, en consecuencia, la evolución. 11. Transiciones de Fase: el fenómeno que permite el paso de un sistema a partir de un nivel a otro, jerárquicamente superior, con una mayor complejidad. 12. Cooperación: La evolución no se basa solamente en la competición sino en la cooperación. 13. Atractores: Un atractor puede designar un estado dinamico o una forma al que mira un sistema complejo. Los atractores son “inherentes a el sitema” por tanto, no es posible observarlos directamente. Los atractores definen las formas posible que un sistema complejo puede tomar a través de la auto-organización. nuevas perspectivas Hoy en día, somos capaces de imaginar nuevas maneras de crear formas basadas ​​no sólo en los sistemas generativos, sino también en los sistemas que tratan de captar los principios y la lógica de la evolución de los sistemas complejos, con el fin de aprender a crear y pensar (no sólo a nivel formal, sino también arquitectónico) en modo no-lineal, dinámico y abierto. Con el enfoque proyectual del diseño computacional somos capaces de generar forma empezando de las relaciones simples que se establecen entre elementos sencillos, entonces ver la arquitectura en modo complejo, significa entender la arquitectura como sistema (conjunto de partes relacionadas entre ellas). El objetivo se mueve de la importancia de seguir un resultado formal final (arquitectura moderna) o un proceso formal en constante transformación (arquitectura generativa), y se centra

17


más en la organización generada a partir de los datos disponibles, el comportamiento emergente del sistema (arquitectura genética) que puede ser leído como posible respuesta a los inputs externos del sitio. La multitud de datos generados pueden ser controlados en cada parte y en cualquier momento del proceso. Es fascinante ver cómo un sistema tan complejo que hemos creado es en realidad debido a un control preciso de cada componente y cómo cambiando el tipo de relación entre los mismos, siempre se producen resultados completamente diferentes respecto a las pruebas previas. Entonces generar un comportamiento emergente significa generar una visión que no podemos desarrollar a priori, para conseguir esto, necesitamos de un acto creativo que incorpora motivos técnicos y artísticos que nos ponen en un nivel diferente de pensamiento. Los procesos complejos son dinámicos, están siempre en desiquilibrio para permanecer en equilibrio, cada sistema tiene su tiempo mientras que se relaciona con el todo y por lo tanto, la contemporaneidad permite la afectación entre los distintos sistemas (heterocromia). El potencial de las cuatro dimensiones que ofrecen algunos programas pueden igualar y superar la creatividad de nuestras mentes. Programas que se aprovechan de la no-linealidad y que se basan en sistemas de atractores y agentes autónomos, nos ayudan a explorar la emergencia, pero siempre se necesita de un acto creativo, un estudio de sensibilidad, un diseñador que sabe leer y construir sobre la base de inputs. Los sistemas informáticos no tienen ningún problema para mostrar las diferentes dimensiones, el problema es ser capaz de verlos. N-dimensional object state = (n) intrinsic + (m) extrinsic (n) intrinsic = propiedades del objeto (m) extrinsic = coordenadas espacio-temporales Así que cualquier cosa que permite la dinámica de los sistemas complejos es el factor (n) intrinsic. Las denominadas “vistas” en los programas de gráficos no son más que las diferentes dimensiones del mismo objeto. El diseñador tiene acceso a los puntos de vista, a los datos y los puede poner de una manera más compleja. Es multilingüe porque podemos tener varios lenguajes para hablar/interactuar con el objeto. Entonces el significado del término dibujar se puede leer en la no diferencia entre virtualidad y forma. La forma es necesaria para conseguir la virtualidad, la virtualidad existe pero necesita de una forma para ser visualizada. El ciclo de vida de un edificio siempre lo pensamos en un comportamiento lineal, pero, de hecho, son parte de una visión no-lineal. Desde una perspectiva general sobre los edificios clásicos, incluyendo los generados al día con las últimas tecnologías de fabricación, en realidad podemos ver que además que sistemas complicados son también sistemas complejos donde las interacciones de muchos componentes individuales permiten a la construcción de ser viva, de evolucionarse y degradarse. Son sistemas que forman parte de un proceso de verdad que

18


no acaba nunca, que nunca está hecho, sistemas que tienen un ciclo de vida en qué se pone orden, con el proyecto, en algo que tiende al natural desorden (concepto de entropía), son procesos dinámicos. La nueva arquitectura de la emergencia, es vista como sistema complejo más en su parte ideacional que en su ciclo de vida. Así una vez creado un edificio diseñado como sistema complejo, se comporta como un edificio clásico, de una manera dinámica. Como explica Jorge Wagensberg en Complejidad e Incertidumbre: “Muchas formas emergen como consecuencia directa de la no-linealidad de ciertas dinámicas, pero su probabilidad de emergencia está muy lejos de coincidir con su probabilidad de presencia en la naturaleza. Falta, naturalmente, la otra mitad de la inteligibilidad que llamamos función, que es la probabilidad de superar la prueba de la independencia de la incertitumbre del entorno vía selección natural.” Una pregunta surge: ¿cuál es entonces la diferencia entre un edificio clásico y uno pensado con el concepto de emergencia? Difícil dar una respuesta clara, pero podemos decir que una diferencia está en la forma final que no se puede predecir a priori y en la conciencia de aquellos que hacen sistemas complejos de conseguir un comportamiento emergente en el ciclo proyectual. Esto puede ser porque por fin hay un reconocimiento de que la arquitectura (incluyendo el proceso creativo) es un complejo sistema de información, donde una multitud de elementos simples interactúan unos con otros para llevar a cabo un sistema de mayor complejidad, y que ciertamente perde este potencial cuando se sintetiza y se reduce a un marco conceptual formal. En realidad somos nosotros, con nuestra mente, que hemos cambiado nuestra visión de las cosas, y ahora intentamos de entender la complejidad tratando de explotar su potencial a nuestro favor y tomando conciencia de su valor en nuestras vidas. Pascal ya había anticipado el tema con su idea no-lineal, aparentemente paradójica, que inmoviliza al espíritu lineal “No puedo concebir al todo sin concebir a las partes y no puedo concebir a las partes sin concebir al todo”, como recuerda en su principio hologramático Edgar Morin in Entrodución al Pensamiento Complejo. nuevos propósitos ¿Cuál es la función del arquitecto en esta nueva dinámica de diseño? ¿Cómo y dónde se coloca su acto creativo-conceptual? ¿Sigue siendo encima de un sistema estructurado sobre una jerarquía funcional o se mueve hacia una posición de una más avanzada y eficiente red de datospersonas-informaciones que interactúan de manera sinérgica? El acto creativo del diseñador ya no está en la búsqueda de una idea que resume con un acto formal la resolución funcional a la lectura de datos y problemas que percibe con su sensibilidad, sino que la perspectiva cambia radicalmente, se implementa una sinergia entre las partes (hombre y software) a nivel sensible y creativo, que conduce a una

19


“colaboración” para una posible respuesta al estímulo generado por la interacción de inputs. Cuando las nuevas tecnologías serán capaces de capturar, procesar e interactuar unos con otros la gran cantidades de datos diferentes en un entorno arquitectónico, entonces seremos capaces de obtener una respuesta, como resultado del comportamiento emergente de las partes, que satisfaga las necesidades humanas, y que sea ecológicamente eficiente y por lo tanto real. El objetivo deberia ser lo de un ciclo dinámico que no pone distinción entre el diseño y la vida y uso del edificio. Pensarlo como un todo ya nos pone en un nivel muy avanzado, surge la obligación de repensar el proceso como un sistema natural, y no sólo para hacer uso de ciertas partes o situaciones. La arquitectura, entonces la podemos pensar como “Patterns of Relationship” y no como un elemento estático. Un sistema complejo que se encuentra en la naturaleza, es tal como es por un proceso muy lento de la evolución. Podemos nosotros generar la misma complejidad en unos pocos meses? De hecho, tenemos las herramientas complejas adecuadas: el cerebro, el proyecto, el edificio, son todos sistemas complejos. Pero, sin embargo, la respuesta debe ser explorada. Fritjof Capra en Las Conexiones Ocultas, elabora una visión posible de nuestra sociedad que podemos construir con la nueva comprensión de la vida basada en los conceptos de la dinámica no-lineal, verdadero punto de inflexión cultural: “Nuestras disciplinas académicas han sido organizadas de tal modo que las ciencias naturales tratan de las estructuras materiales, mientras que las ciencias sociales tratan de las estructuras sociales, que se conciben fundamentalmente como reglas de comportamiento. En el futuro esta estricta división no va ser posible, puesto que el recto crucial de este nuevo siglo, tanto para los cientificos naturales y los sociales como para todos los demás, consistira en construir comunidades ecológicamente sostenibles, diseñadas de tal modo que sus tecnologías y sus instituciones sociales no interfieran la capacidad inherente a la naturaleza para mantener la vida. Los principios de diseño de nuestras futuras instituciones sociales deberán ser consistentes con los principios de organización que la naturaleza ha desarrollado para sustentar la trama de la vida. Para esta tarea de comprensión de las estructuras materiales y sociales será esencial un marco conceptual unificado.” Así que podemos entender muy bien que los términos como arquitectura digital, arquitectura virtual, cyborg-arquitectura o hyper-arquitectura no son capaces de envolver todas las características que esta nueva forma de pensar tiene como objetivo en sí mismo. Extender el objetivo perseguido por el Computational Design de este curso al ciclo de vida completo del edificio, podría significar generar un comportamiento emergente de la arquitectura en su ciclo dinámico de interacciones con el sistema, con la creación de estructuras autónomas con capacidad de auto-regulación, auto-adaptación y autocrescimento. Sólo así la arquitectura será completamente capaz de interactuar con sus

20


usuarios, con el entorno y el medio ambiente, generando siempre respuestas diferentes en términos de forma, de mejor rendimiento y mejor eficiencia, conceptos correlacionados y inseparables, que son a la base de los procesos naturales.

Bibliografía - Douglas Hofstader: Gödel, Escher, Bach: an eternal golden braid. Vintage Books: New York (1989). Capítulos 1 y 2, pp 33-41 y 46-60. - Terry Winograd & Fernando Flores: Understanding Computers and Computers: a new foundation for design. Addison-Wesley (1987). Capítulo 2, pp 14-26. - Roger Penrose: La nueva mente del Emperador. Grijalbo-Mondadori (1991). Capítulo 2, pp 56-106. - Alan Turing: On computable numbers, with an application to the Entscheidungs problem. (1936). http://www.abelard.org/turpap2 - Rudolf Wittkower: Architectural Principles in the Age of Humanism. Random House (1962). Parte III, pp 57-100. - Colin Rowe: “Las Matemáticas de la Vivienda ideal”. Publicado en Manierismo y Arquitectura Moderna y otros ensayos. Gustavo Gili, Barcelona (1999). Pp 9-23. - William J. Mitchell: The Logic of Architecture: design, computer and cognition. MIT Press (1994). Capítulos 5 a 8, pp 73-181. - George Stiny: “Introduction to Shape and Shape Grammars”. Publicado en Environment and Planning. B (1980). Volumen 7, pp 343-351. - Peter Eiseman: “El fin del clásico: el fin del comienzo, el fin del fin”. Publicado en Arquitecturas Bis 48, 3/1984. - Greg Lynn: “New Variations on the Rowe Complex”. Publicado en Greg Lynn: Folds, bodies & Blobs: Collected Essays. Pp 199-221. - Fritjof Capra: The Hidden Connections. Doubleday (2002). Capítulo 1, pp 3-32. - Gilles Deleuze: “Rizomatic”. Introducción a Mil Mesetas: Capitalismo y Esquizofrenia. Pre-textos: Valencia (1997). - Edgar Morin: “El paradigma de la complejidad”. En Introducción al pensamiento complejo. Gedisa: Barcelona (1995). - Jorge Wagensberg: “Complejidad e Incertidumbre”. Publicado en Mundo Científico 201, Mayo 1999. Pp 42-60. - Mark C. Taylor: The Moment of Complexity: emerging network culture. University of Chicago Press (2001). Capítulo 1, pp 19-46. - George P. Landow: Hypertext 2.0. Baltimore: Johns Hopkins University Press (1997). - Martin Gerber, Heinz Gruner: FlowTeam: l’autorganizzazione nei gruppi di lavoro. Credit suisse (Zürich ; 1996-). - http://it.wikipedia.org.

21


Design Studio, Intelligent Patterns


Estudio del Sitio y de Flujos

Plaza Lesseps, Barcelona

plaza lesseps La Plaza de Lesseps es una plaza de Barcelona que se encuentra en el límite de los distritos de Gràcia y Sarrià-Sant Gervasi. Antes de 1895 la plaza se había llamado «Josepets», por el convento de los carmelitas de Santa María de Gracia. La plaza está dedicada a Ferdinand de Lesseps (Versalles 1805 - Castillo de la Chênaie 1894), que fue un diplomático francés cónsul de Francia en Barcelona. Ferdinand tuvo su domicilio en una torre de la plaza junto a la riera, había intervenido a favor de la ciudad durante el bombardeo de Van-Halen en 1842. En la reforma que se realizó en los años 50 se anexionó a la plaza Lesseps la antigua “plaça de la creu”. Entendiendo la importancia que tiene como punto de comunicación para vehículos y peatones, se han organizado repetidamente diversas obras de reforma, la última se empezó en el año 2005 eliminando pasos elevados en forma de escaléxtric y ganando en espacios peatonales, habiendose realizado un auditorio al aire libre con gradas y unas pistas de petanca, el ganador del concurso para su reurbanización ha sido el arquitecto Albert Viaplana.

24


Plaza Lesseps

1 6

7

5

3 4 2

Puntos de vista

25


1

2

Vistas de Plaza Lesseps.

26


3

4

5

6

7

27


Flujos peatonales

estudio flujos A partir del estudio de los flujos peatonales se han asignado los caminos que a su vez han definido las áreas para la encrucijada de personas. Estas áreas se han concentrado en puntos clave que después se han tomado como referencia para generar la red de conexiones para el estudio de la velocidad. Los datos recogidos, según mediciones realizadas en diferentes momentos del día y de la semana, han permitido obtener una velocidad media con la que comparar las velocidades mínimas y máximas de las diversas etapas del recorrido. Esta comparación se hizo con una explícitación gráfica del valor de la velocidad, es decir, asumiendo la velocidad media como base sobre la cual proyectar la velocidad máxima y velocidad mínima, obteniendo así nuevas lecturas de datos y nuevos escenarios tales como los derivados de la utilización de vectores.

28


谩reas de concentraci贸n Puntos clave

Recorridos mapeados

Definici贸n de los puntos clave

29


22 21

23 25 22

24

21

36

31

35

M 37

26 28

29

N

39

L

40

44

41

30

43

28

37

9

2

4

3

44

41

Recorridos entre los puntos clave objeto de estudio 42

7 C

43

8

A

9

Recorridos L (m) 1°(s) N° 1 12.11 11 34.43 16 2 3 33.00 19 34.54 23 4 32.30 20 5 8 6 10.55 37.36 7 24 8 20.12 11 33.63 17 9 10 46.45 50.08 29 11 68.28 36 12 13 23.49 22.53 20 14 69.03 15 44 16 68.10 59 52.27 37 17 18 44.72 34 57.73 35 19 48 20 70.24 71 21 97.67

2° 9 17 21 21 22 6 20 12 18 33 33 23 28 53 32 29 31 42 68

3° 10 18 20 24 22 19 35 40 26 46 52 47 41 44 -

4° 22 23 21 19 33 24 17 42 46 35 34 -

5° 30 51 30 -

6° 34 28 -

Recorridos 47 V min V max L (m) 1°(s) 3° N° 2° 4° 8° 9° 10° 7° 1 11 12.11 11 1.73 7 - 9 1.101 10 46 16 2 23 34.43 2.152 22 17 - 17 1.497 18 1.737 23 22 - 21 1.00 20 3 33 33.00 19 1.439 1.645 34.54 23 24 21 4 21 26 15 22 1.242 2.153 5 3 32.30 5 720 - 221.319 -3.517 32 -8 - 6 1.167 -1.966 6 20 10.55 3.353 19 9 11 - 201.677 22 7 6 37.36 24 28 1.201 1.978 8 46 20.12 12 1.010 -1.602 11 35 29 9 26 33.63 17 39 1.926 - 181.284 19 10 62 -- - 1.101 -2.069 10 48 46.45 1.382 29 330.979 35 33 11 17 50.08 23 18 0.866 1.325 36 12 45 68.28 38 2.438 48 - 331.438 40 13 59 23.49 7352 - - 0.933 -1.480 24 1.633 17 - 231.413 26 20 14 34 22.53 39 25B 0.951 1.789 28 69.03 15 46 44 42 37 31 28 1.408 2.062 16 46 68.10 59 43 1.672 46 44 - 531.463 52 70 68 3748 - 321.376 -1.480 17 66 52.27 A 35 18 29 47 44.72 34 57.73 35 31 34 19 41 48 20 70.24 42 44 68 71 21 97.67 -

5° 30 51 30 -

22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

6° 71.42 18.53 16.20 45.04 44.89 44.45 86.74 47.62 49.38 20.71 28.57 25.79 17.38 43.52 20.49 30.15 72.86 83.53 15.55 34 63.70 46.69 27.44 28 -

7°11 50 11 13 23 12 28 33 28 29 22 58 32 3 32 20 16 6 18 28 17 12 46 30 26 12 48 12 17 53 55 23 12 45 47 59 48 25 34 39 37 46 66

36 26

48 14 11 25 30 28 68 31 29 24 24 18 14 35 13 12 56 66 14 48 34 24

3

13 14

19

13 14

15

10

F 18 B 16

5 48

1

12

10

B

45

F

E

12

6

4

11

17

L

40

2

18

16

D

N

16

5

20

46

11

2946

E

8

1

27

47

I 34

3

6

7 C

G 47

5

26

32

33

24

8

45

42

31

35

44

9

6

7 C

D

20

G

45

D

42

25

24

43

23

27

29

34

L 27

41

I 34

38

M

30

40

32

33

36

25

N

28

32 23

I 21

39

36

33

22

37 38

26

31

35

M

2

48

A

4

19

17

1 V min V max

48 137 1217 2822 28 30 6026 335 3232 9 20 17 1235 29 39 12 1262 5558 18 9 38 41 3952 23-

25 28 43 70

9° 10° - -12 - - - - -15 -7 -- -11 -- -29 -- -- -- 44 - - -48 43 41 73 38 -39 - 18 -29 31 44 68 47 80 32 51 22

-

1.101 1.497 1.00 1.439 1.242 1.319 1.167 1.677 1.201 1.010 1.284 1.101 0.979 0.866 1.438 0.933 36 26 1.413 0.951 1.408 1.463 1.376

13 48

52 1.73 13 14 2.15214 11 25 1.73730 30 28 1.645 28 29 2.15375 68 31 3.51729 29 1.96630 26 24 3.35333 24 1.97822 18 14 1.60210 35 1.92630 13 13 2.06913 12 1.38252 56 66 1.32562 9 14 2.438 48 41 1.48030 34 24 1.63327

55 14 13 27 26 27 61 28 27 24 16 15 32 10 14 42 66 8 44 31 22

10

50 13 12 28 28 29 58 32 32 16 18 17 12 30 12 12 53 55 12 47 48 25

48 14.56 44 13 21.93 45 12 46 66.61 47 47.14 28 48 4.55 28 0 30 60 33Semaforo L (m) N° 32 8.00 A 15.63 B C 17.49 20 16.69 D 17 37.15 E 12 11.94 F 29 G 18.67 13.94 H 12 8.10 I 12 11.96 L 55 47 5.58 M 7.66 N 80 58 9 32 41 51 39 23 22

11 15 41 40 4 0

13 34 32 5 0

42 29 -

52 32 -

55 30 -

Semaforo L (m) 1°(s) N° 3 8.00 A 15.63 13 B C 17.49 10 16.69 10 D 37.15 23 E 11.94 5 F G 18.67 15 13.94 13 H 5 8.10 I 6 11.96 L 3 5.58 M 7.66 4 N

2° 3 11 14 9 30 4 13 12 7 7 5 5

3° 2 7 11 7 26 6 15 10 6 7 5 6

V(s)

R 94 87 87 69 82 35 85 57 68 68 62

22

71.42

1.298 1.488 23 1.425 18.53 1.324 16.20 1.473 1.501 25 1.802 45.04 1.496 1.726 26 44.89 1.482 1.646 44.45 27 1.495 1.157 1.443 28 1.701 86.74 1.543 29 1.829 47.62 0.863 1.29 30 49.38 0.87 1.59 31 1.612 20.71 1.43 1.16 1.74 32 28.57 1.24 1.50 33 25.79 1.58 2.05 34 2.15 17.38 2.51 35 43.52 1.30 1.66 1.04 1.52 36 20.49 1.11 1.94 37 30.15 1.33 1.99 38 0.92 72.86 1.51 0.95 83.53 2.74 39

24 1.157 14

1.789 2.062 1.672 1.480

40 41 42 43

15.55 63.70 46.69 27.44

1.488 1.425 1.473 1.802 1.726 1.646 1.495 1.701 1.829 1.29 1.59 1.612 1.74 1.50 2.05 2.51 1.66 1.52 1.94 1.99 1.51 2.74

44 45 46 47 48 0

14.56 21.93 66.61 47.14 4.55

13 - - 34 - 32 5 0 1°(s) 2° - 3 3 13 - 11 10 - 14 10 - 9 23 30 5 - 4 15 - 13 13 - 12 5 7 6 7 3 44 5 4 - 5 43 38 18 11 15 41 40 4 0

---42 52 32 -29 -15 V(s) 3° -2 25 -7 32 32 -11 20 -7 36 26 -6 78 -15 36 --10 6 62 50 7 -5 50 57 -6 41 39 36 29 26

48

- 14 5511 3025 -

30 28 68 31 R 29 94 8724 8724 69 18 82 3514 8535 - 13 57 12 68 6856 6266 14 48 34 24

24 -

52 12 13 11 14 64 30 32 5 28 29 75 29 30 26 33 22 10 30 13 13 52 62 9 41 30 27

55 15 14 15 13 48 36 27 26 27 61 28 27 24 16 15 32 10 14 42 66 8 44 31 22

15 15 48 36 -

26 -

1.298 1.488 0.97 1.32 1.324 1.461.425 1.99 1.157 1.041.473 1.96 34 1.181.802 1.81 1.501 0.91 1.14 1.496 1.726 V media 1.482 1.646 1.8239 1.2452 media Tot1.495 = 1.5345 - V 1.157 1.443 1.701 V min V max 1.5432.661.829 4.00 0.863 2.23 1.20 1.29 1.75 0.871.25 1.59 2.38 1.431.751.612 1.24 1.62 1.161.99 1.74 2.99 1.241.24 1.50 1.43 1.39 1.581.07 2.05 1.16 1.62 2.15 2.51 1.71 1.99 1.301.12 1.66 1.86 1.92 1.041.28 1.52 1.11 1.94 1.33 1.99 0.92 1.51 10 0.95 2.74 -

--26-

V min V max 6° 34 28 -

7° 11 23 33 22 3 20 6 28 46 26 48 17 23 45 59 34 39 37 46 66

8° 7 17 22 26 5 32 9 35 39 62 18 38 52 25 28 43 70

9° 15 7 11 29 48 73 31 44 68

10° -

1.101 1.497 1.00 1.439 1.242 1.319 1.167 1.677 1.201 1.010 1.284 1.101 0.979 0.866 1.438 0.933 1.413 0.951 1.408 1.463 1.376

1.73 2.152 1.737 1.645 2.153 3.517 1.966 3.353 1.978 1.602 1.926 2.069 1.382 1.325 2.438 1.480 1.633 1.789 2.062 1.672 1.480

Tabulado de todos los tiempos de viaje de cada recorrido

22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

71.42 18.53 16.20 45.04 44.89 44.45 86.74 47.62 49.38 20.71 28.57 25.79 17.38 43.52 20.49 30.15 72.86 83.53 15.55 63.70 46.69 27.44

50 13 12 28 28 29 58 32 32 16 18 17 12 30 12 12 53 55 12 47 48 25

48 13 12 28 28 30 60 33 32 20 17 12 29 12 12 55 58 9 41 39 23

47 80 32 51 22

44 43 38 18

41 39 29

52 13 14 30 28 29 75 29 30 26 33 22 10 30 13 13 52 62 9 41 30 27

55 14 13 27 26 27 61 28 27 24 16 15 32 10 14 42 66 8 44 31 22

10

1.298 1.324 1.157 1.501 1.496 1.482 1.157 1.443 1.543 0.863 0.87 1.43 1.16 1.24 1.58 2.15 1.30 1.04 1.11 1.33 0.92 0.95

Toma de datos y (otra página) explícitación gráfica del valor de la velocidad.

30

G

30

25 32 32 20 36 78 36 62 50 50 57

24 -

12 11 64 32 5

0.97 1.32 1.46 1.99 1.04 1.96 1.18 1.81 0.91 1.14 V media 1.2452 1.8239 V media Tot = 1.5345 34 -

V min V max 2.66 4.00 1.20 2.23 1.25 1.75 2.38 1.75 1.24 1.62 1.99 2.99 1.43 1.24 1.39 1.07 1.16 1.62 1.71 1.99 1.12 1.86 1.28 1.92

44 45 46 47 48 0

14.56 21.93 66.61 47.14 4.55

11 15 41 40 4 0

Semaforo L (m) 1°(s N° 3 8.00 A 15.63 13 B C 17.49 10 16.69 10 D 37.15 23 E 11.94 5 F G 18.67 15 13.94 13 H 5 8.10 I 6 11.96 L 3 5.58 M 7.66 4 N


1 módulo=1 segundo

Diametro - velocidad mín por segundo

1 módulo=1 segundo

Diametro - velocidad máx por segundo

Vmedia=1.5345 m/s Vmedia=Epacio/Tiempo medio Para cada recorrido se ha obtenido un tiempo medio de viaje 1 segundo de este tiempo medio define el modulo base para la comparación de la velocidad mínima y velocidad máxima

31


1 módulo=1 segundo

Sobreposición velocidad mín y máx por segundo

Explícitación gráfica de los valores de la velocidad con sobreposición.

32


Velocidad mĂĄx

Velocidad mĂ­n

33


Vmín=Vmed=Vmáx Vmáx

Vmín

Vmed

punto inicial 01

02

02

02

Vmedia=Espacio/Tiempo medio Vmedia Tmedio Vmáx

Tmín

Vmín

Tmáx

Vmín 03

Vmed Vmáx

03 03

Vmáx

Sobreposición de las velocidades en verdadera magnitud La verdadera la magnitud no es más que explícitar gráficamente el tiempo de Vmín y Vmáx De hecho, por la razón que como referencia espacial son siempre los mismos recorridos, lo que varía es el tiempo y entonces la velocidad que tiene valores más bajos y más altos que la media

Vmín

Vmed

Vectorización de los puntos según experiencia Punto referencia Vector Vector resultante

Proceso que determina la relación entre los cambios de velocidad a través de vectores.

34


A

A

B

C

B

C

D

D

Velocidad mín y máx en verdadera magnitud de diferentes puntos iniciales

Variación velocidad mín y máx en relación a la velocidad media (vectores)

Diferentes graficos de las verdadera magnitud y variación velocidad mín-máx (vectores).

35


Modulo del vector como la variación de la velocidad máx respecto la velocidad media

Modulo del vector resultante como la variación de la velocidad respecto la velocidad media

Modulo del vector como la variación de la velocidad mín respecto la velocidad media

C

Punto inicial para determinar la verdadera magnitud mín y máx

Variación velocidad mín-máx (vectores) con punto inicial C.

36


La dirección de los vectores sigue una tendencia a polarizar concéntricamente hacia el exterior desde el punto de real magnitud inicial

Recorridos según la velocidad mín en verdadera magnitud

Recorridos reales: recorridos según la velocidad media

Recorridos según la velocidad máx en verdadera magnitud

37


B A

A

C

A

C C

B

B A

B C D

DD

Sobreposici贸n de los vectores resultantes obtenidos con 4 diferentes puntos iniciales (pag.35) en relaci贸n con los recorridos reales.

38

D


Escenarios / Processing

Todos los puntos son emisores de partículas y atractores en lo mismo tiempo

El punto central es emisor de partículas, todos los otros son atractores

Escenario Animado, Estudios Previos Los diagramas han servido para aclarar y proponer un escenario en el que empezan actuar partículas y atractores con un claro comportamiento síntesis de la análisis producida. En los primeros estudios se han incluido sólo algunos puntos clave como atractores y emisores de partículas. Limites de recorrido = atractores de partículas Variables: afectación, masa y gravedad Variación de velocidad = variación de curva

39


Sistema de partículas: para cada recorrido un sistema. velocidad en función de la proximidad a los atractores Atractores perimetrales: desplazamiento en función de la relación de proximidad entre las partículas y los atractores intermedios

Atractores intermedios: redirección de los recorridos analizados. se desplazan en función de la existencia de partículas en sus areas de influencia Se reconfigura en función del desplazamiento de los atractores perimetrales

Definición del proceso generativo a partir de una estructura definida por los atractores perimetrales.

40


Escenario inicial

Sistema de partículas: disposición según una malla ortogonal Atractores: valores de masa inicial, en función del numero de conexiones que establecen con la red global

Escenario Autoregulado En el escenario autoregulado se han puesto los emisores de partículas según una retícula ortogonal que mejor puede representar la presencia de flujos peatonales bastante homogénea en la plaza. Todos los puntos clave derivados de los diagramas son atractores, con valores de masa que se generan por su ubicación y relación espacial con otros atractores.

41


20

Proceso para determinar la resultante

20

Ejemplo nodo 20: resultante de todos los vectores en cada nodo del vector de velocidad máxima

Ejemplo nodo 20: resultante de todos los vectores en cada nodo del vector de velocidad mínima

17

Resultante velocidad mínima Resultante velocidad máxima

18 21 19

26

14

15

16

28 24

27

29

23 22

20

25

12

30 32

4

33

6

31

13

10

5

3 2

34

1 7

8

9

11

35

36

min.X

min.Y

min.Z

max.X

max.Y

max.Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36

-61.00 -19.18 26.87 50.63 -29.81 34.71 88.28 -49.74 79.77 -40.63 -59.81 -13.69 11.91 -70.34 51.42 -77.40 -38.13 23.05 -60.83 8.44 15.14 22.38 -13.44 -20.00 20.22 -3.54 15.40 20.23 124.06 -10.69 -32.02 6.51 -68.40 -14.28 -18.84 -11.98

-28.75 -28.38 21.00 37.43 -5.40 19.82 -5.35 -8.12 -35.60 46.71 -58.98 26.88 0.79 32.90 5.41 -58.34 143.18 -39.16 21.81 -46.92 48.83 -41.09 -13.80 15.52 -8.18 12.97 28.27 8.95 37.93 -32.00 -21.39 6.73 44.81 -6.54 -71.90 -32.72

67.43 34.26 34.11 62.96 30.30 39.97 88.44 50.40 87.36 61.91 84.00 30.16 11.94 77.66 51.70 96.92 148.17 45.44 64.62 47.67 51.12 46.79 19.26 25.31 21.81 13.44 32.20 22.12 129.72 33.73 38.51 9.36 81.77 15.71 74.32 34.85

-95.50 -19.64 21.64 104.31 -60.40 70.16 151.13 -91.84 122.13 -44.02 -102.48 -31.64 -23.87 -80.85 58.61 -98.83 -42.66 26.44 -71.23 5.76 18.62 25.06 -13.28 -32.55 32.79 -2.53 16.84 26.25 155.23 13.82 -43.57 8.12 -104.65 -26.11 35.02 -17.70

-45.98 -43.26 30.54 89.73 0.81 -32.91 -9.11 11.54 -38.35 55.01 -87.68 46.92 1.57 42.20 6.21 -60.42 158.00 -46.10 27.26 -49.42 57.98 -48.59 -15.71 28.01 -21.62 14.30 36.57 11.61 49.24 -30.62 -32.48 33.54 82.91 -27.31 -122.93 -51.76

106.00 47.51 37.43 53.21 60.41 77.50 151.40 92.56 128.00 70.45 134.00 56.59 23.92 91.20 58.94 115.84 163.00 53.15 76.27 49.76 60.90 54.67 20.57 42.94 39.27 14.52 40.26 28.70 162.85 33.59 54.34 34.51 133.51 37.79 127.82 54.70

42

Vectorización del desplazamiento de cada punto Coordenadas de cada vector Utilizamos estas coordenadas de vectores en Processing: - para definir las areas de influencia de los atractores - para el desplazamiento de los atractores - para la velocidad de las partículas

atractoresmedios[20].loc.x = atractoresmedios[20].loc.x+0.002; // div 1000 atractoresmedios[20].loc.y = atractoresmedios[20].loc.y+0.006; // div 1000 atractoresmedios[20].loc.z = atractoresmedios[20].loc.z+0.006/2; //div 1000 atractoresmedios[21].loc.x = atractoresmedios[21].loc.x+0.002; // div 1000 atractoresmedios[21].loc.y = atractoresmedios[21].loc.y-0.005; // div 1000 atractoresmedios[21].loc.z = atractoresmedios[21].loc.z+0.006/2; //div 1000 atractoresmedios[22].loc.x = atractoresmedios[22].loc.x-0.001; // div 1000 atractoresmedios[22].loc.y = atractoresmedios[22].loc.y-0.002; // div 1000 atractoresmedios[22].loc.z = atractoresmedios[22].loc.z+0.002/2; //div 1000 atractoresmedios[23].loc.x = atractoresmedios[23].loc.x-0.003; // div 1000 atractoresmedios[23].loc.y = atractoresmedios[23].loc.y+0.003; // div 1000 atractoresmedios[23].loc.z = atractoresmedios[23].loc.z+0.004/2; //div 1000 atractoresmedios[24].loc.x = atractoresmedios[24].loc.x+0.003; // div 1000 atractoresmedios[24].loc.y = atractoresmedios[24].loc.y-0.002; // div 1000 atractoresmedios[24].loc.z = atractoresmedios[24].loc.z+0.004/2; //div 1000 atractoresmedios[25].loc.x = atractoresmedios[25].loc.x-0.003; // div 1000 atractoresmedios[25].loc.y = atractoresmedios[25].loc.y+0.001; // div 1000 atractoresmedios[25].loc.z = atractoresmedios[25].loc.z+0.001/2; //div 1000

Valores en el codigo de Processing


frame 10

frame 20

frame 30

frame 40

Velocidad de las partículas en función de su localización dentro de los radios de influência de cada atractor Radios de influencia de cada atractor en función de sus vectores de velocidad máxima y minima; las diferencias de valores en los vários atractores caractriza una mayor o menor amplitud de influencia en lo sistema

La relación de afectación mutua de atractores y partículas causa la deslocación de los primeros según los valores de dirección y módulo de sus vectores Estrutura definida por la relación, en cada frame, del atractor con las partículas que tienen su localización en los radios de influencia de estos atractores

Introdución de reglas iniciales: relación con la analisis.

43


Variación de la masa de los atractores según proximidad de las partículas en la amplitud de sus radios Desplazamiento de los atractores en función de valores de proximidad a dos o más atractores vecinos Unión de atractores cuándo se cruzan añadiendo su masa

Funciones de manipulación.

44


Variaci贸n de los valores de radios de influencia de los atractores seg煤n su variaci贸n de masa

45


Frame 06

Frame 10

Fases del escenario animado en Processing con las funciones de manipulaci贸n.

46


Frame 14

Frame 18

47


Desplazamiento y variaci贸n de la masa de los atractores

Trayectoria de una part铆cula

Trayectoria de un atractor

Conexiones entre part铆culas y atractores

Frame 20: conexiones, desplazamiento y variaci贸n de masa.


//librerias

// B . ESTRUTURA FORMAL - CONEXIONES crearConexiones(); dibujarConexiones();

//libreria opengl import processing.opengl.*; import processing.pdf.*; //libreria control camera peasycam import peasy.org.apache.commons.math.*; import peasy.*; import peasy.org.apache.commons.math.geometry.*;

// C . FUNCIONES DE MANIPULACIÓN unirAtractoresmedios(); vecinos(); // ACTUALIZAR MASA EN FUNCION DE LA PROXIMIDAD DE UN NUMERO DETERMINADO DE PARTÍCULAS atractoresVsAtractores(); // MOVIMIENTO ATRACTORES EN FUNCIÓN DE LA PROXIMIDAD ENTRE ELLOS

//libreria geomerative import geomerative.*; import org.apache.batik.svggen.font.table.*; import org.apache.batik.svggen.font.*;

// D . RELACIÓN CON EL ENTORNO cambiarRepulsores(); // E . ESTRUTURA DE RECORRIDO DOS ATRACTORES //crearRecorridoAtractores(); //renderRecorridoAtractores();

//libreria xlsreader import de.bezier.data.*; //variables genericas

//exportar a rhinoscript /*if(frameCount == 40) record = true; println(frameCount); exportar(); */

//pantalla final int WIDTH = 1100; final int HEIGHT = 800; //atractores int numAtractoresmedios; //numero de atractores Atractor3D[] atractoresmedios; //declaramos array atractores PVector[] locAtractormedios; //declaramos array de localizaciones de atractores y sortidores int[] masa_Atmedios; //declaramos array de masa de atractores float MASSMAX = 20; int[] gravedad_Atmedios; //declaramos array de forza de gravidad de los atractores int D_VECINOS = 60; //float[] D_VECINOS; float[] areaInfluencia1; float[] areaInfluencia2; //sistemas de atractores SistAtractor3D ASIS_MEDIOS; //sistemas de particulas SistParticula3D psisGrid; int nx = 20; int ny =10; int life = 400; PVector a = new PVector(0,0,0); PVector v = new PVector(0,0,0); PVector pMin = new PVector(0,0,0); PVector pMax = new PVector(1200,1050,0); float m = 2; color colorPart = color(200);

// println(“vel particula : “+psisGrid.arrayParticulas[0].vel); //saveFrame (); if (file) { endRaw(); file = false; } } //función exportar void exportar(){ if(record){ //o record==true // estructuraSola = new Output(struct[0] ,”estructuraSola”); // estructuraSola.go(); //outputPts = new Output(vecOutput, “outputPts”); //nome do objecto que criamos // outputPts.go(); //em função do constructor que identifica, genera o arquivo de texto //outputPoly = new Output(struct[struct.length-1], “outputPoly”); // outputPoly.go();

//estela int RESOLUCION = 10;

outputArrayPoly = new Output(struct, “outputArrayPoly”); outputArrayPoly.go();

//variables de visualisación

//outputArrayVel = new Output(structVel, “outputArrayVel”); //outputArrayVel.go();

Escena3D escena; // Escena3D -> control camara y grid de referencia

outputArrayMasa = new Output(structMasa, “outputArrayMasa”); outputArrayMasa.go();

boolean showCurves = false; // boleano para visualizar curvas o no boolean pause = false; // boleano para parar draw() boolean record = false;

//outputArrayAtractor = new Output(estelaAtract, “outputArrayAtractor”); //outputArrayAtractor.go();

//site plan. visualizacion entorno + puntos (atractores) SitePlan base; SitePlan puntos; SitePlan puntos2; SitePlan limites; // ESTRUCTURAS PolyStruct[] struct; PolyStruct[] structVel; PolyStruct[] structMasa; int cont = 0; PolyStruct[] structParticulas; PolyStruct[] estelaAtract; int contAtract = 0; // EXPORTAR PUNTOS Y ESTRUCTURAS //Output sistemas de particulas //Output outputPartSist; //Output outputSite; Output outputArrayPoly; //Output outputArrayVel; Output outputArrayMasa; //Output estructuraSola; //Output outputArrayAtractor; XlsReader reader; boolean file = false; void setup(){ size(WIDTH,HEIGHT,OPENGL); //size(WIDTH,HEIGHT,P3D); // crear objeto Escena3D para dibujar recorrido de la particula escena = new Escena3D(this, 550, 550, 0, WIDTH); base = new SitePlan (this, “PLANO.svg”, “ALTURAS.xls”); //entorno puntos2 = new SitePlan (this, “Puntos2.svg”, “AlturasPuntos2.xls”); //atractores limites = new SitePlan (this, “LIMITES.svg”, “AlturasLimites.xls”); reader = new XlsReader(this,”dados02.xls”); numAtractoresmedios = puntos2.getTotalPath()-1; atractoresmedios = new Atractor3D[numAtractoresmedios]; locAtractormedios = new PVector [numAtractoresmedios]; masa_Atmedios = new int[numAtractoresmedios]; gravedad_Atmedios= new int[numAtractoresmedios]; for (int i=0; i< numAtractoresmedios; i++){ //localización atractores locAtractormedios[i] = puntos2.getCent(i); } //masa atractores masa_Atmedios[0]= 10; masa_Atmedios[1]= 8; masa_Atmedios[2]= 6; masa_Atmedios[3]= 8; masa_Atmedios[4]= 4; masa_Atmedios[5]= 8; masa_Atmedios[6]= 8; masa_Atmedios[7]= 6; masa_Atmedios[8]= 6; masa_Atmedios[9]= 6; masa_Atmedios[10]= 4; masa_Atmedios[11]= 8; masa_Atmedios[12]= 2; masa_Atmedios[13]= 4; masa_Atmedios[14]= 4; masa_Atmedios[15]= 8; masa_Atmedios[16]= 4; masa_Atmedios[17]= 4; masa_Atmedios[18]= 6; masa_Atmedios[19]= 8; masa_Atmedios[20]= 4; masa_Atmedios[21]= 8; masa_Atmedios[22]= 6; masa_Atmedios[23]= 4; masa_Atmedios[24]= 6; masa_Atmedios[25]= 6; masa_Atmedios[26]= 6; masa_Atmedios[27]= 2; masa_Atmedios[28]= 4; masa_Atmedios[29]= 8; masa_Atmedios[30]= 6; masa_Atmedios[31]= 6; masa_Atmedios[32]= 10; masa_Atmedios[33]= 8; masa_Atmedios[34]= 6; masa_Atmedios[35]= 4; //gravedad atractores for (int i=0; i< numAtractoresmedios; i++){ gravedad_Atmedios[i]= 5; } areaInfluencia1 = new float[numAtractoresmedios]; areaInfluencia2 = new float[numAtractoresmedios]; for (int i=0; i< numAtractoresmedios; i++){ areaInfluencia1[i] = reader.getFloat(i,2); areaInfluencia2[i] = reader.getFloat(i,5); } //constructor de los atractores for (int i=0; i<numAtractoresmedios; i++){ atractoresmedios[i] = new Atractor3D(locAtractormedios[i], masa_Atmedios[i], gravedad_Atmedios[i]); } ASIS_MEDIOS = new SistAtractor3D(atractoresmedios); psisGrid = new SistParticula3D(ASIS_MEDIOS, nx, ny, life, a, v, pMin, pMax, m, colorPart); struct = new PolyStruct[0]; structParticulas = new PolyStruct[0]; structVel = new PolyStruct[0]; structMasa = new PolyStruct[0];

}

estelaAtract = new PolyStruct[atractoresmedios.length]; for(int i=0; i<estelaAtract.length; i++){ estelaAtract[i] = new PolyStruct(); }

//outputPartSist = new Output(psisGrid, “outputPartSist”); //outputPartSist.go(); //outputSite = new Output(base, “PLANO”); //outputSite.go(); }

record =false;

} //Redibuja atractores intermedios void redibujaAtractoresmedios(){ fill(0); for(int i=0; i<numAtractoresmedios; i++){ ellipse(locAtractormedios[i].x, locAtractormedios[i].y, 10, 10); } } // A. FUNCIONES PRINCIPALES void actualizaParticulas(){ for(int i=0; i<atractoresmedios.length; i++){ for(int k=0; k<psisGrid.arrayParticulas.length; k++){ float[] velocidMAX = new float [numAtractoresmedios]; float[] velocidMIN = new float [numAtractoresmedios]; velocidMAX [i] = reader.getFloat(i,18); velocidMIN [i] = reader.getFloat(i,17); float[] distanciaMAX = new float [numAtractoresmedios]; float[] distanciaMIN = new float [numAtractoresmedios]; distanciaMAX [i] = reader.getFloat(i,5); distanciaMIN [i] = reader.getFloat(i,2); float[] vecMaxX = new float [numAtractoresmedios]; float[] vecMaxY = new float [numAtractoresmedios]; float[] vecMaxZ = new float [numAtractoresmedios]; float[] vecMinX = new float [numAtractoresmedios]; float[] vecMinY = new float [numAtractoresmedios]; float[] vecMinZ = new float [numAtractoresmedios]; vecMaxX [i] = reader.getFloat(i,21); vecMaxY [i] = reader.getFloat(i,22); vecMaxZ [i] = reader.getFloat(i,18); vecMinX [i] = reader.getFloat(i,19); vecMinY [i] = reader.getFloat(i,20); vecMinZ [i] = reader.getFloat(i,17); float distancia = PVector.dist(atractoresmedios[i].loc, psisGrid.arrayParticulas[k].loc); //if((distancia < (distanciaMIN [i]))) { if((distancia < (areaInfluencia1[i]))) { psisGrid.arrayParticulas[k].MAX_VEL=psisGrid.arrayParticulas[k].MAX_VEL/(velocidMIN [i]*10); atractoresmedios[0].loc.x = atractoresmedios[0].loc.x-0.006; // div 1000 atractoresmedios[0].loc.y = atractoresmedios[0].loc.y-0.003; // div 1000 atractoresmedios[0].loc.z = atractoresmedios[0].loc.z+0.007/2; //div 1000 atractoresmedios[1].loc.x = atractoresmedios[1].loc.x-0.002; // div 1000 atractoresmedios[1].loc.y = atractoresmedios[1].loc.y-0.003; // div 1000 atractoresmedios[1].loc.z = atractoresmedios[1].loc.z+0.003/2; //div 1000 atractoresmedios[2].loc.x = atractoresmedios[2].loc.x+0.003; // div 1000 atractoresmedios[2].loc.y = atractoresmedios[2].loc.y+0.002; // div 1000 atractoresmedios[2].loc.z = atractoresmedios[2].loc.z+0.003/2; //div 1000 atractoresmedios[3].loc.x = atractoresmedios[3].loc.x+0.005; // div 1000 atractoresmedios[3].loc.y = atractoresmedios[3].loc.y+0.004; // div 1000 atractoresmedios[3].loc.z = atractoresmedios[3].loc.z+0.006/2; //div 1000 atractoresmedios[4].loc.x = atractoresmedios[4].loc.x-0.003; // div 1000 atractoresmedios[4].loc.y = atractoresmedios[4].loc.y-0.001; // div 1000 atractoresmedios[4].loc.z = atractoresmedios[4].loc.z+0.003/2; //div 1000 atractoresmedios[5].loc.x = atractoresmedios[5].loc.x+0.004; // div 1000 atractoresmedios[5].loc.y = atractoresmedios[5].loc.y+0.002; // div 1000 atractoresmedios[5].loc.z = atractoresmedios[5].loc.z+0.004/2; //div 1000 atractoresmedios[6].loc.x = atractoresmedios[6].loc.x+0.009; // div 1000 atractoresmedios[6].loc.y = atractoresmedios[6].loc.y-0.001; // div 1000 atractoresmedios[6].loc.z = atractoresmedios[6].loc.z+0.009/2; //div 1000 atractoresmedios[7].loc.x = atractoresmedios[7].loc.x-0.005; // div 1000 atractoresmedios[7].loc.y = atractoresmedios[7].loc.y-0.001; // div 1000 atractoresmedios[7].loc.z = atractoresmedios[7].loc.z+0.005/2; //div 1000 atractoresmedios[8].loc.x = atractoresmedios[8].loc.x+0.008; // div 1000 atractoresmedios[8].loc.y = atractoresmedios[8].loc.y-0.004; // div 1000 atractoresmedios[8].loc.z = atractoresmedios[8].loc.z+0.009/2; //div 1000 atractoresmedios[9].loc.x = atractoresmedios[9].loc.x-0.004; // div 1000 atractoresmedios[9].loc.y = atractoresmedios[9].loc.y+0.005; // div 1000 atractoresmedios[9].loc.z = atractoresmedios[9].loc.z+0.006/2; //div 1000 atractoresmedios[10].loc.x = atractoresmedios[10].loc.x-0.006; // div 1000 atractoresmedios[10].loc.y = atractoresmedios[10].loc.y-0.006; // div 1000 atractoresmedios[10].loc.z = atractoresmedios[10].loc.z+0.008/2; //div 1000 atractoresmedios[11].loc.x = atractoresmedios[11].loc.x-0.001; // div 1000 atractoresmedios[11].loc.y = atractoresmedios[11].loc.y+0.003; // div 1000 atractoresmedios[11].loc.z = atractoresmedios[11].loc.z+0.003/2; //div 1000 atractoresmedios[12].loc.x = atractoresmedios[12].loc.x+0.001; // div 1000 atractoresmedios[12].loc.y = atractoresmedios[12].loc.y+0.0001; // div 1000 atractoresmedios[12].loc.z = atractoresmedios[12].loc.z+0.001/2; //div 1000 atractoresmedios[13].loc.x = atractoresmedios[13].loc.x-0.007; // div 1000 atractoresmedios[13].loc.y = atractoresmedios[13].loc.y+0.003; // div 1000 atractoresmedios[13].loc.z = atractoresmedios[13].loc.z+0.008/2; //div 1000 atractoresmedios[14].loc.x = atractoresmedios[14].loc.x+0.005; // div 1000 atractoresmedios[14].loc.y = atractoresmedios[14].loc.y+0.001; // div 1000 atractoresmedios[14].loc.z = atractoresmedios[14].loc.z+0.005/2; //div 1000 atractoresmedios[15].loc.x = atractoresmedios[15].loc.x-0.008; // div 1000 atractoresmedios[15].loc.y = atractoresmedios[15].loc.y-0.006; // div 1000 atractoresmedios[15].loc.z = atractoresmedios[15].loc.z+0.01/2; //div 1000 atractoresmedios[16].loc.x = atractoresmedios[16].loc.x-0.004; // div 1000 atractoresmedios[16].loc.y = atractoresmedios[16].loc.y+0.014; // div 1000 atractoresmedios[16].loc.z = atractoresmedios[16].loc.z+0.015/2; //div 1000 atractoresmedios[17].loc.x = atractoresmedios[17].loc.x+0.002; // div 1000 atractoresmedios[17].loc.y = atractoresmedios[17].loc.y-0.004; // div 1000 atractoresmedios[17].loc.z = atractoresmedios[17].loc.z+0.005/2; //div 1000 atractoresmedios[18].loc.x = atractoresmedios[18].loc.x-0.006; // div 1000 atractoresmedios[18].loc.y = atractoresmedios[18].loc.y+0.002; // div 1000 atractoresmedios[18].loc.z = atractoresmedios[18].loc.z+0.007/2; //div 1000 atractoresmedios[19].loc.x = atractoresmedios[19].loc.x+0.001; // div 1000 atractoresmedios[19].loc.y = atractoresmedios[19].loc.y-0.005; // div 1000 atractoresmedios[19].loc.z = atractoresmedios[19].loc.z+0.005/2; //div 1000 atractoresmedios[20].loc.x = atractoresmedios[20].loc.x+0.002; // div 1000 atractoresmedios[20].loc.y = atractoresmedios[20].loc.y+0.005; // div 1000 atractoresmedios[20].loc.z = atractoresmedios[20].loc.z+0.005/2; //div 1000

void draw() { background(255);

atractoresmedios[21].loc.x = atractoresmedios[21].loc.x+0.002; // div 1000 atractoresmedios[21].loc.y = atractoresmedios[21].loc.y-0.004; // div 1000 atractoresmedios[21].loc.z = atractoresmedios[21].loc.z+0.005/2; //div 1000

if(file) beginRaw(PDF, “output.pdf”);

atractoresmedios[22].loc.x = atractoresmedios[22].loc.x-0.001; // div 1000 atractoresmedios[22].loc.y = atractoresmedios[22].loc.y-0.001; // div 1000 atractoresmedios[22].loc.z = atractoresmedios[22].loc.z+0.002/2; //div 1000

// visualizar grid de referencia escena.go(); ASIS_MEDIOS.go(); psisGrid.go(); //visualizar plano entorno base.render2D(); base.render3D(); puntos2.render2D(); limites.render2D(); // A . FUNCIONES PRINCIPALES actualizaParticulas(); redibujaAtractoresmedios();

Codigo Processing.

50

atractoresmedios[23].loc.x = atractoresmedios[23].loc.x-0.002; // div 1000 atractoresmedios[23].loc.y = atractoresmedios[23].loc.y+0.002; // div 1000 atractoresmedios[23].loc.z = atractoresmedios[23].loc.z+0.003/2; //div 1000 atractoresmedios[24].loc.x = atractoresmedios[24].loc.x+0.002; // div 1000 atractoresmedios[24].loc.y = atractoresmedios[24].loc.y-0.001; // div 1000 atractoresmedios[24].loc.z = atractoresmedios[24].loc.z+0.002/2; //div 1000 atractoresmedios[25].loc.x = atractoresmedios[25].loc.x-0.0004; // div 1000 atractoresmedios[25].loc.y = atractoresmedios[25].loc.y+0.001; // div 1000 atractoresmedios[25].loc.z = atractoresmedios[25].loc.z+0.001/2; //div 1000 atractoresmedios[26].loc.x = atractoresmedios[26].loc.x+0.002; // div 1000 atractoresmedios[26].loc.y = atractoresmedios[26].loc.y+0.003; // div 1000 atractoresmedios[26].loc.z = atractoresmedios[26].loc.z+0.003/2; //div 1000


atractoresmedios[27].loc.x = atractoresmedios[27].loc.x+0.002; // div 1000 atractoresmedios[27].loc.y = atractoresmedios[27].loc.y+0.001; // div 1000 atractoresmedios[27].loc.z = atractoresmedios[27].loc.z+0.002/2; //div 1000 atractoresmedios[28].loc.x = atractoresmedios[28].loc.x+0.012; // div 1000 atractoresmedios[28].loc.y = atractoresmedios[28].loc.y+0.004; // div 1000 atractoresmedios[28].loc.z = atractoresmedios[28].loc.z+0.013/2; //div 1000 atractoresmedios[29].loc.x = atractoresmedios[29].loc.x-0.001; // div 1000 atractoresmedios[29].loc.y = atractoresmedios[29].loc.y-0.003; // div 1000 atractoresmedios[29].loc.z = atractoresmedios[29].loc.z+0.003/2; //div 1000 atractoresmedios[30].loc.x = atractoresmedios[30].loc.x-0.003; // div 1000 atractoresmedios[30].loc.y = atractoresmedios[30].loc.y-0.004/2; //div 1000

for(int i=0; i<atractoresmedios.length; i++){ for(int j=0; j<atractoresmedios.length; j++){ float distancia = sqrt((((atractoresmedios[i].loc.x)-(atractoresmedios[j].loc.x))*((atractoresmedios[i].loc.x)-(atractoresmedios[j].loc.x))) +(((atractoresmedios[i].loc.y)-(atractoresmedios[j].loc.y))*((atractoresmedios[i].loc.y)-(atractoresmedios[j].loc.y)))); float[] vecMinX = new float [numAtractoresmedios]; float[] vecMinY = new float [numAtractoresmedios]; vecMinX [i] = reader.getFloat(i,21); vecMinY [i] = reader.getFloat(i,22); if((distancia > 0)&&(distancia < 140)){ for(int k=0; k<atractoresmedios.length; k++){ float distancia1 = sqrt((((atractoresmedios[i].loc.x)-(atractoresmedios[k].loc.x))*((atractoresmedios[i].loc.x)-(atractoresmedios[k]. loc.x))) +(((atractoresmedios[i].loc.y)-(atractoresmedios[k].loc.y))*((atractoresmedios[i].loc.y)-(atractoresmedios[k].loc.y)))); float distancia2 = sqrt((((atractoresmedios[j].loc.x)-(atractoresmedios[k].loc.x))*((atractoresmedios[j].loc.x)-(atractoresmedios[k]. loc.x))) +(((atractoresmedios[j].loc.y)-(atractoresmedios[k].loc.y))*((atractoresmedios[j].loc.y)-(atractoresmedios[k].loc.y)))); if((distancia1 < 140)&&(distancia1 > 0)&&(distancia2 < 140)&&(distancia2 > 0)){ // if(atractoresmedios[i].stop == false){ atractoresmedios[i].loc.x = atractoresmedios[i].loc.x+(vecMinX [i]); atractoresmedios[i].loc.y = atractoresmedios[i].loc.y+(vecMinY [i]); atractoresmedios[j].loc.x = atractoresmedios[j].loc.x+(vecMinX [i]); atractoresmedios[j].loc.y = atractoresmedios[j].loc.y+(vecMinY [i]); atractoresmedios[k].loc.x = atractoresmedios[k].loc.x+(vecMinX [i]); atractoresmedios[k].loc.y = atractoresmedios[k].loc.y+(vecMinY [i]);

atractoresmedios[31].loc.x = atractoresmedios[31].loc.x+0.001; // div 1000 atractoresmedios[31].loc.y = atractoresmedios[31].loc.y+0.001; // div 1000 atractoresmedios[31].loc.z = atractoresmedios[31].loc.z+0.0007/2; //div 1000 atractoresmedios[32].loc.x = atractoresmedios[32].loc.x-0.007; // div 1000 atractoresmedios[32].loc.y = atractoresmedios[32].loc.y+0.005; // div 1000 atractoresmedios[32].loc.z = atractoresmedios[32].loc.z+0.008/2; //div 1000 atractoresmedios[33].loc.x = atractoresmedios[33].loc.x-0.001; // div 1000 atractoresmedios[33].loc.y = atractoresmedios[33].loc.y-0.001; // div 1000 atractoresmedios[33].loc.z = atractoresmedios[33].loc.z+0.002/2; //div 1000 atractoresmedios[34].loc.x = atractoresmedios[34].loc.x+0.002; // div 1000 atractoresmedios[34].loc.y = atractoresmedios[34].loc.y-0.007; // div 1000 atractoresmedios[34].loc.z = atractoresmedios[34].loc.z+0.007/2; //div 1000 atractoresmedios[35].loc.x = atractoresmedios[35].loc.x-0.001; // div 1000 atractoresmedios[35].loc.y = atractoresmedios[35].loc.y-0.003; // div 1000 atractoresmedios[35].loc.z = atractoresmedios[35].loc.z+0.004/2; //div 1000

}

}

} } //}

} else{

}

}

}

atractoresmedios[i].G =-10;

atractoresmedios[1].loc.x = atractoresmedios[1].loc.x-0.002; // div 1000 atractoresmedios[1].loc.y = atractoresmedios[1].loc.y-0.004; // div 1000 atractoresmedios[1].loc.z = atractoresmedios[1].loc.z+0.003/2; //div 1000

}

atractoresmedios[2].loc.x = atractoresmedios[2].loc.x+0.002; // div 1000 atractoresmedios[2].loc.y = atractoresmedios[2].loc.y+0.003; // div 1000 atractoresmedios[2].loc.z = atractoresmedios[2].loc.z+0.003/2; //div 1000

// B . ESTRUTURA FORMAL - CONEXIONES void crearConexiones(){ if(contStruct(1)==0){ actualizarStruct(); actualizarStructVel(); actualizarStructMasa();

atractoresmedios[3].loc.x = atractoresmedios[3].loc.x+0.01; // div 1000 atractoresmedios[3].loc.y = atractoresmedios[3].loc.y+0.009; // div 1000 atractoresmedios[3].loc.z = atractoresmedios[3].loc.z+0.006/2; //div 1000 atractoresmedios[4].loc.x = atractoresmedios[4].loc.x-0.006; // div 1000 atractoresmedios[4].loc.y = atractoresmedios[4].loc.y-0.0001; // div 1000 atractoresmedios[4].loc.z = atractoresmedios[4].loc.z+0.006/2; //div 1000 atractoresmedios[5].loc.x = atractoresmedios[5].loc.x+0.007; // div 1000 atractoresmedios[5].loc.y = atractoresmedios[5].loc.y-0.003; // div 1000 atractoresmedios[5].loc.z = atractoresmedios[5].loc.z+0.008/2; //div 1000 atractoresmedios[6].loc.x = atractoresmedios[6].loc.x+0.015; // div 1000 atractoresmedios[6].loc.y = atractoresmedios[6].loc.y-0.001; // div 1000 atractoresmedios[6].loc.z = atractoresmedios[6].loc.z+0.015/2; //div 1000

}

for(int i=0; i<struct.length; i++){ stroke(180,0,0,80); struct[i].renderLine(false); } for(int i=0; i<structVel.length; i++){ stroke(0,0,200,80); structVel[i].renderLine(false); } for(int i=0; i<structMasa.length; i++){ stroke(0,180,0,80); structMasa[i].renderLine(false); }

atractoresmedios[8].loc.x = atractoresmedios[8].loc.x+0.012; // div 1000 atractoresmedios[8].loc.y = atractoresmedios[8].loc.y-0.004; // div 1000 atractoresmedios[8].loc.z = atractoresmedios[8].loc.z+0.013/2; //div 1000 atractoresmedios[9].loc.x = atractoresmedios[9].loc.x-0.004; // div 1000 atractoresmedios[9].loc.y = atractoresmedios[9].loc.y+0.006; // div 1000 atractoresmedios[9].loc.z = atractoresmedios[9].loc.z+0.007/2; //div 1000 atractoresmedios[10].loc.x = atractoresmedios[10].loc.x-0.01; // div 1000 atractoresmedios[10].loc.y = atractoresmedios[10].loc.y-0.009; // div 1000 atractoresmedios[10].loc.z = atractoresmedios[10].loc.z+0.014/2; //div 1000 atractoresmedios[11].loc.x = atractoresmedios[11].loc.x-0.003; // div 1000 atractoresmedios[11].loc.y = atractoresmedios[11].loc.y+0.005; // div 1000 atractoresmedios[11].loc.z = atractoresmedios[11].loc.z+0.006/2; //div 1000 atractoresmedios[12].loc.x = atractoresmedios[12].loc.x-0.002; // div 1000 atractoresmedios[12].loc.y = atractoresmedios[12].loc.y+0.0002; // div 1000 atractoresmedios[12].loc.z = atractoresmedios[12].loc.z+0.001/2; //div 1000 atractoresmedios[13].loc.x = atractoresmedios[13].loc.x-0.008; // div 1000 atractoresmedios[13].loc.y = atractoresmedios[13].loc.y+0.004; // div 1000 atractoresmedios[13].loc.z = atractoresmedios[13].loc.z+0.009/2; //div 1000 atractoresmedios[14].loc.x = atractoresmedios[14].loc.x+0.006; // div 1000 atractoresmedios[14].loc.y = atractoresmedios[14].loc.y+0.001; // div 1000 atractoresmedios[14].loc.z = atractoresmedios[14].loc.z+0.006/2; //div 1000 atractoresmedios[15].loc.x = atractoresmedios[15].loc.x-0.01; // div 1000 atractoresmedios[15].loc.y = atractoresmedios[15].loc.y-0.006; // div 1000 atractoresmedios[15].loc.z = atractoresmedios[15].loc.z+0.012/2; //div 1000

} void actualizarStruct(){ for(int i=0; i<atractoresmedios.length; i++){ for(int j=0;j<limites.getTotalPath()-1;j++){ for(int k=0; k<psisGrid.arrayParticulas.length; k++){ if(limites.intersection(j, psisGrid.arrayParticulas[k].loc)==true){ float[] distanciaMAX = new float [numAtractoresmedios]; distanciaMAX [i] = reader.getFloat(i,5); float distancia = PVector.dist(atractoresmedios[i].loc, psisGrid.arrayParticulas[k].loc); if((distancia > 0)&& (distancia < (areaInfluencia2[i]))&&(atractoresmedios[i].G > 0)) { PVector [] posiciones = new PVector[2]; posiciones[0] = atractoresmedios[i].loc; posiciones[1] = psisGrid.arrayParticulas[k].loc; struct = (PolyStruct[]) append(struct, new PolyStruct(posiciones)); } } } } } } void actualizarStructVel(){ for(int k=0; k<psisGrid.arrayParticulas.length; k++){ PVector [] posiciones = new PVector[2]; posiciones[0] = psisGrid.arrayParticulas[k].loc; posiciones[1] = PVector.add(psisGrid.arrayParticulas[k].loc, psisGrid.arrayParticulas[k].vel); structVel = (PolyStruct[]) append(structVel, new PolyStruct(posiciones)); }

atractoresmedios[16].loc.x = atractoresmedios[16].loc.x-0.004; // div 1000 atractoresmedios[16].loc.y = atractoresmedios[16].loc.y+0.016; // div 1000 atractoresmedios[16].loc.z = atractoresmedios[16].loc.z+0.016/2; //div 1000 atractoresmedios[17].loc.x = atractoresmedios[17].loc.x+0.003; // div 1000 atractoresmedios[17].loc.y = atractoresmedios[17].loc.y-0.005; // div 1000 atractoresmedios[17].loc.z = atractoresmedios[17].loc.z+0.005/2; //div 1000 atractoresmedios[18].loc.x = atractoresmedios[18].loc.x-0.007; // div 1000 atractoresmedios[18].loc.y = atractoresmedios[18].loc.y+0.003; // div 1000 atractoresmedios[18].loc.z = atractoresmedios[18].loc.z+0.008/2; //div 1000

} void actualizarStructMasa(){ for(int i=0; i<atractoresmedios.length; i++){ PVector masa = atractoresmedios[i].loc.get(); masa.z = masa.z + atractoresmedios[i].mass; PVector [] posiciones = new PVector[2]; posiciones[0] = atractoresmedios[i].loc; posiciones[1] = masa; structMasa = (PolyStruct[]) append(structMasa, new PolyStruct(posiciones)); }

atractoresmedios[19].loc.x = atractoresmedios[19].loc.x+0.001; // div 1000 atractoresmedios[19].loc.y = atractoresmedios[19].loc.y-0.005; // div 1000 atractoresmedios[19].loc.z = atractoresmedios[19].loc.z+0.005/2; //div 1000 atractoresmedios[20].loc.x = atractoresmedios[20].loc.x+0.002; // div 1000 atractoresmedios[20].loc.y = atractoresmedios[20].loc.y+0.006; // div 1000 atractoresmedios[20].loc.z = atractoresmedios[20].loc.z+0.006/2; //div 1000 atractoresmedios[21].loc.x = atractoresmedios[21].loc.x+0.002; // div 1000 atractoresmedios[21].loc.y = atractoresmedios[21].loc.y-0.005; // div 1000 atractoresmedios[21].loc.z = atractoresmedios[21].loc.z+0.006/2; //div 1000

}

void dibujarConexiones(){

atractoresmedios[7].loc.x = atractoresmedios[7].loc.x-0.009; // div 1000 atractoresmedios[7].loc.y = atractoresmedios[7].loc.y+0.001; // div 1000 atractoresmedios[7].loc.z = atractoresmedios[7].loc.z+0.009/2; //div 1000

} void actualizarStructPariculas(){ for(int i=0; i<atractoresmedios.length; i++){

atractoresmedios[22].loc.x = atractoresmedios[22].loc.x-0.001; // div 1000 atractoresmedios[22].loc.y = atractoresmedios[22].loc.y-0.002; // div 1000 atractoresmedios[22].loc.z = atractoresmedios[22].loc.z+0.002/2; //div 1000

if(atractoresmedios[i].getNumVecinos()==3){ int[] arrayVecinos = atractoresmedios[i].getVecinos(); PVector [] posiciones2 = new PVector[arrayVecinos.length];

atractoresmedios[23].loc.x = atractoresmedios[23].loc.x-0.003; // div 1000 atractoresmedios[23].loc.y = atractoresmedios[23].loc.y+0.003; // div 1000 atractoresmedios[23].loc.z = atractoresmedios[23].loc.z+0.004/2; //div 1000 atractoresmedios[24].loc.x = atractoresmedios[24].loc.x+0.003; // div 1000 atractoresmedios[24].loc.y = atractoresmedios[24].loc.y-0.002; // div 1000 atractoresmedios[24].loc.z = atractoresmedios[24].loc.z+0.004/2; //div 1000 atractoresmedios[25].loc.x = atractoresmedios[25].loc.x-0.003; // div 1000 atractoresmedios[25].loc.y = atractoresmedios[25].loc.y+0.001; // div 1000 atractoresmedios[25].loc.z = atractoresmedios[25].loc.z+0.001/2; //div 1000 atractoresmedios[26].loc.x = atractoresmedios[26].loc.x+0.002; // div 1000 atractoresmedios[26].loc.y = atractoresmedios[26].loc.y+0.004; // div 1000 atractoresmedios[26].loc.z = atractoresmedios[26].loc.z+0.004/2; //div 1000 atractoresmedios[27].loc.x = atractoresmedios[27].loc.x+0.003; // div 1000 atractoresmedios[27].loc.y = atractoresmedios[27].loc.y+0.001; // div 1000 atractoresmedios[27].loc.z = atractoresmedios[27].loc.z+0.003/2; //div 1000 atractoresmedios[28].loc.x = atractoresmedios[28].loc.x+0.106; // div 1000 atractoresmedios[28].loc.y = atractoresmedios[28].loc.y+0.005; // div 1000 atractoresmedios[28].loc.z = atractoresmedios[28].loc.z+0.016/2; //div 1000 atractoresmedios[29].loc.x = atractoresmedios[29].loc.x+0.001; // div 1000 atractoresmedios[29].loc.y = atractoresmedios[29].loc.y-0.001; // div 1000 atractoresmedios[29].loc.z = atractoresmedios[29].loc.z+0.003/2; //div 1000 atractoresmedios[30].loc.x = atractoresmedios[30].loc.x-0.004; // div 1000 atractoresmedios[30].loc.y = atractoresmedios[30].loc.y-0.003; // div 1000 atractoresmedios[30].loc.z = atractoresmedios[30].loc.z+0.005/2; //div 1000

}

void renderStructPariculas(){ for(int i=0; i<structParticulas.length; i++){ stroke(0); structParticulas[i].renderCurve(true); } } // E . ESTRUTURA DE RECORRIDO DOS ATRACTORES void crearRecorridoAtractores(){

}

PVector[] pts_ASIS = new PVector[atractoresmedios.length]; for(int i=0; i<atractoresmedios.length; i++){ pts_ASIS[i]= atractoresmedios[i].loc; } //PolyStruct poly = new PolyStruct(pts_ASIS); //struct = (PolyStruct[]) append(struct, poly);

atractoresmedios[33].loc.x = atractoresmedios[33].loc.x+0.003; // div 1000 atractoresmedios[33].loc.y = atractoresmedios[33].loc.y-0.003; // div 1000 atractoresmedios[33].loc.z = atractoresmedios[33].loc.z+0.004/2; //div 1000

atractoresmedios[35].loc.x = atractoresmedios[35].loc.x-0.002; // div 1000 atractoresmedios[35].loc.y = atractoresmedios[35].loc.y-0.005; // div 1000 atractoresmedios[35].loc.z = atractoresmedios[35].loc.z+0.006/2; //div 1000 // atractoresmedios[i].loc.x = atractoresmedios[i].loc.x+(vecMinX [i]*2.8); // atractoresmedios[i].loc.y = atractoresmedios[i].loc.y+(vecMinY [i]*2.8); // atractoresmedios[i].loc.z = atractoresmedios[i].loc.z+((vecMinZ [i]*2.8)); }

// C . FUNCIONES DE MANIPULACIÓN // C.3 UNIÓN DE LOS ATRACTORES EN FUNCIÓM DE PROXIMIDAD ENTRE ELLOS void unirAtractoresmedios(){ for(int i=0; i<atractoresmedios.length; i++){ for(int j=0; j<atractoresmedios.length; j++){ float distancia = sqrt((((atractoresmedios[i].loc.x)-(atractoresmedios[j].loc.x))*((atractoresmedios[i].loc.x)-(atractoresmedios[j].loc.x))) +(((atractoresmedios[i].loc.y)(atractoresmedios[j].loc.y))*((atractoresmedios[i].loc.y)-(atractoresmedios[j].loc.y)))); if((distancia > 0)&&(distancia < 10)){ atractoresmedios[i].mass = atractoresmedios[i].mass + atractoresmedios[j].mass; atractoresmedios[j].mass = 0; } } } } // C.4 VARIACIÓN DE MASA DE LOS ATRACTORES EN FUNCIÓN DE PROXIMIDAD CON DETERMINADO NUMERO DE PARTÍCULAS void vecinos(){ for(int i=0; i<atractoresmedios.length; i++){ int n = atractoresmedios[i].getNumVecinos(); if (n>3){ atractoresmedios[i].mass = atractoresmedios[i].mass /1.1; areaInfluencia1[i] = areaInfluencia1[i] /1.05; areaInfluencia2[i] = areaInfluencia2[i] /1.05; } else{ atractoresmedios[i].mass = atractoresmedios[i].mass *1.02; areaInfluencia1[i] = areaInfluencia1[i] *1.02; areaInfluencia2[i] = areaInfluencia2[i] *1.02; } } } // C.5 MOVIMENTO DE ATRACTORES EM FUNCIÓN DE PROXIMIDAD ENTRE ELLOS void atractoresVsAtractores(){

if(contadorAtractores(1)==0){ //intervalo de conexiones actualizarRecorridoAtractores(); }

void actualizarRecorridoAtractores(){

atractoresmedios[32].loc.x = atractoresmedios[32].loc.x-0.011; // div 1000 atractoresmedios[32].loc.y = atractoresmedios[32].loc.y+0.008; // div 1000 atractoresmedios[32].loc.z = atractoresmedios[32].loc.z+0.013/2; //div 1000

atractoresmedios[34].loc.x = atractoresmedios[34].loc.x+0.004; // div 1000 atractoresmedios[34].loc.y = atractoresmedios[34].loc.y-0.012; // div 1000 atractoresmedios[34].loc.z = atractoresmedios[34].loc.z+0.013/2; //div 1000

}

for(int j=0; j<arrayVecinos.length; j++){ int vecino = arrayVecinos[j]; //println(psisGrid.arrayParticulas[vecino].loc); posiciones2[j] = psisGrid.arrayParticulas[vecino].loc; } PolyStruct polyParticulas = new PolyStruct(posiciones2); structParticulas = (PolyStruct[]) append(structParticulas, polyParticulas);

}

atractoresmedios[31].loc.x = atractoresmedios[31].loc.x+0.001; // div 1000 atractoresmedios[31].loc.y = atractoresmedios[31].loc.y+0.003; // div 1000 atractoresmedios[31].loc.z = atractoresmedios[31].loc.z+0.004/2; //div 1000

}

}

for(int i=0; i<atractoresmedios.length; i++){ for(int j=0; j<limites.getTotalPath(); j++){ if(limites.intersection (j, atractoresmedios[i].loc)){ //println(limites.getVecIntersec(j, atractoresmedios[i].loc)); atractoresmedios[i].G =atractoresmedios[i].G;

atractoresmedios[0].loc.x = atractoresmedios[0].loc.x-00.1; // div 1000 atractoresmedios[0].loc.y = atractoresmedios[0].loc.y-0.005; // div 1000 atractoresmedios[0].loc.z = atractoresmedios[0].loc.z+0.011/2; //div 1000

}

}

// D . RELACIÓN CON EL ENTORNO void cambiarRepulsores(){

//atractoresmedios[i].loc.x = atractoresmedios[i].loc.x+vecMaxX [i]; //atractoresmedios[i].loc.y = atractoresmedios[i].loc.y+vecMaxY [i]; //atractoresmedios[i].loc.z = atractoresmedios[i].loc.z+vecMaxZ [i];

// if((distancia > (distanciaMIN [i]))&& (distancia < (distanciaMAX [i]))){ if((distancia > (areaInfluencia1[i]))&& (distancia < (areaInfluencia2[i]))){ psisGrid.arrayParticulas[k].MAX_VEL=psisGrid.arrayParticulas[k].MAX_VEL*(velocidMAX [i]*10);

}

}

for(int i=0; i<atractoresmedios.length; i++){ estelaAtract[i].addPt(atractoresmedios[i].loc); } } void renderRecorridoAtractores(){ stroke(100); for(int i=0; i<estelaAtract.length; i++){ estelaAtract[i].renderLine(false); } } // CONTADOR DE FRAMES, TIEMPO int contStruct(int resol){ cont ++; cont = cont % resol; // contador para dar mayor o menor definicion a la curva return cont; } int contadorAtractores(int resol){ contAtract ++; contAtract = contAtract % resol; return contAtract; } // FUNCIONES DE TECLADO void keyPressed() { if(key==’t’||key==’T’){ // si pulsamos “t” mostrar vista cenital escena.topView = !escena.topView; } if (key == ‘p’||key==’P’){ pause = !pause; if(pause)noLoop(); else loop(); } if(key==’c’||key==’C’){ // si pulsamos “c” mostrar curvas showCurves = !showCurves; } if(key==’s’||key==’S’){ record = true; } if(key==’f’||key==’F’){ file = true; } }

51


1 10 20 30 40

Recorrido de los atractores

40

Vectores de valor de masa de los atractores

30

20

30

40

20

10

Escenario Autogenerado El proceso de interconexiones entre las partículas y atractores se ha desarrollado hasta el cuadragésimo frame en Processing. Llegado a este límite, ha sido importado en Rhino todo el diagrama que se compone de: líneas que conectan partículas y atractores, recorrido y masa de los atractores, vector de velocidad de las partículas. La red compuesta de estos sub-elementos será la base para el desarrollo de una morfología que contendrá y reinterpreterà los datos del análisis utilizados hasta ahora.

52

Número frame

Punto inicial de salida del sistema de partículas: disposición según una malla ortogonal Vectores de velocidad de las partículas

Número frame


20

18

19

17

16

15

14

13

12

11

10

Recorrido de un atractor

Sistema de partículas A Sistema de partículas B

Sistema de partículas C

Conexiones entre partículas y atractores

Vectores de velocidad de las partículas

Vectores de valor de masa de los atractores en cada frame

Esquema de conexiónes de un atractor en cada frame con diferentes partículas.

53


Informaci贸nes derivadas de Processing e importadas en Rhino.


Recorrido de los atractores

Conexiones entre partículas y atractores

Vectores de velocidad de las partículas

Conexiones entre partículas y atractores al cuadragésimo frame importadas en Rhino e inserción en Plaza Lesseps.

56


57


Estudio Morfologico

Estructura general

f+10

f

Superficies planas de conexión de la estructura

Primeras Morfologías Superficie a partir de la estructura definida por una partícula y un atractor en 11 frames.

58


Estructura general

Masa del atractor traslado en el punto inicial

Superficies planas de conexi贸n

Vector velocidad part铆cula

Redefinici贸n de la estructura a partir de las variables velocidad de la part铆cula y masa del atractor.

59


Vectores de valor de masa de los atractores en cada frame

Valor del tiempo de vida de las partículas en cada frame

Superficie plana de conexión

Vectores velocidad de las partículas en cada frame

Intersección de planos de diferentes sistemas de partículas

Sistemas de partículas B

Sistemas de partículas A

Planos de relación atractor - partícula manipulados según la variación del valor de masa del atractor y el tiempo de vida de las partículas en cada frame.

60


Vista en planta del conjunto de las superficies generadas

La intersecci贸n de planos correspondientes a diferentes atractores genera una malla global.

61


Sistema de partículas E

Sistema de partículas A

Sistema de partículas C 40 30 20

10

1

Conexión alternada

Sistema de partículas F

División del espacio

10

A

9

8

7

6

Sistema de partículas D

30 20 10 1

Definición de una superficie de dos curvas concéntricas con puntos de control en los puntos de las partículas y valor de masa del atractor

B

A. Conexión alternada del primero frame de cada sistema de partículas y división del espacio entre ellos en diez puntos. B. Definición de una superficie a partir de la polylinea de conexión de las partículas y la del valor de masa del atractor.

62

4

a 3

a 2

1

Sistema de partículas B

40

Valor de masa atractor

5


C

40’

40

La variación del recorrido del atractor genera una nueva conformación de la estructura

Nueva estructura

D

C. Vista en planta de todas las superficies. D. Deformación de todas las superficies generadas en función de la variación del recorrido del atractor.

63


40

30

Identificación de cinco frames de referencia del recorrido del atractor 20

10 Sistema de partículas C

1

Sistema de partículas B

Para cada sistema de partículas identificación de la línea que se conecta al frame de referencia del recorrido del atractor

Sistema de partículas A

A

Conexión de las dos líneas identificadas con un loft inverso

Vista en planta del conjunto de loft en en secuencia alterna

B

A,B,C,D. Loft definido a partir de polylineas que conectan las partículas al atractor en diferentes frames.

64


Vista lateral del conjunto de loft en en secuencia

C

D

40

40’

Desplazamiento del punto en el frame de referencia

D’

D

Desplazamiento del punto en el punto de referencia de la partícula

B’ B

A

A’

E

E. Manipulación de los puntos correspondientes a las partículas y atractores con consecuente deformación de la estructura.

65


3

2

Puntos de las partículas que se conectan al atractor en el punto 1

4

Recorrido del atractor A

Punto del atractor

1

3

2

Curva perimetral de relación partícula-atractor 4

B

Curva construida a partir de puntos de control (1,2,3,4)

1

3

2

4

Secuencia de curvas en cada frame durante el recorrido de una partícula

3 2

4

C

1

1

D

A. En cada frame se identifican los puntos pertenecientes a los recorridos de los atractor y de las partículas con que se conectan. B. Se define una curva perimetral de relación de los puntos partícula - atractor; luego se define la curva construida a partir de puntos de control de esta curva. C. Lectura de la secuencia de curvas durante el recorrido de una partícula. D. Loft resultante de la secuencia de curvas.

66


Estructura inicial

A

B

Perimetros de relación partículas-atractor en cada frame

C. Curva construida a partir de los puntos de control C

Definición de las curvas en cada frame

Recorrido atractor D

Cuota de cada curva en relación al atractor E

A,B. Estructura creada a partir de la relación de un atractor con las particulas con que se conecta en cada frame. C,D. Definición de una curva con puntos de control en la localización de las partículas. A cada curva se asigna la cuota del atractor en el frame correspondiente. E. Lectura de la secuencia de superficies planas de las curvas de nivel al largo del recorrido del atractor.

67


Estructura inicial: polylines de relación partículas-atractores en un frame

Perimetro de la plaza (edificios) Offset de 5m del perimetro

Eliminación de polylines que pasan la línea roja

Nueva estructura y en rojo definición de los perimetros de relación partículas-atractores

Vista vertical: nueva estructura y en rojo los perimetros de relación particulas-atractores

Morfología final Las primeras pruebas de morfologías, que intentaron de reprocesar la enorme cantidad de datos derivadas de Processing, aunque generando contenidos formales interesantes, han resaltado carencias en la repetición sistemática de una regla básica. Ahora, más que conseguir un resultado morfológico, la idea es ir por niveles de trabajo que pueden definir poco a poco lo que hicimos y que, sobre todo, nos pueden dar ideas sobre la evolución, ésta es la única manera de controlar la complejidad de los datos que tenemos. La morfología final es la que mejor puede incorporar e interpretar estas informaciones, y que nos lleva a una visión rica de nuevas ideas de diseño.

68


f2

f 12

f4

f 14

f6

f 16

f8

f 18

f 10

f 20

Secuencia de frames: defenici贸n de perimetros seg煤n afectaci贸n de atractores.

69


Recorrido atractores

2

4

6

8

10

12

14

16

18

20

Polylines de relación partículas-atractores

Recorrido atractores Polylines de relación partículas-atractores

20 18 16 14 12 10 8 6 4 2

Los perímetros se mueven en el eje z de una cantidad igual al valor z de la masa del atractor, esto en cada frame

Defenición de perimetros según afectación de atractores. Visión total de una secuencia de frames.

70

Recorrido de las partículas


Perimetros de relaci贸n part铆culas-atractores

Masa atractores

71


Perimetros de relación partículas-atractores

Mediana Punto de control

La triangulación interna del perimetro se obtiene de un componente de Grasshopper que lo hace de forma automática y sin posibilidad alguna de variación El valor de la masa, en cada frame, será dividido en tres y el segmento obtenido se aplica en los vértices de todos los triángulos en la dirección a lo largo de las medianas Definición de una curva spline de grado G=2 con puntos de control en los vértices interiores de los segmentos obtenidos Generación de una superficie plana entre las curva spline y el perímetro del triángulo

Creación de superficies en los planos

f4 f2 Definición de los puntos externos del perímetro de los triángulos en dos frames consecutivos

El vector de velocidad de cada sistema de partícula se lleva en los puntos externos definidos

Definición de una curva spline de grado G=2 con puntos de control en los vértices exteriores de los vectores velocidad

Creación de superficies loft entre la curva y el perímetro rectangular

f4

f2

Vector velocidad sistema de partículas Loft Creación de superficies en las verticales

Defenición de superficies.

72


Atractor 1

Atractor 2

Atractor 3

Vista en planta: prueba de un conjunto de superficies en el recorrido de tres atractores

Valor de masa = 0

Valor de masa = 20

Valor de masa = 35

Secuencia del código en Grasshopper para la triangulación, la formación de curvas, superficies y manipulación

Manipulación espacial según la variable de masa de los atractores; se pueden obtener diferentes configuraciones de superficies.

73


Valor de masa = 0 Valor de masa = 20 Valor de masa = 35


Conjunto de superficies en el recorrido de tres atractores con variaci贸n en el valor de masa.


Taller de Tooling


Introducción

Después de esta etapa de diseño digital, con referencias planimétricas y volumétricas procesadas en 3D, fue necesario un cambio de metodología que fuera capaz de integrar e interactuar con nuestro camino. Con el taller CAD/CAM and Rapid Tools no intentamos una mera reproducción del modelo que pudiera servir como objeto de exposición y discusión, sino que conseguimos la producción del objeto material para entenderlo como parte integral del proceso de diseño. Esto nos ayudó a explorar nuevas soluciones y nuevas perspectivas, nos puso en frente al tema de la factibilidad estructural y de producción, mejorando nuestras perspectivas de ideas. Todo el proceso se puede dividir en tres fases: Programación y Producción CNC El primer paso de este taller fue el de comprender el funcionamiento de un CNC, entendido como lógica y ciclo de procesamiento, con el fin de estudiar la estrategia de mecanizado y el uso de las herramientas apropiadas. A continuación, pasamos a aprender el software, RhinoCAM (plug-in para Rhinoceros) a través del cual diseñar, simular y controlar las diferentes operaciones. Sólo después estas etapas de aprendizaje se comenzó la fase de análisis y descomposición del modelo digital en Rhino, que una vez terminado se pasó a RhinoCAM para ajustar todos los parámetros y para la simulación. Mecanizado CNC El segundo paso fue la producción física real, y este necesito del conocimiento de las fases de trabajo de la máquina CNC, así como los comandos para guiar el proceso y también las propiedades de los materiales utilizados y los instrumentos elegidos. Montaje Una vez obtenidas las piezas de mecanizado CNC, empezaron las fases de limpieza, de separación de las piezas, de refuerzo, de pintura final y de montaje. Todo el proceso se realizó en el taller de MEDIODesign.

78


Desarrollo Maqueta CNC

Atractor 3

En Rhinoceros: - Análisis de la geometría de los proyectos - Descomposición de geometrías 3d en geometrías mas simple para el mecanizado En RhinoCAM: - “Nesting” y simulación del material - Estrategias de mecanizado (MOps) 2d y 3d - Creación de “toolpaths” - Creación de herramientas - Modificación y/o creación de geometrías según las herramientas utilizadas - Simulación en tiempo real de estrategias de mecanizado - Post procesado - Creación de archivos de mecanizado (.dnc files)

Programación y Producción CNC Análisis y descomposición del modelo digital en Rhino. Identificación de una parte del proyecto para el desarrollo de la maqueta.

79


f8 A

A’

f6 f4 f2

Secciones para la creación de espesor

Análisis de la geometría del proyecto. Alzado y seccion A-A’, parte elegida para el desarrollo de la maqueta. Frame 2-4-6-8, atractor 3.

80


División de triángulos en tres partes y creación de las superficies internas

3

1

2

Creación de las superficies internas con el metodo sweep con dos binarios

f6

f4

Conjunto de las superficies internas

Estudios de matería. Creación de superficies internas y de espesor de la estructura.

81


Rendering del conjunto final de superficies para el estudio de la maqueta. Escala 1:80.

82


83


Maqueta digital, escala 1:80. Tama単o 790x527x97mm.


Identificación de los planos para las secciónes

f8

f6

f4

f2

Explodido con los planes de corte

Descomposición de la geometría 3d en geometría más simple para el mecanizado. Escala 1:80.

86


f4

f2

44mm 47mm 30mm

f6

Piezas individuales para la mecanizaci贸n

18mmm

f8

787mm

498mm

Piezas individuales para la mecanizaci贸n

f8

485mm

515mm

f6

468mm

430mm

f4

464mm

776mm

f2 787mm

87


Se crea y se define el stock

Se crean las herramientas

Se definen las operaciones de mecanizado

Simulaci贸n en tiempo real de estrategias de mecanizado

Punto 0,0,0 de referencia espacial

Creaci贸n del stock 2000x1000x50 mm

Creaci贸n del nesting

Particular del enganche de las piezas al stock con cilindros d=5mm

Interfaz de trabajo de RhinoCAM.

88


Nesting: disposici贸n de las piezas tratando de ocupar el menor espacio posible

Bordes de 50mm para obtener una estructura r铆gida al final del proceso

Y

Z

X

Agujeros en las cuatro esquinas de 3mm de di谩metro para obtener un punto fijo de referencia

Offset de destacamento piezas-stock de 20mm

Y

Z

X

Enganche de las piezas al stock con cilindros d=5mm

Y

Z

X

Nesting y simulaci贸n del material.

89


Creación de “toolpaths” Operación 2-1/2 Axis Milling y 3 Axis Milling: A - Engraving B - Horizontal Roughing C - Parallel Finishing D - Horizontal Finishing E - Horizontal Finishing0

Creación de herramientas dependiendo del Machining Operations (MOps) que se debe hacer

Estrategias de mecanizado (MOps) 2D y 3D.

90


A - Engraving

B - Horizontal Roughing

C - Parallel Finishing

D - Horizontal Finishing

E - Horizontal Finishing0

Creaci贸n par谩metros de los diferentes Machining Operations (MOps).

91


1

Esta operación sirve para obtener un punto fijo de referencia, de modo que cuando se trabaja al otro lado del panel, tenemos una ubicación precisa de la colocación

2

Agujeros en las cuatro esquinas de 3mm de diámetro

Herramienta FlatMill_3mm

Operación A. Simulación animada del Engraving, 2-1/2 Axis Milling.

92


1

3

2

4

Herramienta BallMill_16mm

Simulaci贸n en tiempo real de estrategias de mecanizado

Operaci贸n B. Simulaci贸n animada del Horizontal Roughing, 3 Axis Milling.

93


1

3

2

4

Herramienta BallMill_12mm 45 掳 de corte

Operaci贸n C. Simulaci贸n animada del Parallel Finishing, 3 Axis Milling.

94


Horizontal Finishing en el per铆metro exterior

1

3

2

4

Herramienta BallMill_6mm

Operaci贸n D. Simulaci贸n animada del Horizontal Finishing, 3 Axis Milling.

95


Y

Z

X

Operaci贸n de vuelco del 3D utilizando la misma referencia 0,0,0

Mismas operaciones: A - Engraving B - Horizontal Roughing C - Parallel Finishing D - Horizontal Finishing

M谩s se hace: E - Horizontal Finishing0 esta operaci贸n se hace para destacar los agujeros dal stock

Mecanizado de la otra cara del stock.

96


Horizontal Finishing0 en los agujeros interiores

1

3

2

4

Herramienta BallMill_6mm

Operaci贸n E. Mecanizado de la otra cara del stock. Simulaci贸n animada del Horizontal Finishing0, 3 Axis Milling.

97


Cambio automático de las herramientas

Ponte

Plano de trabajo sp 20mm

CNC (computer numerical control) a 3 ejes, trabajo en x,y,z, Volumen máximo de trabajo 305x155x28 cm La etapa de mecanizado comprende: - Conocimiento del funcionamiento de la máquina CNC - Preparación del material - Cargado y calibrado de herramientas - Calibrado de material - Mecanizado

Mecanizado CNC Producción física de los proyectos finales. Se mecanizan los archivos obtenidos en la primera parte en una máquina de control numérico de 3 ejes.

98

Corte fresado

Palancas para asegurar el material al plano


4 4

3

2

1

5

Cambio automรกtico de las herramientas Gestiรณn hasta 8 herramientas

6 7 8

Corte fresado

Conocimiento del funcionamiento de la mรกquina CNC.

99


Panel de espuma de poliuretano 2000x1000x50mm densidad=160kg/m3 color amarillo

El panel se coloca y se fija paralelo al plano de trabajo

Preparaci贸n del material.

100


Cargado y calibrado de herramientas mediante el uso de una placa de referencia

Calibrado del plano y del material mediante el uso de una placa de referencia con el que medir la altura del material respecto la superficie de trabajo

Cargado y calibrado de herramientas y de material.

101


Operaci贸n A: Engraving Agujeros en las cuatro esquinas de 3mm de di谩metro para obtener puntos fijos de referencia

Operaci贸n B: Horizontal Roughing

Mecanizado.

102


Operaci贸n C: Parallel Finishing

103


Operaci贸n D: Horizontal Finishing

104


Operaci贸n de vuelco para el mecanizado de la otra cara del stock

Mismas operaciones: A - Engraving B - Horizontal Roughing C - Parallel Finishing D - Horizontal Finishing

E - Horizontal Finishing0 esta operaci贸n se hace para destacar los agujeros del stock

105


Mecanizado: resultado final.

106


498mm 485mm

515mm

468mm

430mm

464mm

776mm

787mm

Destacamento y limpieza de las piezas finales

La etapa de montaje comprende: - Destacamento de las piezas desde el panel - Limpieza de las piezas - Refuerzo con resina - Pintura - Montaje y maqueta final

Montaje Etapa final de destacamento, limpieza, refuerzo y montaje de las piezas del mecanizado.

107


Refuerzo con resina bicomponente transparente y pintura spry blanca mate.

108


109


Maqueta final - escala 1:80. Tama単o 790x527x97mm.

110


111


112


113


Proyecto


Introducción

frame 10

Puestas las bases de datos y de diseño, definida la regla final morfológica y creado el primer modelo, ahora se intenta de enlazar a todo esto el uso del programa espacial. Esto implicará un nuevo proceso que conduzca a la redefinición de los parámetros iniciales para llegar a un producto final que puede satisfacer las necesidades clásicas de un espacio arquitectónico comercialresidencial-de relación. El objetivo es definir en Plaza Lesseps un 40% de edificado, con un 50% de viviendas, y el resto del espacio abierto. El programa es ripartido de forma esponjada sin crear masificaciones de altas densidades y se debe entender como un sistema con una cierta porosidad (vacio) y con un comportamiento adaptivo emergente al sitio. En nuestro proyecto hay la idea de mantener la estructura actual del tráfico vehicular que pero se adaptará a la dinámica del proceso de diseño y en estrecha relación con el tema de la base de datos inicial (recorridos peatonales). A continuación, se hace un estudio del espacio vital entendido como extensión de la lógica generativa del proceso morfológico de toda la estructura, repensado y ampliado conceptualmente por la creación de una última maqueta.

118


Desarrollo Proyecto atractoresmedios[17].loc.x = atractoresmedios[17].loc.x+0.003; atractoresmedios[17].loc.y = atractoresmedios[17].loc.y-0.005; atractoresmedios[17].loc.z = atractoresmedios[17].loc.z+0.005; atractoresmedios[18].loc.x = atractoresmedios[18].loc.x-0.007; atractoresmedios[18].loc.y = atractoresmedios[18].loc.y+0.003; atractoresmedios[18].loc.z = atractoresmedios[18].loc.z+0.008; atractoresmedios[19].loc.x = atractoresmedios[19].loc.x+0.001; atractoresmedios[19].loc.y = atractoresmedios[19].loc.y-0.005; atractoresmedios[19].loc.z = atractoresmedios[19].loc.z+0.005; atractoresmedios[20].loc.x = atractoresmedios[20].loc.x+0.002; atractoresmedios[20].loc.y = atractoresmedios[20].loc.y+0.006; atractoresmedios[20].loc.z = atractoresmedios[20].loc.z+0.006; atractoresmedios[21].loc.x = atractoresmedios[21].loc.x+0.002; atractoresmedios[21].loc.y = atractoresmedios[21].loc.y-0.005; atractoresmedios[21].loc.z = atractoresmedios[21].loc.z+0.006;

frame 20

atractoresmedios[22].loc.x = atractoresmedios[22].loc.x-0.001; atractoresmedios[22].loc.y = atractoresmedios[22].loc.y-0.002; atractoresmedios[22].loc.z = atractoresmedios[22].loc.z+0.002; atractoresmedios[23].loc.x = atractoresmedios[23].loc.x-0.003; atractoresmedios[23].loc.y = atractoresmedios[23].loc.y+0.003; atractoresmedios[23].loc.z = atractoresmedios[23].loc.z+0.004; atractoresmedios[24].loc.x = atractoresmedios[24].loc.x+0.003; atractoresmedios[24].loc.y = atractoresmedios[24].loc.y-0.002; atractoresmedios[24].loc.z = atractoresmedios[24].loc.z+0.004; atractoresmedios[25].loc.x = atractoresmedios[25].loc.x-0.003; atractoresmedios[25].loc.y = atractoresmedios[25].loc.y+0.001; atractoresmedios[25].loc.z = atractoresmedios[25].loc.z+0.001; atractoresmedios[26].loc.x = atractoresmedios[26].loc.x+0.002; atractoresmedios[26].loc.y = atractoresmedios[26].loc.y+0.004; atractoresmedios[26].loc.z = atractoresmedios[26].loc.z+0.004; atractoresmedios[27].loc.x = atractoresmedios[27].loc.x+0.003; atractoresmedios[27].loc.y = atractoresmedios[27].loc.y+0.001; atractoresmedios[27].loc.z = atractoresmedios[27].loc.z+0.003;

frame 30

atractoresmedios[28].loc.x = atractoresmedios[28].loc.x+0.106; atractoresmedios[28].loc.y = atractoresmedios[28].loc.y+0.005; atractoresmedios[28].loc.z = atractoresmedios[28].loc.z+0.016;

Nuevos valores de desplaziamento de los atractores en el código de Processing

frame 40

Replanteo de Datos Después de las primeras pruebas de importación de datos de Processing en Rhino y la siguiente estrategia adoptada para la definición de una morfología, se observaron en el proceso de mecanizado, cuestiones relacionadas con la distancia a lo largo del eje z, es decir, los frames estaban demasiado cerca entre ellos para definir espacios interiores habitables. Así que optamos por un retorno a Processing para redefinir algunos parámetros de control del patrón de atractores a lo largo del eje z. De esta manera se obtuvo una estructura de polilíneas con distancias entre los frames más adecuada a las necesidades de las viviendas.

119


Conexiones hasta el frame 50 en Processing.

120


Se sigue de nuevo todo el procedimiento hecho antes, con la eliminación de polilíneas que pasan el perímetro

f 50 f 46 f 42 f 38 f 34 f 30 f f f f f f f

26 22 18 14 10 06 02

Estructura resultante después del proceso de creación de perímetros en Rhino.

121


Se sigue de nuevo todo el procedimiento de creaci贸n de superficies.


Estructura inicial que empieza desde la estructura triangular generada para los frames

Superficies interiores derivadas del booleano en True

Superficies interiores derivadas del booleano en False

Pruebas de generación espacial

Booleano True o False

Código en Grasshopper

Lógica de ocupación del espacio Definida la estructura básica con los nuevos valores en Processing, ahora se intenta utilizar sólo atractores que tienen entre ellos un vínculo de tipo funcional-espacial. Por esta razón hemos diseñado una estrategia que trata de identificar los posibles vínculos entre los diferentes frames en el espacio; con el uso de esferas, que identifican en función del radio la importancia de un nodo, se han identificado las localizaciones de las conexiones verticales principales y sugerencias de zonas de asentamientos humanos. Otra página, análisis de flujos de distribuición vertical según centralidad de los nodos estructurales. Alzados.

124


f 30

r = 3 unidad

1 1

El número de vértices de los triángulos que se encuentran en el nodo definen el radio de la esfera

1 1

f 26 f 22

1

1

1

1

1

La superposición de las esferas en vista vertical nos da instrucciones sobre los espacios más fáciles de conectar y con superficies más grandes

f 18

r = 1 unidad r = 2 unidad

125


Análisis de flujos de distribuición vertical según centralidad de los nodos estructurales. Alzado y planta.


A

Se lleva el perímetro a la cota del atractor en el determinado frame

B

Se desplazen los perimetros a lo largo del recorrido del atractor correspondiente

C

Se escalan los perímetros

D

Se desplazan los perímetros en la estructura definida entre atractor y partículas

E

Conexión de perimetros mediante rampas

Definición de ocupación en la plaza.

128


1

2

3

4

Catalogo de diferentes posibilidades de asentamientos en el sitio derivados de la manipulaci贸n de las variables. Planta

129


1

2

Catalogo de diferentes posibilidades de asentamientos en el sitio derivados de la manipulaci贸n de las variables. Perspectiva

130


3

4

131


Puntos de control

Spline

Bases de contacto estructuraplaza

A

Con la triangulación se define un espacio peatonal sobre la carretera Agujeros entre la carretera y los espacios peatonales

B

Transición del sistema-entorno A. Triangulación de la malla con los puntos de los atractores que interactúan con el suelo. B. Triangulación de los espacios restantes que definen los recorridos peatonlaes.

132


C

D

C,D. Nuevas superficies derivadas del proceso y soluci贸n final en Plaza Lesseps.

133


Desarrollo del proyecto en configuraci贸n de asentamiento n掳 1.

134


135


Auditorio

Locales comerciales y restauración

Usos, programas y soluciones La ocupación del espacio de la morfología hecha, desea hacer referencia a la naturaleza misma de su concepción, espacio cambiante y adaptable en función de los parámetros que se manipulan. Un campus artístico que ofrece el paso constante de artistas de todo el mundo y que comparten este espacio por un período limitado, que se forman y trabajan en tallers, y que a través de sus obras enriquecen la plaza, llevando una nueva visión de la estructura misma. El arte interactúa directamente con la arquitectura de una manera única e indisoluble.


Nucleos de viviendas de estanc铆a temporal

Talleres / oficinas

f 34 f 30 f 26 f 22 f 18 f 14 f 10 f 06 f 02 Locales comerciales y restauraci贸n

Galerias expositivas


Distribuición programática Ocupación Distribuición

frame 34

frame 30

frame 26

Ocupación y distribuición en las diferentes plantas del edificio.

140


frame 22

frame 18

frame 14

frame 06 y 10

141


Agujeros que cuando varían en tamaño afectan la geometría de la vivienda

Punto de relación entre agujeros y geometría de la vivienda

Código de Grasshopper

Spline que define el espacio de las viviendas

Puntos de control de la spline

Capacidad de buscar el punto de control dentro de un cierto ángulo

Proceso de definición de una unidad de vivienda

Distribución de espacios interiores El espacio habitable, así como los espacios de relación y conexión vertical, están estrechamente relacionados con la morfología de todo el complejo. Así mediante la manipulación de los valores, tales como la masa de los atractores que regulan el tamaño de los agujeros en las estructuras horizontales, se puede obtener una configuración diferente, de forma dinámica, de las zonas de viviendas con consiguiente cambio morfológico y de tamaño. Esto permite llegar a la definición de muchas combinaciones de soluciones, generando cada vez, así como un comportamiento emergente, nuevos espacios y nuevas perspectivas de relación.

142


53

39

Metros cuadrados de la vivienda

53

33

38

52 28

26

62

Atractor 08 . frame 26 . masa 35u

65

48

60

40

El aumento del valor de la masa del atractor implica el cambio de la morfología de la vivienda con aumento de los metros cuadrados

46

60 32

32

71

Atractor 08 . frame 26 . masa50u

146 74

52

Generación de nuevos espacios de viviendas

84

64 47

54

208% 123%

Atractor 08 . frame 26 . masa 65u

86

Ejemplo del aumento de los espacios habitables

100% Definición de espacios habitables y manipulación de área según la variable de masa

143


Sistema de distribuci贸n horizontal

frame 34

Sistema de distribuci贸n vertical

frame 30

Viendas

frame 26

Sistema de distribuci贸n vertical y horizontal para conectar viviendas. Vol煤menes de la vivienda en distintos frames.

144


frame 34

frame 30

frame 26

Structura de la morfologĂ­a

Viviendas

145


Piel vivienda Porosidad Estructura principal

Situación inicial: las divisiónes verticales son n. 35

Las aberturas serán de mayor diámetro si estan más cerca de los agujeros de la estructura principal

Agujeros estructura principal

Cambio valor radio de influencia 2: se obtienen agujeros más pequeños

Estudio de la porosidad de las viviendas. Puede cambiar paramétricamente el número, tamaño y rotación de las aberturas dependiendo de la proximidad a los agujeros de la estructura principal.

146


Aumento de divisiones verticales

Rotaci贸n de los agujeros sobre su eje longitudinal, valor 1.0 = 90掳

147


rendering Imรกgenes del proyecto.


Maqueta

definición Digital En esta etapa del proceso de diseño, se hizo necesario volver de nuevo al mecanizado para releer y buscar nuevas soluciones de todo el trabajo ya realizado. Por este mecanizado se optó por el corte láser, trabajando con un cartón de alta densidad de 2mm de espesor, color blanco mate. El uso de esta tecnología requiere tener que pensar todo el volumen dividido en tantas capas horizontales y verticales que se intersectan creando puntos de contacto estructurales. Es precisamente esta lógica que sugiere nuevas ideas de diseño relacionadas con su naturaleza de fabricación y entonces de factibilidad de realización.

156


Identificaci贸n en planta, entre el frame 26 y 30 del atractor 08, de la parte de edificio para el desarrollo del modelo digital

157


Baricentro del triángulo División de los lados en el mismo número de piezas (10)

2 3

10 9 8 7

C

10

6

9

4

5

8

5

Superficie de conexión de los agujeros de los dos frames para determinar las costillas y los anillos

2

1

5

4

3

11

10

9

8

7

6

4

7

6

6

3

B

2

5 A

6

4 3 2

f 30

6

1

7

6

5

4

3

2

1

9

8

5

10 4 3 2

5 4

1 3 2

f 26

2

1

1 2 3 4 5

4

9 8 7 C

10

6

9

5

8

4 6

3

B

A

2

4

1 3

1 2 3 4 5 6 7 8 9

2

10

9

8

7

6

5

4

3

2

1

1

f 26 1

2

3

Definición de la estructura de la base horizontal con la lógica de la ocupación del espacio mínimo

Proyecto y diseño del modelo en Rhino con todas sus piezas, incluyendo las juntas macho-hembra. Escala del modelo 1:40.

158

10

5

Division de la superficie para determinar los anillos horizontales

Costillas verticales

11

10

9

8

7

6

5

7

6

f 30

Definición de la estructura de división del modelo

3

2

7

6

5

4

3

10

9

8

4

5

6

7

8

9

10

Definición, con intersección de planes, de las costillas verticales

Plano horizontal de base con su espesor de 2mm


Costillas verticales con juntas macho-hembra

Definici贸n de las costillas verticales

1 2 3 4 5 6

1 7

2

8 9

Anillos horizontales con juntas macho-hembra

3 4 5 6 7 8 9

Definici贸n de los anillos horizontales

Alzado

159


Rendering interior y alzado.

160


161


Bases horizontales A_A A_B Costillas verticales B_A B_B B_C Anillos horizontales C_A C_B C_C

nesting Numeraci贸n de las piezas.

162


163


Nesting de las piezas en 14 paneles de cart贸n, 700x500x2mm.

164


165


montaje El montaje de la maqueta se hizo todo sin usar pegamento, se realiz贸 s贸lo mediante juntas. Material: cart贸n blanco mate alta densidad, espesor 2mm.

166


Base

Montaje del primero agujero

Costillas

Anillos

167


Uso del modelo digital en 3D como referencia para el montaje de todas las piezas numeradas

168


169


maqueta final Maqueta final, escala 1:40, 853x482x127mm. Material: cart贸n blanco alta densidad, espesor 2mm.

170


171


172


173


174


175


176


177


Design Tools Rhinoceros Grasshopper AutoCAD 3ds Max V-Ray Processing Photoshop Illustrator InDesign RhinoCAM CNC Milling Laser-Cut


Andrea Buttarini Oriol Carrasco Carlos Eduardo Castro Marilia Couthino Jorge Dur贸 Carolina Figueiredo Carlos Gomez Laura Gomez Nuria Gomez Miguel Huelga Fernando Gorka de Lecea Laura Liberal Manuel Lopes Laia Mogas Xavier Montoya Cristina Moral Juan Ospina Maria Pella Iria de la Pe帽a Irene Per Justin Piercy Fernando Rial Eshan Salari


CoDeLab Book