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
8°
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
N°
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