279

Libro GENERATIVO-plotter

  • Upload
    others

  • View
    28

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Libro GENERATIVO-plotter
Page 2: Libro GENERATIVO-plotter
Page 3: Libro GENERATIVO-plotter
Page 4: Libro GENERATIVO-plotter

Libro GENERATIVO-plotter.indb 4Libro GENERATIVO-plotter.indb 4 13/01/2016 12:05:4113/01/2016 12:05:41

Page 5: Libro GENERATIVO-plotter
Page 6: Libro GENERATIVO-plotter

Colección ManualesManual de diseño generativoPrimera edición, diciembre 2015Tiraje: 250 ejemplares

© De esta edición: Fondo Editorial Universidad de Lima Av. Manuel Olguín 125 Urb. Los Granados, Lima 33 Apartado postal 852, Lima 100 Teléfono: 437-6767, anexos 30130 y 30131 Fax: 435-3396 [email protected] www.ulima.edu.pe

Diseño, edición y carátula: Fondo Editorial de la Universidad de Lima

Impreso en el Perú

Se prohíbe la reproducción total o parcial de este libro, por cualquier medio,sin permiso expreso del Fondo Editorial.

ISBN 978-9972-45-310-6

Hecho el depósito legal en la Biblioteca Nacional del Perú N.º 2015-17992

Roncoroni, Umberto, 1956-Manual de diseño generativo / Umberto Roncoroni. Primera edición. Lima:

Universidad de Lima. Fondo Editorial, 2015. 278 páginas: ilustraciones. (Colección Manuales).

Bibliografía: páginas 269-276.

1. Arte generativo - - Manuales.2. Arte generativo - - Problemas, ejercicios.3. Arte digital - - Técnicas.I. Universidad de Lima. Fondo Editorial.

776 R82M (DDC 23)

ISBN 978-9972-45-310-6

Libro GENERATIVO-plotter.indb 6Libro GENERATIVO-plotter.indb 6 13/01/2016 12:05:4113/01/2016 12:05:41

Page 7: Libro GENERATIVO-plotter

Manual de diseño generativo 7

Introducción 11

Parte 1 Lección 1. El paradigma generativo 19

1.1 Breve historia del arte y del diseño generativo 191.2 Lo generativo como principio y metodología artística 221.3 Lo generativo en el dominio artifi cial 231.4 El diseño tradicional y el diseño generativo 241.5 Propiedades y ventajas del paradigma generativo 251.6 El arte generativo y la tecnología 27

Lección 2. El arte generativo y sus fundamentos conceptuales 292.1 El arte generativo y la cultura contemporánea 302.2 Aspectos del arte en la posmodernidad 312.3 La relación entre arte, ciencia y complejidad 342.4 Ideas para una estética generativa 35

Lección 3. Los aspectos científi cos del arte generativo 393.1 La complejidad, en general 403.2 La teoría de sistemas 413.3 La teoría del caos y el azar 433.4 Geometrías no euclidianas y fractales 443.5 Las simulaciones científi cas 463.6 Genética 483.7 Química, física, mecánica, biología 49

Lección 4. El paradigma generativo y la tecnología 514.1 ¿Qué son las tecnologías informáticas? 524.2 La complejidad y la computación 534.3 El cuestionamiento fi losófi co a la tecnología 554.4 La tecnología, el saber y el arte generativo 57

Índice

Libro GENERATIVO-plotter.indb 7Libro GENERATIVO-plotter.indb 7 13/01/2016 12:05:4113/01/2016 12:05:41

Page 8: Libro GENERATIVO-plotter

8 Umberto Roncoroni

Lección 5. Aprender y enseñar el arte generativo 595.1 Arte y educación 605.2 El arte generativo y el constructivismo 625.3 El arte generativo, la tecnología y la pedagogía 645.4 ¿Cómo enseñar y aprender el arte generativo? 655.5 Consejos para enseñar y aprender a programar 68

Parte 2 Tutorial básico 1. Los principios básicos de la programación 75

1.1 La tecnología: conceptos generales 751.2 ¡Comenzamos a programar! 771.3 Paradigmas y lenguajes de programación 781.4 Principales elementos de un lenguaje de programación 801.5 Elementos mínimos de computer science 81

Tutorial básico 2. Introducción a los sistemas-L 872.1 Los principios de los sistemas-L 882.2 Los sistemas-L predictivos y estocásticos 902.3 Los sistemas-L especiales 91Ejercicio 1. Primeros pasos con GDesign 93

Tutorial básico 3. Las imágenes bitmap y los gráfi cos vectoriales 973.1 Las imágenes en mapa de bits 97Ejercicio 2. Efectos de color en C# 1003.2 Vectores 103Ejercicio 3. Mesh en MaxScript 104

Parte 3 Tutorial 1. La espiral, geometría de la naturaleza 113

1.1 Características y propiedades de la espiral 113Ejercicio 4. Generar una familia de espirales con los sistemas-L 117Ejercicio 5. Programar una espiral con el lenguaje C# 119Ejercicio 6. Conchas generativas y paramétricas con 122los sistemas-L

Tutorial 2. Azar y ruido 1252.1 Procesos aleatorios naturales 1262.2 El azar y los números aleatorios con la computadora 127Ejercicio 7. Simulación analógica del movimiento browniano 129Ejercicio 8. Distribución aleatoria con los sistemas-L 131Ejercicio 9. Seudocódigo para el movimiento browniano 133Ejercicio 10. Movimiento browniano con los sistemas-L 134

Libro GENERATIVO-plotter.indb 8Libro GENERATIVO-plotter.indb 8 13/01/2016 12:05:4113/01/2016 12:05:41

Page 9: Libro GENERATIVO-plotter

Manual de diseño generativo 9

Ejercicio 11. Perfi l de una montaña en 2D con los sistemas-L 135Ejercicio 12. El ruido de Perlin con Photoshop 137Ejercicio 13. Programar el ruido de Perlin en C# 140

Tutorial 3. La autosimilaridad y los fractales 1453.1 Las formas fractales 145Ejercicio 14. El algoritmo del juego del caos 149Ejercicio 15. El copo de nieve de Koch con los sistemas-L 150Ejercicio 16. El triángulo de Sierpinski con los sistemas-L 152Ejercicio 17. Figuras autosimilares con los sistemas-L 154Ejercicio 18. El conjunto de Mandelbrot en VBasic 155Ejercicio 19. Sustitución recursiva en C# 158

Tutorial 4. Patrones y teselaciones 1654.1 Los patrones de la naturaleza 166Ejercicio 20. Teselación con formas irregulares 169Ejercicio 21. Teselación fractal con los sistemas-L 171Ejercicio 22. Curva de Peano con los sistemas-L 172Ejercicio 23. Celosías con los sistemas-L 174Ejercicio 24. Cruces etíopes con los sistemas-L 178Ejercicio 25. Algoritmo y código en C# para teselaciones 180de Voronoi

Tutorial 5. Vida artifi cial y autómatas celulares 1875.1 Introducción a los autómatas celulares 187Ejercicio 26. The Game of Life con VBasic 190Ejercicio 27. Edifi cio generativo con la vida artifi cial 193Ejercicio 28. Diff usion limited aggregation 197Ejercicio 29. Erosión con 3DSMax 200

Tutorial 6. Árboles y ramifi caciones 2076.1 Anatomía y arquitectura de los árboles 208Ejercicio 30. Ramifi cación simpodial con los sistemas-L 212Ejercicio 31. Árbol simpodial con epitonía 213Ejercicio 32. Árbol monopodial con hipotonía 214Ejercicio 33. Árbol con accidentes naturales 215Ejercicio 34. Árbol 3D con los sistemas-L 217

Tutorial 7. Organismos 2217.1 Los radiolarios 222Ejercicio 35. Estructura de un radiolario con los sistemas-L 225Ejercicio 36. Variaciones y parametrización de la estructura 228Ejercicio 37. Organismos con sistemas-L genéticos 231

Libro GENERATIVO-plotter.indb 9Libro GENERATIVO-plotter.indb 9 13/01/2016 12:05:4113/01/2016 12:05:41

Page 10: Libro GENERATIVO-plotter

10 Umberto Roncoroni

Tutorial 8. Image processing generativo 2358.1 La elaboración de imágenes 235Ejercicio 38. Filtros digitales personalizados con Photoshop 237Ejercicio 39. Crear un mármol generativo con Photoshop 241Ejercicio 40. Filtro blur en C# 244

Tutorial 9. Procesos generativos avanzados 247Ejercicio 41. Estructuras de ladrillos generativas 252Ejercicio 42. Experimentos de image processing generativo

GLOSARIO 257

BIBLIOGRAFÍA 269

Libro GENERATIVO-plotter.indb 10Libro GENERATIVO-plotter.indb 10 13/01/2016 12:05:4113/01/2016 12:05:41

Page 11: Libro GENERATIVO-plotter

Manual de diseño generativo 11

Los avances de las ciencias de la computación y de las herramientas digita-les —software y hardware— están modifi cando los procesos, los lenguajes y los medios expresivos de la literatura, las artes visuales y la música; asimismo, han alterado las jerarquías de la comunicación de una forma que todavía no comprendemos completamente.

Dentro de este universo en ebullición, una de las novedades que promete ser más duradera, porque no es solo técnica, sino también estética, fi losófi ca y epistemológica, es el arte generativo. Lo generativo, como concepto, deriva de la lingüística y de algunas teorías de las ciencias de la complejidad, como los sistemas dinámicos, el caos, la vida artifi cial y las simulaciones matemáticas de eventos naturales. Como práctica, lo generativo se está convirtiendo en una parte importante de las ciencias de la computación aplicadas al diseño, la ar-quitectura y las artes en general. El arte generativo resulta fascinante porque apela a las ciencias, las máquinas, el trabajo distribuido y la convergencia de saberes y herramientas, y también porque aprovecha plenamente el potencial de las herramientas digitales, como lo demuestran los trabajos del creciente número de investigadores y artistas que se dedican a estudiarlo.

Los conceptos clave del paradigma generativo son la autoorganización y la emergencia, términos que defi nen los fenómenos naturales o artifi ciales es-pontáneos, no planifi cados, fruto de la libre interacción de los elementos de un sistema complejo que posibilita el surgimiento de estructuras y formas impredecibles e impensables desde el diseño tradicional.

EL PARADIGMA GENERATIVO EN LA ACTUALIDAD

Se habla de arte generativo desde hace por lo menos treinta años, pero solo recientemente este concepto ha empezado a difundirse gracias al desarrollo de nuevos e innovadores lenguajes de programación dedicados al diseño, el arte, la animación, la multimedia y el nuevo hardware para la impresión 3D y la robótica. Por tanto, ¿en qué medida lo generativo es radicalmente nuevo, si es que lo es? La respuesta, como se verá, es importante para determinar sus metodologías teóricas y prácticas.

Introducción

Libro GENERATIVO-plotter.indb 11Libro GENERATIVO-plotter.indb 11 13/01/2016 12:05:4113/01/2016 12:05:41

Page 12: Libro GENERATIVO-plotter

12 Umberto Roncoroni

Este trabajo —y la teoría del arte generativo, en general— tiene como sus-tento un conjunto de textos, en su mayoría citados en este manual, que con-forman el marco teórico. El lector puede utilizarlos como referencias si desea profundizar sus fundamentos científi cos y fi losófi cos.

Para comenzar, cabe mencionar On Growth and Form de D’Arcy Thompson, el clásico The Computational Beauty of Nature de Gary Flake, los tratados y las obras de Ernst Haeckel y Karl Blossfeldt, A New Kind of Science de Stephen Wolfram, la obra de Benoît Mandelbrot y la Teoría general de los sistemas de Ludwig von Bertalanff y.

En segundo lugar, desde el punto de vista estético, es preciso citar Opera aperta de Umberto Eco, Art as Experience de John Dewey, la estética herme-néutica de Martin Heidegger y Hans-Georg Gadamer, la Muerte del autor de Roland Barthes, así como las obras de Noam Chomsky, Edgar Morin y Henri Bergson.

En lo que se refi ere a la práctica del arte, hay que recordar el Tratado de la pintura de Leonardo da Vinci, las obras y metodologías de los surrealistas (la escritura automática), los dadaístas (la estética del azar) y los futuristas (la aeropitt ura, la música experimental), así como Camera Work de Alfred Stieglitz .

Asimismo, gran parte de la literatura acerca del arte generativo está publi-cada y se difunde digital y gratuitamente en internet. Al respecto, es oportuno recordar, por lo menos, las páginas web de Processing, Grasshopper, POV-Ray, y del congreso de Generative Art del Politécnico de Milán.

Por último, quiero señalar que este trabajo nace también de la experien-cia madurada en años de docencia universitaria, experiencia que, de alguna forma, ha sido siempre formalizada gracias a los proyectos de investigación desarrollados para la Universidad de Lima.

FUNDAMENTACIÓN DEL MANUAL

La literatura dedicada al arte generativo es todavía escasa, y más aún lo es la que investiga el paradigma generativo desde el punto de vista teórico, social y pedagógico. Este es un vacío que debe llenarse para evitar la debilidad del arte generativo que, como señalan sus críticos más atentos, es precisamente el despilfarro de aplicaciones, diseños, modelos 3D, scripts, etcétera, que generan toda clase de formas, pero sin ninguna relación con la realidad concreta y el contexto cultural1.

Por ejemplo, los textos existentes, o bien hacen hincapié en algún entorno tecnológico específi co (por ejemplo, Processing o Grasshopper), o bien están exclusivamente orientados a los aspectos científi cos e informáticos, como The Computational Beauty of Nature de Gary Flake. Este hecho no es un defecto en

1 Como ha notado más de una vez el arquitecto y crítico Nikos A. Salingaros.

Libro GENERATIVO-plotter.indb 12Libro GENERATIVO-plotter.indb 12 13/01/2016 12:05:4113/01/2016 12:05:41

Page 13: Libro GENERATIVO-plotter

Manual de diseño generativo 13

sí, pero deja al descubierto muchos aspectos importantes de los procesos ge-nerativos, como su lugar en el debate artístico global.

Por otro lado, las instituciones educativas que empiezan a proponer cursos de diseño generativo, en el intento de superar la metodología “tradicional” impuesta por los programas comerciales, no encuentran el soporte teórico y pedagógico necesario. Pienso que el potencial del diseño generativo se pierde sin la integración de todos sus elementos, y también que, sin una oportuna refl exión crítica, los procesos generativos podrían convertirse en simples ejer-cicios de destreza tecnológica. Al respecto, muchos de los manuales anglo-sajones suponen un cierto grado de conocimiento científi co o informático que no necesariamente se encuentra en los contextos educativos latinoamericanos, pues en nuestros sistemas no existe todavía la costumbre de cruzar discipli-nas tan diferentes como la pintura, la música y la programación, ni se cuenta con una sólida tradición interdisciplinaria.

Es importante mostrar que, considerando los cambios del contexto pro-ductivo y del exceso de oferta que caracteriza a la cultura contemporánea, el potencial del arte generativo no reside tanto en sus productos, sino en sus procesos y metodologías, esto es, en sus aspectos creativos, metodológicos, pedagógicos, y en brindar herramientas heurísticas para la investigación.

Quisiera destacar, por último, que el diseño generativo se puede resolver con una gran variedad de herramientas y técnicas, pero lo importante es, pre-cisamente, la innovación y la personalización que alimenta esta diversidad, más que la aplicación práctica de una u otra receta tecnológica.

OBJETIVOS

Por lo expuesto, me decidí a escribir este manual de diseño generativo adecua-do a nuestra realidad y coherente con sus fundamentos estéticos, fi losófi cos y pedagógicos, con sus fundamentos científi cos y tecnológicos, y con la varie-dad de sus procesos y herramientas. Por lo tanto, el objetivo principal de este manual no es profundizar en la técnica, sino en la metodología y en los aspec-tos estéticos y pedagógicos, enfatizando la naturaleza compleja e interdiscipli-naria del paradigma generativo y la red de conocimientos que subyace a las técnicas propuestas en los ejemplos. En tal sentido, he tratado de brindar a los lectores aproximaciones técnicas diversas, destacando el concepto algorítmico más que la solución específi ca de un determinado lenguaje de programación o programa de diseño. Naturalmente, he incluido los algoritmos y los proce-sos generales más importantes y utilizados en el arte generativo, aquellos que permitirán a los lectores explorar por su cuenta otras posibilidades.

Libro GENERATIVO-plotter.indb 13Libro GENERATIVO-plotter.indb 13 13/01/2016 12:05:4113/01/2016 12:05:41

Page 14: Libro GENERATIVO-plotter

14 Umberto Roncoroni

REQUISITOS PARA EL USO DEL MANUAL

Este trabajo está dedicado a docentes de arte y diseño, a artistas y diseñadores, pero también a estudiantes de arte, diseño, arquitectura y computación. Aun-que los contenidos exigen al lector unos conocimientos mínimos de computa-ción, aquel que se considera principiante no queda excluido, pues hoy puede subsanar sus carencias simplemente consultando los numerosos tutoriales que se encuentran en internet. Y, para profundizar, existen foros acerca de Processing, POV-Ray, Grasshopper, MaxScript, los sistemas-L y las gramáticas generativas en general.

Lo mismo puede decirse de los conocimientos matemáticos. Estoy con-vencido —y este trabajo intentará demostrarlo— de que muchos procesos se pueden resolver intuitiva y “artesanalmente”, pero con menor efi ciencia yvelocidad; sin embargo, tratándose de aplicaciones experimentales, el precio es razonable.

Por estas razones, en un mundo de tecnologías en permanente evolución, para avanzar en el arte generativo el autoaprendizaje es una práctica esencial, que se debe defender, porque hoy los estudiantes esperan casi siempre las so-luciones hechas y no cultivan la habilidad de buscar por cuenta propia.

ESTRUCTURA DEL TRABAJO

El Manual de diseño generativo se divide en tres partes. En la primera, se propor-ciona al lector los fundamentos fi losófi cos, científi cos, tecnológicos y pedagó-gicos del arte generativo, conocimientos necesarios para comprender y aplicar el potencial artístico y tecnológico que los tutoriales tratan de explicar. He tratado de abordar estos temas respetando la naturaleza del manual, esto es, evidenciando su utilidad práctica en la educación y el arte. Esta primera parte se divide en cinco lecciones:

• La primera es una introducción al arte generativo, donde se explica qué es, cuáles son sus relaciones con la estética, la ciencia y la tecnología, y, fi nalmente, sus razones pedagógicas y artísticas.

• Los fundamentos fi losófi cos son el tema de la segunda lección. Se expo-nen los principios estéticos subyacentes, como los conceptos de apertu-ra, interactividad, hipertextualidad, proceso, complejidad y emergencia. También se tratan los límites de la computación y otros problemas gene-rativamente pertinentes.

• En la tercera lección, sobre los fundamentos científi cos, se presentan los conceptos generales y algunas referencias a teorías, como la vida artifi cial, la genética, los fractales y la lingüística, entre otros. Se plan-tean aquí las relaciones entre sistemismo complejo y autoorganización (retroalimentación, feedback, reglas), caos e indeterminación, fractales y

Libro GENERATIVO-plotter.indb 14Libro GENERATIVO-plotter.indb 14 13/01/2016 12:05:4113/01/2016 12:05:41

Page 15: Libro GENERATIVO-plotter

Manual de diseño generativo 15

autosimilaridad, genética y evolución/adaptación. Algunas referencias específi cas se explicarán, si es el caso, en los tutoriales.

• Los fundamentos tecnológicos se encuentran en la cuarta lección. Se plantean algunas cuestiones entre lo generativo y la tecnología.

• Finalmente, se abordan los fundamentos pedagógicos. Se estudian los procesos y las metodologías educativas fundamentalmente constructi-vistas, con el fi n de brindar a los lectores algunas herramientas para aprovechar los procesos generativos en la práctica formativa.

En la segunda parte, se desarrollan tres tutoriales básicos que cubren los aspectos prácticos y técnicos de las principales herramientas informáticas ne-cesarias para iniciarse en el arte generativo. Estos tutoriales son los siguientes:

• El primero ofrece una introducción a la programación. Se brindan los conceptos básicos para aquellos que se inician en la programación, con algunas recetas elementales para el manejo de datos y cálculos útiles para el arte generativo.

• En el segundo tutorial, se exponen los principios de las gramáticas de la forma, con enfoque en los sistemas-L y en la aplicación GDesign (desa-rrollada por el autor y que se puede descargar gratuitamente de internet).

• Por último, el tratamiento de imágenes digitales es el tema del tercer tu-torial. Se explican los principios del manejo de las imágenes bitmap y losvectoriales.

En la tercera parte, se encuentran los tutoriales dedicados a las principales técnicas y procesos generativos. Los ejercicios se refi eren a las artes visuales, pero el objetivo es esencialmente metodológico; por lo tanto, el lector, quien puede ser también músico o arquitecto, estará en condiciones de “reciclar” los conceptos en su medio expresivo particular. Esta parte está conformada por los siguientes temas:

• Formas naturales simples. Se hace hincapié, a modo de ejemplo, en la espiral y las conchas utilizando los sistemas-L.

• Formas caóticas: azar y ruido. En esta parte se presentan dos tutoria-les: uno relativo al movimiento browniano, y el otro sobre el ruido dePerlin, un algoritmo muy importante para la generación de texturas procedurales.

• Fractales. Se explora la autosimilaridad y los procesos recursivos, fun-damentales para la generación de imágenes 2D o 3D realistas.

• Patrones (patt erns) y teselaciones naturales. En este tutorial se exploran las posibilidades que el paradigma generativo ofrece para la creación de elementos y patrones decorativos, útiles para el diseño y la arquitectura.

• Vida artifi cial y particle diff usion systems. Se desarrolla un proceso de di-seño generativo utilizando un software de diseño 3D para construir un rascacielos orgánico.

Libro GENERATIVO-plotter.indb 15Libro GENERATIVO-plotter.indb 15 13/01/2016 12:05:4113/01/2016 12:05:41

Page 16: Libro GENERATIVO-plotter

16 Umberto Roncoroni

• Árboles y estructuras ramifi cadas. En este tutorial se explica cómo estu-diar los árboles y las estructuras ramifi cadas utilizando los sistemas-L.

• Organismos. Utilizando los sistemas-L, se construye una gramática ge-nerativa para producir los organismos conocidos como radiolarios. Esta gramática se puede emplear también para generar organismos imagina-rios siguiendo la propia fantasía.

• Image processing. Se muestra cómo el diseño generativo se puede utili-zar también dentro de los paquetes de diseño comerciales, como Photo-shop. Para esto se expone el proceso de generación de una forma natural compleja, como el mármol, y la manera como elaborar una fotografíamarmorizada.

• Ejemplos de procesos generativos avanzados. En este último tutorial se examinan, paso a paso, dos proyectos generativos desarrollados por el autor.

METODOLOGÍA

En cuanto a la metodología, la estructura de cada tutorial es la siguiente: objetivo del diseño, principios científi cos, modelo, algoritmo, ejemplos (en MaxScript, Processing, GDesign y POV-Ray), análisis (estético, tecnológico y pedagógico), explicación del software línea por línea, gráfi cos e imágenes de ejemplos.

Quizás pueda parecer confuso usar ejemplos en diferentes lenguajes o es-tilos de programación, como C#, VBasic, MaxScript, etcétera, pero esta es una elección que he meditado con atención: la idea es que debemos concentrarnos no tanto en el medio, sino en los procesos y conceptos.

Para terminar, quiero agradecer a la Universidad de Lima y a su Instituto de Investigación Científi ca, así como a mis alumnos del Seminario de Medios Digitales de la Escuela de Arquitectura de la Universidad de San Martín de Porres, que han participado muchas veces como “víctimas” en estas experi-mentaciones, proporcionando evidencias educativas y metodológicas muy im-portantes para el desarrollo de este trabajo.

Libro GENERATIVO-plotter.indb 16Libro GENERATIVO-plotter.indb 16 13/01/2016 12:05:4113/01/2016 12:05:41

Page 17: Libro GENERATIVO-plotter

Parte 1

Libro GENERATIVO-plotter.indb 17Libro GENERATIVO-plotter.indb 17 13/01/2016 12:05:4113/01/2016 12:05:41

Page 18: Libro GENERATIVO-plotter

Libro GENERATIVO-plotter.indb 18Libro GENERATIVO-plotter.indb 18 13/01/2016 12:05:4213/01/2016 12:05:42

Page 19: Libro GENERATIVO-plotter

Manual de diseño generativo 19

Lo generativo, como principio general, tiene sus antecedentes en algunos as-pectos de las estéticas de las vanguardias históricas y en ciertas teorías cien-tífi cas y avances tecnológicos que se desarrollaron a partir de la SegundaGuerra Mundial. Sin embargo, el paradigma generativo ha entrado en el mun-do del arte y del diseño —como una teoría del arte y un marco teórico-práctico defi nido— solamente hace unos veinticinco años.

Sobre lo que pueda signifi car el término generativo hay algunas ideas gene-rales que encuentran la aprobación de la mayoría de los artistas, diseñadores y programadores. Ello no obstante, y a pesar de que lo generativo quiere pro-ponerse no solo y simplemente como un nuevo ismo, sino como un paradigma capaz de desencadenar una verdadera revolución artística, el análisis de sus estructuras y principios, así como el debate de sus problemas y cuestiones abiertas, está lejos de concluirse. Por esto, hasta la labor de los mejores teóricos y artistas generativos no está exenta de imprecisiones y confusiones.

No se pretende solucionar aquí estos problemas. Pero lo que sí se puede ha-cer es introducir el paradigma generativo, explicar sus fundamentos estéticos, fi losófi cos y científi cos, así como presentar sus ventajas (en cuanto a posibili-dades creativas y pedagógicas) con respecto al diseño tradicional. Confío en que estas notas serán de ayuda a quien comienza a explorar este universo tan contradictorio, pero a la vez tan prometedor.

Al terminar la lectura, el lector será capaz de:• Conocer los principios del paradigma generativo.• Comprender el potencial teórico y práctico de los procesos generativos.• Aplicar metodologías generativas a la creación artística.• Relacionar el arte generativo con el contexto del arte contemporáneo.• Reforzar la fundamentación teórica de su propuesta artística.

1.1 BREVE HISTORIA DEL ARTE Y DEL DISEÑO GENERATIVO

Como se dijo anteriormente, el concepto de lo generativo es relativamente mo-derno. Fue propuesto en el campo de las artes conjugando, por un lado, su

Breve historia del arte y del diseño generativo • Lo generativo como concepto y sus defi niciones •Lo generativo en el dominio artifi cial • El diseño tradicional y el diseño generativo • Propiedades y

ventajas del paradigma generativo • El arte generativo y la tecnología

El paradigma generativo

Lección

1

Libro GENERATIVO-plotter.indb 19Libro GENERATIVO-plotter.indb 19 13/01/2016 12:05:4213/01/2016 12:05:42

Page 20: Libro GENERATIVO-plotter

20 Umberto Roncoroni

defi nición en la lingüística de Chomsky1 y, por el otro, ciertos principios de las ciencias de la computación y de la complejidad.

Cabe señalar que algunos de los principios fundamentales del paradig-ma generativo son bastante antiguos; por ejemplo, los conceptos griegos detechné (arte, ciencia y sabiduría artesanal), de poiesis (producción creativa) y de aletheia (el saber que se revela por medio de la poiesis) están en la base de la idea de emergencia. Se encuentran también principios generativos en el arte deco-rativo islámico, que construye sus patrones sobre algoritmos combinatorios algebraicos, y en las técnicas artesanales para fabricar los papeles texturizados que se han utilizado desde la Edad Media en Florencia2.

Papel decorativo marmorizado de Florencia. (Recuperado de studiainitalia.com)

Las técnicas de pinturas decorativas renacentistas, denominadas de brocha gorda, jugaban con las propiedades químicas de diferentes médiums y pig-mentos para simular, de modo generativo, texturas naturales como el mármol o las maderas. Incluso Leonardo, en el Tratado de la pintura, habló de procesos

1 El concepto de lo generativo madura teóricamente gracias a las gramáticas generativas de Chomsky y al concepto de juegos lingüísticos de Witt genstein. A pesar de la discu-sión acerca de la validez teórica de estos trabajos, no se puede negar que han dejado una herencia valiosa: el lenguaje (y, por extensión, el arte) como algo emergente, poiesis espontánea de aquellos que lo utilizan, o sobre la base de ciertas reglas implícitas y las interacciones que gobiernan su desarrollo.

2 Método para hacer papeles decorativos que consiste en mezclar con un peine diferen-tes pigmentos en suspensión sobre un baño de gelatina; de esta manera, los colores se combinan entre sí, según su composición química, hasta formar diseños abstractos parecidos a los mármoles. Luego se deposita el papel sobre la superfi cie gelatinosa y los colores se adhieren transfi riendo el diseño como en una suerte de impresión. Véase la página web: htt p://www.marbledarts.com

Libro GENERATIVO-plotter.indb 20Libro GENERATIVO-plotter.indb 20 13/01/2016 12:05:4213/01/2016 12:05:42

Page 21: Libro GENERATIVO-plotter

Manual de diseño generativo 21

generativos naturales, como las manchas de humedad en los muros que for-man paisajes fantásticos.

Al comienzo de la Revolución Industrial, el arquitecto catalán Antoni Gau-dí desarrolló mecanismos generativos basados en los árboles para diseñar las columnas del templo de la Sagrada Familia. Asimismo, los surrealistas y los futuristas experimentaron varios procesos generativos multiautor y tecnoló-gicos para renovar el lenguaje del arte, como el cadáver exquisito, el intonarumori de Luigi Russolo y la aeropitt ura3. Para terminar con las vanguardias, los da-daístas han trabajado con procesos aleatorios e interactivos muy parecidos a ciertas técnicas generativas que se utilizan hoy.

Tullio Crali, Vuelta horizontal, 1938

3 Algunos artistas futuristas subían en un avión y hacían acrobacias; por efecto de la velocidad y de la aceleración, experimentaban alteraciones de los sentidos que luego registraban en sus lienzos.

Libro GENERATIVO-plotter.indb 21Libro GENERATIVO-plotter.indb 21 13/01/2016 12:05:4313/01/2016 12:05:43

Page 22: Libro GENERATIVO-plotter

22 Umberto Roncoroni

Llegando a la posmodernidad, el artista conceptual Sol LeWitt desarrolló (siguiendo ciertas ideas surrealistas) varios procesos generativos y algorítmi-cos. Jackson Pollock utilizó el dripping (similar a las técnicas de brocha gorda), un proceso cuyos principios son el movimiento, la gravedad y el azar, mien-tras que varios artistas del land art aplicaron implícitamente principios genera-tivos al dejar las obras expuestas a los efectos de los agentes naturales, usados como coautores de la obra.

Finalmente, por lo que se refi ere a la música, Mozart utilizó principios ge-nerativos practicando juegos musicales con los dados y escribiendo piezas mu-sicales aleatorias como las Musikalisches Würfelspiel. Más adelante, la música de vanguardia, naturalmente, estuvo muy ligada a los procesos generativos, como se aprecia en las piezas musicales Fluxus de John Cage, en las obras de Karlheinz Stockhausen, de Brian Eno y del músico y arquitecto griegoIannis Xenakis (1976), quien exploró las aplicaciones creativas del azar y de las permutaciones en la música serial.

En cuanto al arte generativo hoy, es una historia que todavía estamosescribiendo...

1.2 LO GENERATIVO COMO PRINCIPIO Y METODOLOGÍA ARTÍSTICA

En la actualidad, se denomina generativo a un proceso orgánico o inorgánico4 capaz de producir o crear, de modo autónomo y espontáneo, una forma o una estructura coherente y ordenada. Todo organismo vivo es generativo, en cuanto produce algo nuevo, es decir, se reproduce. Pero también un proceso inorgánico puede ser generativo, en cuanto transforma la materia suya y de los elementos de su alrededor.

1.2.1 El principio generativo

Todo proceso generativo tiene un principio, es decir, un mecanismo que des-encadena y regula su desarrollo. Por ejemplo, la forma de las estalagmitas se genera por la caída de gotitas de agua, en las que se encuentran ciertos mine-rales, y por el tiempo. También se puede pensar el principio generativo como el conjunto de genes que caracteriza a una especie, y las obras generativas se-rían como sus individuos particulares; en otras palabras, los genes contienen el programa que genera los individuos, interactivamente con el contexto. Un principio generativo es, entonces, una suerte de esquema o guion para pro-ducir una serie de objetos diferentes entre sí, pero con un aspecto en común.

4 Ejemplos de procesos generativos inorgánicos pueden ser los mármoles, las rocas, los icebergs, cuya forma se debe a la acción conjunta de factores climáticos.

Libro GENERATIVO-plotter.indb 22Libro GENERATIVO-plotter.indb 22 13/01/2016 12:05:4313/01/2016 12:05:43

Page 23: Libro GENERATIVO-plotter

Manual de diseño generativo 23

1.2.2 Orden emergente

Un verdadero proceso generativo es complejo, sistémico, dinámico e impre-decible; esto signifi ca que un mismo principio puede generar resultados muy diferentes, en razón de su complejidad. En cierto sentido, un proceso gene-rativo es caótico en cuanto es sensible a las condiciones iniciales; pequeñasvariaciones pueden generar cambios muy grandes en lo que se obtiene al ter-minar el proceso.

Todo proceso natural es generativo, dado que produce transformaciones en la materia orgánica e inorgánica de modo impredecible, o por la libertad de comportamiento de cada organismo, o por la complejidad del sistema. Esque-matizando, un proceso generativo es:

• Sistémico • Complejo• Libre• Interactivo• Impredecible • Emergente • Ordenado, estructurado, con forma

1.3 LO GENERATIVO EN EL DOMINIO ARTIFICIAL

Si bien complejidad, emergencia y las demás características que componen el paradigma generativo son propiedades de los procesos naturales, en teoría, también un proceso artifi cial puede ser generativo. Sin embargo, hay que acla-rar que lo artifi cial tiene limitaciones, aunque estas no siempre quedan claras a los artistas o futuros artistas generativos. El problema es que una visión imprecisa debilita la consistencia tanto del arte como de la investigación y de las aplicaciones educativas del paradigma generativo.

Como se vio antes, un proceso natural es emergente, porque la forma o la estructura generada es el resultado de una suma de hechos en el tiempo, cada uno con su libertad. Como consecuencia, esta clase de formas nunca responde a un esquema fi jo, sino a la evolución en el tiempo de acuerdo con ciertas con-diciones del sistema y del contexto. Ciertamente, se puede decir que el algorit-mo contiene un esquema de lo que será la forma, pero esto afecta a su especie, no a las variaciones de cada una de sus evidencias. La forma individual es, por lo tanto, emergente.

Ahora bien, un proceso artifi cial no goza de la libertad que caracteriza a la vida orgánica, ni de la inmensa complejidad de los procesos inorgánicos na-turales. La variedad paramétrica, aunque sea capaz de producir procesos im-predecibles, no es sufi ciente para garantizar una verdadera emergencia. Pues, en todos los casos, se trata de un efecto determinista, en cuanto el proceso artifi cial es siempre el mismo y de todas formas limitado.

Libro GENERATIVO-plotter.indb 23Libro GENERATIVO-plotter.indb 23 13/01/2016 12:05:4313/01/2016 12:05:43

Page 24: Libro GENERATIVO-plotter

24 Umberto Roncoroni

Sin embargo, un proceso artifi cial puede ser generativo, sin ser emergente al cien por ciento; en otras palabras, puede ser lo sufi cientemente complejo para ser impredecible, sin ser lo sufi cientemente libre para salir de su progra-ma. Esta limitación no quita las posibilidades generativas de un proceso artifi -cial bien pensado: sin tener la libertad y variedad de sus referentes naturales, sus resultados son igualmente valiosos.

1.3.1 La importancia del contexto

Un aspecto del problema generativo es la relación de lo digital con el contex-to natural; el arquitecto estadounidense Christopher Alexander (1964), pio-nero de la arquitectura generativa, ha dicho que el contexto es: “Anything in the world that makes demands of the form —including designer, client, user, meaning, aesthetics, environment, and function” (p. 19)5.

Un proceso artifi cial puede resolver sus limitaciones tecnológicas, pues es posible que sea enriquecido por cientos de variables del contexto natural cap-tadas mediante interfaces interactivas, sensores y otros aparatos (conocidos como physical computing). Además, el contexto incluye también al usuario, lo que abre la cuestión de las interfaces entre este y los sistemas generativos ar-tifi ciales. Y también da razón de la necesidad de que cada uno desarrolle sus procesos personalizados, porque el mismo autor es la fuente más pura del poder generativo. Es esta la fi losofía que en el fondo subyace a todos los tuto-riales propuestos en este manual.

1.4 EL DISEÑO TRADICIONAL Y EL DISEÑO GENERATIVO

En términos de arte y diseño, la fi losofía generativa es un verdadero cambio de paradigma. La diferencia entre un proceso tradicional y uno generativo resultará más clara si se analiza el caso de un panal de abejas: los apicultores construyen con cera los panales de celdas hexagonales mediante moldes pre-fabricados, saben perfectamente de antemano la forma que desean lograr y el ingenio está en optimizar así la producción de la miel; en cambio, las abejas siguen espontáneamente su instinto cuando hacen su panal, no tienen la idea previa de confeccionar unas celdas hexagonales. La forma hexagonal resulta de la interacción entre diferentes factores y ha surgido mediante la selección natural y la evolución. Ciertamente, los panales fabricados por las abejas son imperfectos, ninguna celda es exactamente igual a otra, y ningún panal es igual a otro, pero se adaptan perfectamente a las condiciones de cada colonia y a sus diferentes entornos, a los que ofrecen una infi nita variedad de formas y soluciones.

5 “Cualquier aspecto del mundo real que requiere algo en términos formales, incluyen-do diseñadores, clientes, usuarios, signifi cado, estética, medioambiente o funciones prácticas” (La traducción es mía).

Libro GENERATIVO-plotter.indb 24Libro GENERATIVO-plotter.indb 24 13/01/2016 12:05:4313/01/2016 12:05:43

Page 25: Libro GENERATIVO-plotter

Manual de diseño generativo 25

Los algoritmos generativos (con las limitaciones arriba señaladas) intentan reproducir esta fl exibilidad y variedad de formas y soluciones con relación a un determinado contexto, cosa que el diseño tradicional no puede hacer, pues su solución es puntual. El artista generativo, en efecto, produce una familia de objetos que pueden ser muy diferentes entre sí y no todos perfectos.

El diseño generativo, entonces, consiste propiamente en el diseño del pro-ceso, ya que el producto fi nal es el resultado autónomo, interactivo y paramé-trico del proceso mismo. Se trata de un método de diseño “abierto”, que se basa en un proceso generativo natural o en su simulación artifi cial, analógica o digital.

1.4.1 Modelos y simulaciones

Todo proceso natural es una fuente adecuada de principios generativos: la bio-logía, la física, la química, la geología, la ecología, la meteorología, y los proce-sos sociales también. La calidad del proceso generativo artifi cial depende de la calidad del modelo que se elabora a partir del proceso natural.

Diseño clásicoOBJETIVO IDEA DISEÑO PRODUCCIÓN ARTEFACTO

El artefacto corresponde, necesariamente, a la idea de acuerdo con el diseño, a menos quese hayan cometido errores en el proceso de producción.

Diseño generativoOBJETIVO PRINCIPIO Y PROCESO GENERATIVO PRODUCCIÓN ARTEFACTOS SELECCIÓN

Los objetos obtenidos mediante un proceso generativo no necesariamente son perfectos. Se trata, desde luego, de hacer una selección del mejor, es decir, de aquel que se ajusta más a las exigen-cias y las especifi caciones requeridas.

1.5 PROPIEDADES Y VENTAJAS DEL PARADIGMA GENERATIVO

Ahora que se ha defi nido una idea más precisa de lo generativo, se pueden determinar sus requisitos, propiedades y ventajas. Pero antes es necesariodespejar la confusión entre los conceptos algorítmico y paramétrico: un pro-ceso generativo es ciertamente algorítmico, en cuanto sigue una serie de pasos lógicos, y es paramétrico, porque se rige por variables que regulan su compor-

Libro GENERATIVO-plotter.indb 25Libro GENERATIVO-plotter.indb 25 13/01/2016 12:05:4313/01/2016 12:05:43

Page 26: Libro GENERATIVO-plotter

26 Umberto Roncoroni

tamiento. Sin embargo, un proceso algorítmico y paramétrico no necesaria-mente es generativo, es decir, no garantiza propiedades complejas, sistémicas, dinámicas y emergentes.

1.5.1 Propiedades

Estas propiedades nacen de tecnologías informáticas y matemáticas especia-les (que serán exploradas en la tercera parte de este manual), como estas:

• Vida artifi cial• Inteligencia artifi cial• Fractales• Procesos recursivos• Simulaciones y modelos de procesos naturales• Sistemas dinámicos• Sistemas de ecuaciones diferenciales• Teoría del caos• Gramáticas generativasDesde el punto de vista informático, los procesos generativos más efi cien-

tes se caracterizan por ser: • Interactivos. El intercambio de datos, métodos, técnicas y experiencias

enriquece el proceso creativo y su complejidad. • Distribuidos. La interactividad supone la libertad de compartir y co-

municar la información.• Paralelos. Los sistemas dinámicos complejos son intrínsecamente

paralelos y no secuenciales. • Abiertos. Informaciones, algoritmos y códigos deben estar disponibles

libremente. • Interdisciplinarios. Es una consecuencia implícita de la variedad de

conocimientos y técnicas que nacen de un mundo abierto y paralelo.

1.5.2 Ventajas

Un proceso de diseño generativo es, con seguridad, más rico, creativo e inno-vador que el diseño tradicional, pero requiere aparatos y soportes científi cos y tecnológicos, un alto grado de experimentación, tiempos de desarrollo y cur-vas de aprendizaje más largas, y no garantiza resultados certeros. ¿Por qué es, entonces, tan importante? ¿Cuál es su ventaja? ¿Por qué hacer algo con un proceso generativo cuando el diseño tradicional podría lograr lo mismo con mayor rapidez?

• Un proceso generativo se presta al trabajo grupal e interdisciplinario, que si no necesariamente es una característica positiva en términos de productividad, lo es en términos de formación y aprendizaje.

Libro GENERATIVO-plotter.indb 26Libro GENERATIVO-plotter.indb 26 13/01/2016 12:05:4313/01/2016 12:05:43

Page 27: Libro GENERATIVO-plotter

Manual de diseño generativo 27

• Un proceso generativo toma en cuenta el contexto, es algo que tiene em-patía y respeto con y por su entorno. Cuando un proceso generativo es tecnológico (es decir, utiliza computadoras), la complejidad del contexto puede ser modelada y parametrada, e insertada en el proceso, lo cual es mucho más difícil en el diseño tradicional, pues cuando la complejidad crece excesivamente, decrece el control directo que se tiene sobre ella.

• El método generativo permite explorar posibilidades creativas que no están al alcance del diseño tradicional, explorar procesos nuevos y com-binarlos entre sí. Esto es importante tanto en la producción como en la educación: impulsa la originalidad tecnológica, el uso creativo de herra-mientas y el desarrollo de tecnología propia.

• Si bien el diseño generativo requiere tiempo para su desarrollo e imple-mentación, luego permite obtener rápidamente variantes de diseños con una facilidad desconocida para el diseño tradicional.

• Los procesos generativos informatizados ofrecen la posibilidad de reuti-lizar los diseños en otros contextos, combinar diferentes diseños y otras técnicas desconocidas para el diseño tradicional con mucha facilidad.

• Está preparado para la nueva generación de equipos de prototipado rá-pido, la robótica, la creación de nuevos materiales y técnicas constructi-vas, los diseños para la realidad virtual, internet y los mundos virtuales, como los videojuegos.

1.6 EL ARTE GENERATIVO Y LA TECNOLOGÍA

Un proceso generativo puede ser natural o artifi cial. En el caso artifi cial, es necesario el uso de alguna tecnología, que puede ser simple o compleja, ana-lógica o, con las limitaciones que caracterizan a la informática, digital. Hay que recordar que la mayoría de los artistas generativos6 han subrayado que lo generativo no depende de una tecnología en particular, sino que es más bien un algoritmo, es decir, una planifi cación de pasos, acciones o procesos opor-tunamente parametrados y combinados.

Sin embargo, no existirían el arte y el diseño generativo sin la computado-ra, pues la naturaleza numérica de los modelos matemáticos y los programas informáticos permiten que estos procesos sean automatizados y combinados entre sí con gran fl exibilidad, velocidad y efi ciencia. Asimismo, la herramienta informática posibilita que un proceso sea interactivo, es decir que operadores humanos, sistemas artifi ciales o naturales puedan cooperar mediante varios tipos de interfaces. Pero, como se ha señalado anteriormente, la computación presenta límites que el artista generativo debe tomar en cuenta para no ilusio-narse excesivamente y no cometer ingenuidades:

6 Véase las actas de los congresos de Generative Art del Politécnico de Milán.

Libro GENERATIVO-plotter.indb 27Libro GENERATIVO-plotter.indb 27 13/01/2016 12:05:4413/01/2016 12:05:44

Page 28: Libro GENERATIVO-plotter

28 Umberto Roncoroni

• Un proceso informático es determinista, se ejecuta siempre igual y no al-canza la emergencia de los fenómenos naturales o artifi ciales analógicos.

• Un proceso informático es discreto y no alcanza la variedad y continui-dad de la realidad.

• En un programa, el número de parámetros y variables, por más grande que sea, es mucho menor que los que existen en la realidad.

• La programación paralela, en general, no está disponible, y su alternati-va, el multitasking, no ofrece las mismas posibilidades.

• Para ciertos procesos, la velocidad de cálculo de los actuales micropro-cesadores puede ser insufi ciente.

• La transmisión de datos por internet es lenta y en realidad difi culta el trabajo distribuido.

• Por ahora, las herramientas de programación disponibles para imple-mentar los procesos generativos tienen curvas de aprendizaje demasia-do largas7.

• Los equipos, desde las computadoras hasta los robots, son todavía bas-tante caros.

No obstante, se trata de difi cultades que se pueden superar; lo importante es tomar nota y actuar en consecuencia. En los tutoriales se indicará cómo solucionar, por lo menos en parte, esta clase de problemas.

7 Por ejemplo, Grasshopper, el plug-in para Rhinoceros, es complicado de utilizar y en realidad es una herramienta para el diseño paramétrico, no generativo.

Libro GENERATIVO-plotter.indb 28Libro GENERATIVO-plotter.indb 28 13/01/2016 12:05:4413/01/2016 12:05:44

Page 29: Libro GENERATIVO-plotter

Manual de diseño generativo 29

En el arte, el diseño y la educación, el potencial creativo de los principios ge-nerativos se puede aprovechar al cien por ciento a condición de un correcto planteamiento fi losófi co y estético. Dos razones justifi can esta afi rmación.

En primer lugar, los procesos generativos se alimentan de conocimientos bastante complejos de arte y ciencia, cuya integración permite, pues, evitar que se conviertan en simples ejercicios tecnológicos o en juegos formales.

En segundo lugar, cabe señalar a artistas, docentes y estudiantes que la in-comprensión de los problemas fi losófi cos y científi cos podría ensombrecer las ventajas del paradigma generativo y, sobre todo, debilitar la actitud crítica con respecto a los límites de la tecnología: las cuestiones tecnológicas requieren de una capacidad crítica que se fortalece precisamente con el manejo de los pro-blemas fi losófi cos esenciales que se pretende introducir en esta lección. Estas refl exiones deben servir, además, para invitar a los lectores a la investigación1.

Los temas propuestos, obviamente, no cubren todo el abanico de problemas que circunda el arte generativo; sin embargo, de acuerdo con la experiencia del autor, ofrecen una selección que no olvida las cuestiones más importan-tes, como son la posmodernidad, la estética posmoderna y la complejidad,y algunas propuestas.

Al terminar la lectura, el lector será capaz de:• Relacionar los aspectos estéticos y tecnológicos del proceso generativo.• Aplicar conocimientos y términos teóricos básicos para desarrollar su

planteamiento estético.• Explicar, justifi car y sustentar estéticamente su proceso generativo, tal

como se requiere para un concurso, la participación en una exposición, para la redacción del texto crítico de un catálogo o de una nota de prensa de una exposición.

• Analizar, contextualizar y comparar su propuesta teórica tanto dentro un contexto artístico como de un espacio de formación y aprendizaje.

• Reforzar el punto de vista crítico sobre los procesos tecnológicos.

1 Esto es, para que el lector siga en su investigación artística sin estancarse, como les sucede a muchos artistas digitales una vez que se agota el entusiasmo por la novedad tecnológica.

La posmodernidad y el arte generativo • La estética posmoderna • La discusión acerca de la

complejidad • Apuntes para una estética generativa

El arte generativo y sus fundamentos conceptuales

Lección

2

Libro GENERATIVO-plotter.indb 29Libro GENERATIVO-plotter.indb 29 13/01/2016 12:05:4413/01/2016 12:05:44

Page 30: Libro GENERATIVO-plotter

30 Umberto Roncoroni

2.1 EL ARTE GENERATIVO Y LA CULTURA CONTEMPORÁNEA

No debe sorprender al lector que en un manual de diseño se discuta el pro-blema de la posmodernidad: sucede que los conceptos de lo generativo y de la complejidad son el resultado de sus avances tecnológicos y científi cos, pero también son una respuesta a la crisis teórica y tecnológica del arte, que es si-métrica a la crisis del pensamiento clásico que caracteriza a esta época.

Conviene recordar al lector que, desde el punto de vista fi losófi co, la pos-modernidad se explica principalmente en tres problemas: a) la puesta en tela de juicio de los fundamentos racionales, religiosos, fi losófi cos, políticos y científi cos occidentales; b) el relativismo y la falta de valores trascendentes y universales; c) el derrumbe de los conceptos de progreso, de desarrollo y del sentido de comunidad, que termina exaltando lo particular, lo individual y lo contingente. Se trata de problemas debatidos desde hace tiempo, pero ense-guida se explicará cómo se relacionan con el arte generativo.

2.1.1 El arte y la posmodernidad

La crisis posmoderna se refl eja en el quehacer del arte de dos maneras. La pri-mera es que, al caer los conceptos universales de forma y belleza, los artistas privilegian el reciclaje, el pastiche, así como las contaminaciones de lenguajes y de géneros, sin una identidad formal particular. La segunda es que, al con-siderar el contexto de la sobreproducción cultural, se produce una crisis de la creatividad y la originalidad, tanto que el arte posmoderno es solamente una repetición y una variación de formas existentes, mayormente de acuerdo con las exigencias del mercado.

Lo relevante, en el sentido generativo, es que todo esto obliga al artista a asumir la transición desde la creatividad y la originalidad pura y absoluta (en el sentido de crear, hacer desde la nada) hacia la creatividad vista como permu-tación de lo existente. Esta dinámica está vinculada a la computación; es más, las computadoras han hecho salir de su rango muchos de sus parámetros.

¿Es el paradigma generativo una respuesta a estos problemas? Claro está que, sea cual sea esta respuesta, se afectará la forma como se enseña y se aprende el arte generativo y el arte en general.

2.1.2 La fi losofía, el lenguaje y la tecnología

Si uno se aleja de las cuestiones metafísicas, se presenta la cuestión del len-guaje, que se vuelve esencial para el arte posmoderno. El lenguaje se ma-nifi esta —aquí está el punto notable— sobre todo en el ámbito tecnológico, pues las tecnologías de la información son esencialmente software, esto es: un medio de comunicación y una máquina lingüística. Y todas las técni-cas generativas necesitan el software. Trataré de explicar el problema del len-

Libro GENERATIVO-plotter.indb 30Libro GENERATIVO-plotter.indb 30 13/01/2016 12:05:4413/01/2016 12:05:44

Page 31: Libro GENERATIVO-plotter

Manual de diseño generativo 31

guaje sintetizando el pensamiento de dos autores fundamentales: LudwigWitt genstein y Noam Chomsky.

Lo que ha mostrado Witt genstein (1999) es que la construcción y el sentido del lenguaje se basan no tanto sobre conceptos universales, sino sobre su uso (los juegos lingüísticos), incluyendo los errores y las imprecisiones que bro-tan de las necesidades cotidianas de una comunidad. Los conceptos metafísi-cos, dice Witt genstein, surgen por las fallas de estos mecanismos, no porque tengan valor en sí. Para el arte generativo este discurso invita a la siguiente refl exión: que el arte se confi gura como el resultado de un proceso, y que en cuanto proceso tiene propiedades emergentes.

Por su parte, Chomsky (1957) dice, sin entrar en la confrontación teórica con el fi lósofo austriaco, que hay una habilidad, típica de nuestra mente, que constituye un saber lingüístico independiente del contexto social y anterior al lenguaje mismo; luego, que el lenguaje es un sistema complejo autónomo, con un orden y un desarrollo interno defi nido por sus propias reglas. Para lo generativo, Chomsky es fundamental porque sus aportes alimentan el desa-rrollo de los lenguajes computacionales, de los compiladores y de procesos generativos computacionales como las shape grammars y los sistemas-L, como se verá más adelante.

Hay que mencionar, además, que en ambos casos se termina cuestionando, indirectamente, el concepto de arte clásico y poniendo en juego la tecnología, pues los problemas lingüísticos afectan a la interactividad y a la autoría distri-buida que caracterizan a internet como contexto cultural y mediático del arte generativo (Roncoroni, 2007).

2.2 ASPECTOS DEL ARTE EN LA POSMODERNIDAD

Por lo que se refi ere a la fi losofía del arte, el aspecto más signifi cativo de la posmodernidad es precisamente la crítica a las teorías metafísicas de la ver-dad y del conocimiento. Este debate se integra con la labor de las vanguardias —como el surrealismo, la Bauhaus, el futurismo o el dadaísmo— en cuanto crítica a la estética romántica y a la fi gura del artista genio, aislado en su torre de marfi l. Examinaré estas cuestiones a través de la obra de Martin Heidegger y Hans-Georg Gadamer, de la escuela de Frankfurt, y de Henri Bergson y John Dewey, pues estos autores han contribuido a perfi lar críticamente el arte posmoderno, a la formación de la teoría de la complejidad, del pensamiento complejo e, indirectamente, del concepto de lo generativo.

En efecto, no es posible comprender a fondo el paradigma generativo sin plantear la relación que la experiencia estética tiene con la verdad y con el conocimiento, precisamente, porque el arte generativo se apoya en las ciencias naturales, en la matemática y en las simulaciones.

Libro GENERATIVO-plotter.indb 31Libro GENERATIVO-plotter.indb 31 13/01/2016 12:05:4413/01/2016 12:05:44

Page 32: Libro GENERATIVO-plotter

32 Umberto Roncoroni

2.2.1 La relación entre el arte y el conocimiento

La relación entre arte y verdad, reducida a sus términos esenciales, consiste en la dinámica entre lo verdadero, lo bueno y lo bello. Gracias a los fi lósofos medievales, se piensa que la realidad, en cuanto creación divina, es buena, y que la belleza es la expresión de esta bondad; por lo tanto, el arte es verdad, ya que, mostrando la belleza, revela la perfección divina, con lo cual el trabajo del artista alcanza una dimensión trascendente. En la época moderna, al entrar en crisis los universales, también entra en crisis el valor verdadero del arte, que ya a partir del romanticismo, comienza a convertirse en pura subjetividad, relativismo y superfi cialidad.

Ahora bien, Heidegger (2000) replantea la relación del arte con la verdad renunciando a las ambiciones universales y absolutas. Para el fi lósofo alemán, la verdad es algo esencialmente misterioso, que no se posee al modo de la ciencia, de la metafísica o de la religión, sino que se debe revelar y proteger. La suya es una verdad sujeta al tiempo y al contexto, abierta e indeterminada, en construcción permanente, que se revela (se pone en obra) y se interpreta en el arte (desde la hermenéutica), y esta verdad se presenta solo de modo libre y desinteresado. Este concepto de verdad implica el arte, primero, porque el arte puede ser libre y desinteresado; luego, porque el arte respeta la complejidad de la realidad, en cuanto no trata de explicarla, sino de compartirla a través de la experiencia de la belleza.

Gadamer desarrolla la relación del arte con la verdad por el saber, la forma, la identidad y la función. Retomando a Platón y a Heidegger, Gadamer (2000) ha mostrado cómo el arte transforma al ser humano y que esta transformación es pura y verdadera, porque en el arte, como en el juego, se acepta un espacio compartido que se expresa en la forma y en la belleza. En este sentido, el arte debe superar los límites de la creatividad individual2 que caracteriza al artis-ta desde el romanticismo. Desde el punto de vista generativo, el análisis de Gadamer sobre la mímesis (o imitación de la naturaleza, tan despreciada por el arte moderno y posmoderno) es esencial: imitación implica conocimiento y comprensión, por esto, el artista necesita estudiar y conocer la naturaleza.

Los conceptos clave que se pueden capitalizar de ambos autores para fun-dar una metodología generativa son, entonces, los siguientes: una suerte de teoría constructivista de la verdad y del conocimiento, que apela a la inter-pretación y a la participación activa del artista, lo que hay que traducir en los procesos interactivos; la idea de mímesis, que incluye el conocimiento en el proceso creativo y el manejo de dicho conocimiento en las tecnologías de la información; y, por último, la idea del espacio libre y compartido, que caracte-riza al juego, al arte y al ciberespacio.

2 La crítica al genio romántico y a la estética de Immanuel Kant es un aporte importan-tísimo de Gadamer.

Libro GENERATIVO-plotter.indb 32Libro GENERATIVO-plotter.indb 32 13/01/2016 12:05:4413/01/2016 12:05:44

Page 33: Libro GENERATIVO-plotter

Manual de diseño generativo 33

2.2.2 El arte, la sociedad, la política y los medios de comunicación

Los conceptos de libertad y democracia artística se refuerzan con los apor-tes de la escuela de Frankfurt (Theodor Adorno, Walter Benjamin, HerbertMarcuse) y de sus herederos, Guy Debord y Jean Baudrillard. En el primer caso, se trata de una crítica a ciertos aspectos del arte y de la tecnología mo-derna: por efecto de las máquinas y de la industria cultural, el arte ha perdidosu aura (trascendencia) y se ha convertido en una pieza de la sociedad delespectáculo y de sus mecanismos de falsos valores creados para fi nes comer-ciales o persuasivos.

En el segundo caso, se argumenta que las tecnologías electrónicas e in-formáticas son responsables de la sustitución de lo real por el hiperrealismo mediático y tecnológico de las simulaciones, que la difusión hipertrófi ca con-vierte en algo más real que lo real: en el simulacro3. La crítica de Jacques De-rrida (2004), por otro lado, aborda la computabilidad del lenguaje y la pérdida de su poder creativo y liberatorio, porque las máquinas lo reducen a ser un mecanismo determinista.

Simulaciones, hiperrealismo, lenguajes informáticos y software son, en-tonces, algunos de los problemas de los procesos generativos. Pero, si bien la industria cultural y las tecnologías son causas de la crisis actual del arte4, los factores científi cos y tecnológicos en el umbral de la complejidad (como la inteligencia artifi cial, la vida artifi cial y la programación genética) pueden cuestionar la esencia mecanicista y determinista de la computación y de sus aplicaciones. En esto reside el valor del paradigma generativo, que no es solo simulación e ilusión, sino participación e interacción. En segundo lugar, el pe-ligro de la uniformidad masifi cada se reduce, pues los procesos digitales son distribuidos globalmente, pero son personalizables individualmente.

2.2.3 Complejidad, intuición e inteligencia: Bergson

Bergson es relevante en nuestro marco teórico porque sus ideas, a pesar de las críticas (por ejemplo, con respecto a las teorías de Charles Darwin), se en-cuentran implícitamente en las estrategias y en las cualidades peculiares del diseño generativo, así como en las obras de sus artistas.

En el trabajo de Bergson (2007) es posible rescatar dos conceptos esenciales para la utilidad estética y pedagógica del paradigma generativo. En primer lugar, el concepto de duración, que, al contrario del tiempo de las matemá-ticas (una mera sucesión de instantes estáticos, indiferentes a las diferencias

3 En los documentos de los congresos SIGGRAPH en los noventa, se pueden ras-trear muchos documentos al respecto, como The Tao of Postmodernism: Computer Art,Scientifi c Visualization and Other Paradoxes de Donna Cox.

4 A este propósito, véase el reciente libro de Mario Vargas Llosa, La civilización delespectáculo.

Libro GENERATIVO-plotter.indb 33Libro GENERATIVO-plotter.indb 33 13/01/2016 12:05:4413/01/2016 12:05:44

Page 34: Libro GENERATIVO-plotter

34 Umberto Roncoroni

cualitativas), es el tiempo de la conciencia, una multiplicidad cualitativa que el hombre percibe como una sucesión continua entre el presente y el pasado, en la cual las vivencias se armonizan entre sí, como sucede con las notas de una melodía. En segundo lugar, la distinción entre inteligencia e intuición: la inteligencia fracciona lo real en unidades discretas y estáticas, mientras que la intuición, superior a la inteligencia, es empática, permite un conocimiento más profundo y hace posible la superación de las barreras interpuestas por un lenguaje científi co incapaz de fundirse con lo real. Inteligencia e intuición son, pues, los respectivos aspectos de la máquina y del artista.

2.2.4 Arte y experiencia: Dewey

El aporte de Dewey para una teoría del arte generativo consiste en marcar la distancia entre la estética contemporánea, sustancialmente romántica, centra-da en la individualidad del artista y en el arte por el arte, y el concepto de un arte difuso en lo vivencial y participativo. Dewey (2005) defi ne el arte como una experiencia peculiar, particularmente compleja y rica, porque involucra al individuo con todas sus facultades y percepciones. El arte como construcción de experiencias no se manifi esta en obras de arte, sino en todos los hechos coti-dianos, vividos en su plenitud. Las obras de arte son “celebraciones de las cosas de la experiencia ordinaria”, un entramado conceptual que nos permite conce-bir las experiencias estéticas para desarrollar una vida más digna e inteligente.

La obra de arte generativa quiere ofrecer al espectador precisamente una experiencia especial, que se manifi esta en los procedimientos interactivos, en la mímesis, en la relación con el contexto real que las tecnologías informáticas permiten integrar con facilidad5.

2.3 LA RELACIÓN ENTRE ARTE, CIENCIA Y COMPLEJIDAD

Entre las cuestiones fi losófi cas relativas al paradigma generativo es necesario analizar un poco más el entramado fi losófi co que construye el concepto de complejidad. Ahora bien, hablar de complejidad es entrar en un terreno peli-groso; se debe tomar, entonces, estas ideas como sugerencias e invitaciones a la investigación y como aportes a los tutoriales. Por otro lado, la complejidad propone aproximaciones metodológicas que pueden resultar en la implemen-tación de procesos creativos y tecnológicos originales.

2.3.1 Teorías de la complejidad

Para nosotros, las preguntas más importantes son ¿qué es la complejidad?, ¿dónde nace la complejidad? La complejidad se refi ere a la capacidad de in-

5 Por ejemplo, a través de tecnologías como physical computing.

Libro GENERATIVO-plotter.indb 34Libro GENERATIVO-plotter.indb 34 13/01/2016 12:05:4413/01/2016 12:05:44

Page 35: Libro GENERATIVO-plotter

Manual de diseño generativo 35

terconectar diferentes dimensiones de lo real. Es una estrategia de pensa-miento no reductiva, capaz de tomar en cuenta las dimensiones caóticas de la realidad. Estos principios se refl ejan en los modelos y las simulaciones del diseño generativo: interactividad y recursividad, y se basan en el intercam-bio de información.

Por otro lado, para el físico Murray Gell-Mann (2003), los fenómenos com-plejos no son algo trascendente, sino simplemente el producto de una inmensa, pero fi nita, actividad combinatoria. Para Gell-Mann, entonces, la complejidad no es un nuevo pensamiento alternativo al racionalismo y a la ciencia clásica, y no puede pretender rescatar lo que no es racional y demostrable, como la fi losofía o el mito6.

El pensamiento posmoderno, cuestionando en general el poder absoluto del método científi co clásico, pretende instaurar nuevas dimensiones cognos-citivas, que incluyen sentimientos, emociones, percepciones y, sobre todo, el tiempo y la realidad como es en la vida real, no como se reproduce cristalizada en laboratorio. Queda claro que el concepto de complejidad es cuestionado y, aunque todos hablan al respecto, no se ha llegado a un acuerdo, como se sin-tetiza en dos casos ejemplares que se verán a continuación.

2.3.2 Críticas a la complejidad

Para dos científi cos americanos, Sokal y Brickmont (1999), la crítica a la cien-cia que caracteriza al pensamiento complejo se basa en falsos conceptos cien-tífi cos y malabares fi losófi cos posmodernos; para Jorge Wagensberg (1985),conocido científi co y teórico del conocimiento, la complejidad existe, pero es un aspecto ininteligible de la realidad, que no se puede analizar metódica-mente. El arte no logra explicar esta complejidad ininteligible, aunque pueda comunicarla y expresarla.

Ahora bien, en el paradigma generativo no hay necesariamente una idea posmoderna de complejidad ni una crítica a la ciencia; todo lo contrario: el arte generativo, en cuanto complejo, es inteligible racionalmente porque, en contra de lo que afi rma Wagensberg, la unión entre arte y ciencia está resuelta en la matemática y en el saber científi co embebido en el software. La clave está en la interacción entre ambos dominios, y para esto la interactividad debe ser una de las funciones que ofrece un buen software generativo.

2.4 IDEAS PARA UNA ESTÉTICA GENERATIVA

Las cuestiones fi losófi cas y científi cas son los contenidos para poder hablar con sentido de estética generativa. La complejidad y la hermenéutica abren al

6 Véase, por ejemplo, Capra, F. (1975). El tao de la física.

Libro GENERATIVO-plotter.indb 35Libro GENERATIVO-plotter.indb 35 13/01/2016 12:05:4413/01/2016 12:05:44

Page 36: Libro GENERATIVO-plotter

36 Umberto Roncoroni

arte una nueva relación con la verdad; después de Martin Heidegger y Hans-Georg Gadamer, La muerte del autor de Roland Barthes, Opera aperta de Umber-to Eco y la teoría de la acción comunicativa y de la ética del discurso de Jürgen Habermas, se pueden considerar las bases de la estética interactiva e hipertex-tual, y entonces, las del arte generativo. Y la cuestión de la reproducibilidad técnica de Walter Benjamin refl eja estos problemas estéticos en la tecnología.

2.4.1 La obra abierta y el enfoque en el proceso

El trabajo de Eco (2000) es importante (lo reconocen casi todos los artistas ge-nerativos) porque ha puesto en claro el problema de la obra de arte como algo interactivo y en permanente elaboración, donde lo que prima es el proceso creativo mismo, en lugar de la obra acabada. En segundo lugar, Eco (sobre lo que dijo Barthes) ha tenido la osadía de hablar de la obsolescencia de los lenguajes artísticos; en efecto, es cada vez más difícil encontrar novedad y originalidad en las artes, pero, para escapar a esta situación, el arte generati-vo no debe ceder a la tentación de la búsqueda de imágenes o instalaciones tecnológicas cada vez más barrocas y raras7. El paradigma generativo no tiene trascendencia si no se concentra en el proceso y en las estructuras subyacentes a la práctica artística, y si no cuestiona el mismo concepto de arte y autoría. En tercer lugar, la obra abierta destaca el problema de la relación de la obra con el contexto, pues queda claro que se debe pensar el arte en un nuevo8 modelo de relaciones culturales y sociales.

En este sentido, Habermas (1990) plantea las condiciones de la acción co-municativa y de la ética del discurso, lo que es relevante en términos de inter-actividad porque fi ja las condiciones ideales de este proceso (y, por lo tanto, también de la obra abierta): libertad, igualdad y democracia del conocimiento.

2.4.2 Reproducibilidad, producibilidad e irreproducibilidad

El paradigma generativo se relaciona con la crítica de la reproducibilidad téc-nica de Walter Benjamin (1969) y con el concepto de producibilidad de Mario Costa (2005). Como es sabido, el discurso de Benjamin radica en que la téc-nica quita a la obra de arte su aura de unicidad (el hic et nunc, lugar, materia, tiempo, etcétera); pues bien, también el proceso generativo es reproducible,en cuanto se puede repetir indefi nidamente, sobre todo cuando este es un modelo informático.

7 Este es un problema obviamente de todo el arte; tenemos las posibilidades más asom-brosas, pero cuando ya estamos saturados de miles o millones de obras de arte, sin contar las del pasado.

8 Es nuevo no tanto porque no haya sido pensado, sino porque no ha sido todavía reali-zado o está opacado por la lógica del mercado del arte o de la industria cultural.

Libro GENERATIVO-plotter.indb 36Libro GENERATIVO-plotter.indb 36 13/01/2016 12:05:4413/01/2016 12:05:44

Page 37: Libro GENERATIVO-plotter

Manual de diseño generativo 37

El modelo benjaminiano se desarrolla en el de la producibilidad de Costa, que apela a la posibilidad de las herramientas digitales de generar y crear obras con extrema efi ciencia; entonces, lo que sucede es que ahora hay una produc-ción infi nita de originales o muchas instancias de un original que existe solo como modelo virtual, sin necesidad de reproducir copias. Sin embargo, un proceso generativo puede dar como resultado infi nitos y siempre diferentes originales de modo autónomo (gracias, por ejemplo, a los algoritmos de vida artifi cial que se explorarán en los tutoriales), lo que supera tanto el concepto de reproducibilidad de Benjamin como el de producibilidad de Costa. En este sentido, es preferible hablar de irreproducibilidad: el diseño generativo pro-duce piezas únicas, que no se pueden repetir.

Naturalmente, estos procesos generan una infi nidad de objetos o elemen-tos que, aunque diferentes entre sí, agotan su aura, precisamente porque la originalidad de cada uno acota la del otro, pues la cantidad anula el valor de la unicidad. Pero hay una posibilidad: que el aura no se considere una pro-piedad del objeto reproducible o producible técnicamente, sino del proceso generativo y tecnológico. Es el algoritmo y la creatividad lo que importan, no sus productos; arriesgando una metáfora biológica, es devolver el valor del es-pécimen al ADN. Para esto, el proceso artístico necesita la participación activa del espectador o del usuario, y en esta participación se encuentra nuevamente el aura, con la ventaja de que así esta se difunde y se distribuye.

2.4.3 La función hermenéutica y mayéutica del arte generativo

Al respecto, el primer valor del paradigma generativo es la función práctica y cognitiva del arte. Esta propiedad es constitutiva, en cuanto el proceso artísti-co generativo e informatizado se presenta en forma de software aplicativo (por ejemplo, podría ser un programa de diseño como aquellos de los tutoriales) y porque, en el modelo de la simulación y en su código, el software incluye con-ceptos y conocimientos de varia naturaleza.

El segundo valor del arte generativo es la interacción, es decir, el proceso generativo toma su verdadero sentido y brinda su riqueza expresiva y con-ceptual cuando alcanza una dimensión colectiva, cuando es una herramienta a disposición de la colectividad9. Entonces, el arte generativo es propiamente el arte de la herramienta, metalenguaje, metaherramienta: un proceso que el

9 En este sentido, Gadamer (siguiendo a la Bauhaus) subraya el valor agregado que la función da a la obra de arte: el dominio de la acción práctica implica siempre los valores simbólicos y la acción humana no es solo práctica o utilitaria, sino que responde a una cultura y a unas fi nalidades colectivas; y en este sentido es comu-nicación de valores. Discurso que fue retomado por la Bauhaus y Rudolph Arn-heim, véase el libro Consideraciones sobre la educación artística. Pero esto es también el sentido de internet, de las comunidades virtuales, del software libre, del open source, etcétera.

Libro GENERATIVO-plotter.indb 37Libro GENERATIVO-plotter.indb 37 13/01/2016 12:05:4413/01/2016 12:05:44

Page 38: Libro GENERATIVO-plotter

38 Umberto Roncoroni

usuario aplica (y contribuye a diseñar) para hacer algo suyo (este algo puede ser una obra de arte). Según mi forma de ver, esta característica es la esencia de toda estética hipertextual.

La metaherramienta se defi ne, entonces, mediante la función hermenéutica y mayéutica. La relación con la hermenéutica se produce porque la creatividad y la técnica son descubrimiento e interpretación de la naturaleza. Y, en cuanto herramienta creativa e interactiva, el proceso generativo es mayéutico, porque está abierto al potencial del usuario, al que proporciona herramientas y sabe-res para que este se convierta en creador y en artista.

10 Problema parecido a la teoría de la semejanza en arte propuesta por George Dickie en El círculo del arte.

Para profundizar

El problema de la creatividad en Chomsky y Wittgenstein

El problema, tanto en Wittgenstein como en Chomsky, consiste en determinar ¿cómo

es que los juegos lingüísticos se modifi can, mueren y nacen10?, ¿cómo es que a partir

de un conjunto de reglas limitado y, entonces, de un conjunto fi nito de proposicio-

nes se puede generar una variedad infi nita de formas del lenguaje, sentidos y propo-

siciones? Este problema es relevante para las técnicas generativas como las shape

grammars y los sistemas-L; se trata de determinar si son sistemas complejos indetermina-

dos y emergentes o sistemas determinados y predecibles.

• Wittgenstein considera que depende del uso práctico y de la relación con el

contexto; este autor no da mucha importancia al uso individual del lenguaje

(los juegos lingüísticos privados). La crítica desde el punto de vista de Chomsky

a Wittgenstein es la siguiente: si no existe la creatividad lingüística individual,

¿cómo puede una experiencia nueva ser representada por el lenguaje público,

que es lo que ya existe?

• Para Chomsky, hay una creatividad determinada por reglas combinatorias y recur-

sivas, las gramáticas generativas, y una creatividad que se debe a una suerte de

facultad lingüística genética innata e independiente del contexto. La crítica desde

el punto de vista de Wittgenstein a Chomsky es esta: si la creatividad es innata e

independiente del contexto, no sería posible la formación de reglas comunes.

Libro GENERATIVO-plotter.indb 38Libro GENERATIVO-plotter.indb 38 13/01/2016 12:05:4413/01/2016 12:05:44

Page 39: Libro GENERATIVO-plotter

Manual de diseño generativo 39

Los artistas generativos, incluyendo al autor de este manual, consideran que una obra de arte generativo se puede llevar a cabo con un proceso totalmente arbitrario, abstracto y de pura fantasía, siempre y cuando tenga parámetros sufi cientes para permitir variaciones y una cierta dosis de sorpresa en sus resultados.

No obstante, el verdadero interés de los principios generativos está en re-lacionar el proceso creativo con los fenómenos naturales; en este sentido, un modelo preciso de la naturaleza ofrece mayor fuerza creativa, comunicativa y didáctica, porque enriquece la creatividad con el conocimiento científi co, la ex-periencia concreta, la historia y los demás aspectos del contexto natural y social.

Naturalmente, hay muchos procesos naturales —orgánicos e inorgánicos— que pueden ser efi cazmente modelados para “mover” un proceso generativo. Pero aquí, respetando los límites de este manual, se restringe la atención a aquellos conocimientos y métodos de la ciencia realmente indispensables des-de el punto de vista práctico del principiante.

En tal sentido, los conceptos científi cos que más se utilizan en el diseño generativo son la complejidad, el valor cognitivo de la forma, la teoría de siste-mas, la teoría del caos, las geometrías no euclidianas, la vida y la inteligencia artifi cial, y la genética.

Al terminar la lectura, el lector será capaz de:• Comprender los principios científi cos del proceso generativo.• Manejar estos conocimientos para aplicarlos tecnológicamente.• Explicar, justifi car y sustentar metodológicamente su proceso generativo.• Analizar, contextualizar y comparar su propuesta teórica dentro un

contexto tecnológico.• Reforzar la fundamentación teórica de su propuesta artística.• Mejorar el diseño y la implementación del software generativo.

La complejidad, en general • La teoría de sistemas • La teoría del caos y el azar • Geometrías no eucli-

dianas y fractales • Las simulaciones científi cas • Genética • Química, física, mecánica, biología

Los aspectos científi cosdel arte generativo

Lección

3

Libro GENERATIVO-plotter.indb 39Libro GENERATIVO-plotter.indb 39 13/01/2016 12:05:4413/01/2016 12:05:44

Page 40: Libro GENERATIVO-plotter

40 Umberto Roncoroni

3.1 LA COMPLEJIDAD, EN GENERAL

Antes de entrar en los temas específi cos, se presentan algunos conceptos ge-nerales sobre la complejidad: se podría decir que la complejidad en la ciencia se propone a raíz de ciertas teorías, como consecuencia de ciertos fenómenos y en parte también gracias a las tecnologías informáticas.

3.1.1 El cuestionamiento de la ciencia clásica

Las ciencias de la complejidad consideran a la ciencia clásica en modo críti-co por tres razones fundamentales. La primera es la necesidad de estudiar fenómenos científi camente nuevos, como la meteorología, las fi nanzas y la ecología... procesos sistémicos complejos por naturaleza, que exigen nuevas herramientas conceptuales. La segunda razón es la “incertidumbre” física y matemática que sufre la ciencia por los cuantos y los teoremas de Kurt Gödel. Por ejemplo, la física cuántica ha mostrado la compleja relación que se estable-ce entre los fenómenos observados y el observador: el punto de vista infl uye en las informaciones que se recogen; esto cuestiona la pretensión de que la mirada de la ciencia sea absolutamente precisa y objetiva. En cierto sentido, la investigación comienza a abordar el tema de las relaciones entre los fenó-menos, ya que ha llegado al fondo de los fenómenos en sí. Y a esto se agrega, por parte de algunos fi lósofos de la ciencia, el cuestionamiento metodológico y epistemológico1.

Todo esto se precisa en algunas críticas puntuales:a. Critica el reduccionismo. La complejidad pretende dar una explicación

global de los fenómenos, con relación a los demás. b. Incluye parámetros rechazados por Descartes, como el tiempo, el cam-

bio, la percepción, las emociones.c. Se relaciona con la interdisciplinariedad, volviendo a “contaminarse”

con las humanidades, la fi losofía y el arte. Requiere de nuevos ins-trumentos matemáticos. Acostumbra a pensar en términos generales,de relaciones.

Cabe preguntarse por los retos que se presentan al artista generativo. En primer lugar, hay que evitar el uso arbitrario y poético de la ciencia, puesto que de esta forma se anula tanto el valor epistemológico del arte como el rigor de la ciencia. En segundo lugar, se debe averiguar si la aplicación de estos

1 Gödel demostró la incompletitud de cualquier sistema matemático; y, desde luego, los problemas del método científi co y del desarrollo teórico de la ciencia propuestos por Paul Feyerabend y Thomas Kuhn.

Libro GENERATIVO-plotter.indb 40Libro GENERATIVO-plotter.indb 40 13/01/2016 12:05:4413/01/2016 12:05:44

Page 41: Libro GENERATIVO-plotter

Manual de diseño generativo 41

principios, que da lugar a los fenómenos emergentes, consigue resultados con-cretos o simplemente ilusiones y simulacros. Muchas obras de arte generativo sufren claramente de estas limitaciones2.

3.2 LA TEORÍA DE SISTEMAS

La teoría general de sistemas, elaborada por Ludwig von Bertalanff y (1976), brinda varios conceptos fundamentales del arte generativo. Considera que todo proceso generativo es sistémico porque consiste en una dinámica de mu-chos elementos dentro un contexto común.

3.2.1 El punto de vista sistémico

En efecto, la teoría general de sistemas surgió para explicar el comportamien-to de un fenómeno teniendo en cuenta el contexto y a través de la relación entre sus elementos, lo cual se opone al método reduccionista, que explica solo un aspecto del fenómeno artifi cialmente aislado de los demás. Otro rasgo importante es que el estudio considera los sistemas dentro de sus procesos de cambio y transformación, como sucede en la realidad. Todo esto se traduce en los principios de la retroalimentación, del tiempo y del cambio.

• Retroalimentación o feedback. En un proceso sistémico, la información circula libremente entre el sistema (en su totalidad) y sus elementos. La actividad de los elementos modifi ca el estado general del sistema, lo que a su vez afecta a los elementos individuales. Es el principio de larecursividad.

• Homeostasis. Es la tendencia al equilibrio de los sistemas, que defi ne el nivel de respuesta y de adaptación al contexto. La entropía de un sis-tema es el desgaste que este presenta en el transcurso del tiempo. Los sistemas altamente entrópicos tienden a desaparecer por el desgastegenerado por su desarrollo y deben tener mecanismos de revisión, reela-boración y adaptación permanente, para evitar su desaparición.

• Tiempo y evolución. Todo sistema complejo es dinámico, es decir, se debe comprender en su conjunto histórico. El tiempo se puede imple-mentar fácilmente en los procesos algorítmicos. Por ejemplo, en la vida artifi cial y en los autómatas celulares.

2 Véase, por ejemplo, la crítica de Nikos Salingaros, Charles Jencks y el nuevo paradigma en arquitectura.

Libro GENERATIVO-plotter.indb 41Libro GENERATIVO-plotter.indb 41 13/01/2016 12:05:4513/01/2016 12:05:45

Page 42: Libro GENERATIVO-plotter

42 Umberto Roncoroni

3.2.2 Emergencia

Un sistema complejo es caótico y emergente, pues su estructura y el orden de sus elementos son el resultado de este complejo proceso de interacción y re-troalimentación. Y la emergencia es lo que se espera de un proceso generativo. ¿Pero de qué se está hablando exactamente?

Un fenómeno (como también el diseño o la forma de un artefacto) se dice emergente cuando no está planifi cado de antemano, o impuesto por alguien o algo externo al sistema, sino que surge desde la libre interacción de los ele-mentos del sistema. Emergente signifi ca, asimismo, “impredecible”, pues la relación con el contexto y la complejidad de los sistemas hacen que los fenó-menos emergentes nunca sean iguales. Los elementos y etapas del proceso sistémico son lo realmente importante, quizás más que el mismo fenómeno que el sistema produce como resultado.

Lo emergente implica para un sistema una suerte de fi nalidad común, un objetivo común, una intencionalidad general implícita hacia ciertos objetivos estratégicos3, pues tanto los organismos como los fenómenos naturales inor-gánicos responden a las leyes de sobrevivencia o a las necesidades de la ma-teria. Obviamente, lo orgánico tiene algo especial, puesto que construye su orden4 sobre la base de un objetivo, sea la pura sobrevivencia y reproducción, sea algo más complejo, como la cultura o las relaciones sociales. Ciertamente, solo la vida produce este “pique” hacia lo nuevo, hacia la modifi cación y re-constitución creativa de la realidad, dado que todo organismo tiene el princi-pio absoluto de la creatividad: la reproducción.

Es importante notar, desde el punto de vista científi co y tecnológico, que los fenómenos emergentes no son caóticos, no se obtienen jugando con el azar, como muchas veces hacen los artistas digitales para superar los límites de la computación. Pero de esto se tratará más adelante.

3 Que los antiguos griegos denominaban télos. Es importante notar que la teleología ha sido parte fundamental del pensamiento científi co desde la Grecia antigua hasta nues-tros días y que aún sigue siendo punto de debate y discusión. Una de las controversias más importantes en la biología evolutiva es hasta qué punto las características de los organismos son evidencia de la adaptación y, por lo tanto, de la acción del principio de la selección natural. Muchos autores han manifestado que las explicaciones teleológi-cas son objetivas y están libres de signifi cados metafísicos, además de ser heurística-mente importantes, por ejemplo, para el estudio de la adaptación y las funciones de los organismos.

4 Como en la teoría de la autopoiesis de Maturana y Varela.

Libro GENERATIVO-plotter.indb 42Libro GENERATIVO-plotter.indb 42 13/01/2016 12:05:4513/01/2016 12:05:45

Page 43: Libro GENERATIVO-plotter

Manual de diseño generativo 43

Para profundizar

Maturana, Varela y la autopoiesis

Según la teoría de la autopoiesis, los sistemas complejos son cerrados y autosufi cientes, pero esto no

signifi ca que no dependan de la naturaleza del contexto. La autopoiesis da origen a la cibernética

de segundo nivel y al constructivismo radical. Fue propuesta por los biólogos chilenos Humberto

Maturana y Francisco Varela (1980) para defi nir la química de automantenimiento de las células vivas.

Una máquina autopoiética es aquella que se autogenera (producción-destrucción) de modo sisté-

mico por sus propios medios, interacciones, transformaciones y procesos. Un sistema autopoiético

es autocontenido, es cerrado. Esto no signifi ca que no tenga interacciones con el contexto, sino solo

que otros sistemas lo perciben desde su punto de vista particular (desde otro sistema autopoiético).

Se transforma, pero su identidad es la misma.

Un sistema autopoiético se compone de

subsistemas.

M. C. Escher, Drawing Hands, 1948

3.3 LA TEORÍA DEL CAOS Y EL AZAR

La teoría del caos, elaborada por Ilya Prigogine (1977) y otros científi cos en los años cincuenta, pretende explicar la complejidad de los fenómenos naturales dentro de su libre desarrollo. Análogamente a la teoría de sistemas, incluye el cambio, el contexto y sus accidentes.

Para explicar la entropía típica de la complejidad, la teoría del caos propone el efecto mariposa: un sistema complejo es caótico cuando es muy sensible a cualquier pequeña variación de uno de sus elementos; a lo largo del tiempo, el sistema presentará grandes e imprevisibles variaciones precisamente como consecuencias extremas de estos mínimos factores. Así, se dice que el movi-miento de las alas de una mariposa en Japón puede provocar un huracán en Estados Unidos.

Libro GENERATIVO-plotter.indb 43Libro GENERATIVO-plotter.indb 43 13/01/2016 12:05:4513/01/2016 12:05:45

Page 44: Libro GENERATIVO-plotter

44 Umberto Roncoroni

Volviendo al diseño generativo, si se plantea un proceso sufi cientemente complejo, articulado y parametrizado, se puede obtener una gran variedad de diseños diferentes cambiando sus entradas iniciales. Pero esto presenta pro-blemas computacionales, pues los parámetros no son sufi cientes comparados con la realidad, y los instrumentos de cálculo son inadecuados. Por esta razón, en el software generativo el comportamiento caótico se simula con el azar, aun-que se trate de una solución artifi cial y arbitraria, introducida desde el exterior del sistema y que, por lo tanto, se debe considerar una trampa, un truco o una inconsistencia teórica y creativa. Sin embargo, el sistema informático resul-ta igualmente imprevisible, porque puede ser sumamente complicado, lo que provoca igualmente sorpresa e interés.

3.4 GEOMETRÍAS NO EUCLIDIANAS Y FRACTALES

En el marco de la crítica a la ciencia clásica, se encuentran varias cuestiones re-lativas a la geometría. Me refi ero a las geometrías no euclidianas, que tienen el objetivo de revelar las estructuras del espacio real de modo más completo que la simplifi cación euclidiana de cubos, esferas o pirámides; con esto, pretenden facilitar la generación de formas complejas que posibilita la computadora.

La medida euclidiana tradicional simplifi ca la complejidad del detalle sin-tetizando la forma, lo que es evidente en la pintura de Paul Cézanne (1937), que sintetiza la naturaleza en formas geométricas simples: “Tratar a la natu-raleza por medio del cilindro, la esfera, el cono, todo puesto en perspectiva adecuada... Dirigirse a un punto central”.

Paul Cézanne, La Montagne Sainte-Victoire, 1905 Bill Caplan, Curved Space, 2015

Libro GENERATIVO-plotter.indb 44Libro GENERATIVO-plotter.indb 44 13/01/2016 12:05:4513/01/2016 12:05:45

Page 45: Libro GENERATIVO-plotter

Manual de diseño generativo 45

3.4.1 El espacio curvo

Karl Gauss y Albert Einstein fueron los primeros en considerar una alternati-va no euclidiana para la geometría del universo. En 1920, Einstein, basándose en el trabajo de Bernhard Riemann, descubrió que la geometría del espacio-tiempo tiene curvatura y, con esto, demostró lo que Gauss había imaginado, es decir, que la geometría de los griegos corresponde a la estructura infi nitesimal del espacio, pero que, al generalizar dicha estructura geométrica, se encuentra la curvatura. La importancia de las geometrías no euclidianas, en términos artísticos, está en la posibilidad de generar nuevas formas y patrones tridi-mensionales de gran belleza y complejidad. Además, guardan una relación más armónica con la complejidad de las formas naturales.

3.4.2 Fractales

La geometría fractal es otro sistema para explicar la complejidad y la irregu-laridad de las formas naturales. Desde el punto de vista euclidiano, la com-plejidad no se puede comprender porque no se llega al límite del detalle que se mide: siempre se encuentran más detalles y más pequeños. Los fractales solucionan esta regresión al infi nito con base en un proceso recursivo y en la dimensión fraccionaria, que mide la relación entre la forma general y el detalle. El enfoque en el proceso algorítmico y en la formulación matemática hace de los fractales algo esencial para el diseño generativo, pues se pueden implementar con facilidad, como se verá en el tutorial 3 de la tercera parte.

Aquí se examinan las propiedades esenciales de la geometría fractal: la dimensión fraccionaria, las propiedades topológicas, la recursividad y la au-tosimilaridad.

• La dimensión fraccionaria. Da cuenta de la complejidad y de la irre-gularidad de una forma con relación a la escala de su medida. Así los fractales describen muy bien la variedad y el cambio que caracteriza a los fenómenos naturales.

• Topología. Los fractales tienen la propiedad de rellenar el espacio en forma más efi ciente que las formas euclidianas. Por ejemplo, la longi-tud casi infi nita del sistema circulatorio con respecto al tamaño fi nito del cuerpo humano. Tienen también paradojas formales y estructurales, como la posibilidad de superfi cie fi nita y perímetro infi nito.

• Recursividad y autosimilaridad. Es una propiedad de muchas formas naturales cuyos detalles presentan la misma estructura de la forma ge-neral. Así, la estructura de una ramita de un árbol es la misma que la es-tructura de la rama principal, y esta es la misma que la del árbol entero. Esta propiedad es computacionalmente interesante porque se obtiene con facilidad a través de procesos iterativos y funciones recursivas.

Libro GENERATIVO-plotter.indb 45Libro GENERATIVO-plotter.indb 45 13/01/2016 12:05:4613/01/2016 12:05:46

Page 46: Libro GENERATIVO-plotter

46 Umberto Roncoroni

3.5 LAS SIMULACIONES CIENTÍFICAS

Una aplicación interesante de la tecnología informática en la ciencia es la mo-delación y la simulación por computadora de los fenómenos naturales. Esto comprende la vida y la inteligencia artifi cial, muy utilizadas por los artistas generativos, quienes pueden aprovechar sus principios para generar nuevas formas y experiencias estéticas complejas5.

3.5.1 La vida artifi cial

La vida artifi cial es un conjunto de técnicas matemáticas e informáticas que simulan el comportamiento de los organismos naturales, desde los microor-ganismos hasta los procesos sociales de los seres humanos. Los gurús de los organismos artifi ciales consideran sus creaciones al mismo nivel de la vida natural, como si a partir de un algoritmo y de un software naciera una entidad independiente que evoluciona, se reproduce, nace y muere.

La vida artifi cial presenta fenómenos emergentes. Por eso, se aplica muy bien a la experimentación artística generativa, ya que ayuda a generar nuevas clases de imágenes en formas que superan las posibilidades de la creatividad

5 Un aspecto crítico, sin embargo, es que la visualización de estas simulaciones, es decir, imágenes y animaciones, en muchos casos pretende sustituir a la experiencia directa.

Umberto Roncoroni, imagen original de 4000 x 4000 píxeles, 2003

Zoom del ángulo superior izquierdo

Libro GENERATIVO-plotter.indb 46Libro GENERATIVO-plotter.indb 46 13/01/2016 12:05:4613/01/2016 12:05:46

Page 47: Libro GENERATIVO-plotter

Manual de diseño generativo 47

del artista humano, a pesar de que es un ser humano el que puede pensar y programar esta clase de procesos. Lo interesante es la combinación de pro-cesos científi cos y artísticos, lo que otorga a esta clase de arte una peculiar naturaleza epistemológica y, por lo tanto, pedagógica. Naturalmente, la vida artifi cial se puede combinar con otras técnicas generativas, por ejemplo, con los fractales, las gramáticas generativas, la genética, la multimedia, etcétera.

Umberto Roncoroni, Cellular Automata Painting 1 y Cellular Automata Painting 2, 2003

3.5.2 La inteligencia artifi cial

Así como la vida artifi cial reproduce digitalmente los organismos, la inteli-gencia artifi cial es un conjunto de técnicas y algoritmos que simulan el ra-zonamiento. Estos algoritmos permiten que los programas se autocorrijan y aprendan, hasta construir sistemas expertos que aplican bases de datos para tomar decisiones inteligentes. Ahora bien, a pesar de algunos logros asombro-sos (como la AI que le ganó al campeón mundial de ajedrez), los especialistas han renunciado a la ilusión de reproducir la inteligencia humana (la AI fuerte); hoy, el objetivo es más modesto y humilde, pero no por esto menos valioso.

3.5.3 La visualización científi ca

Las simulaciones se presentan al científi co a través de imágenes y animacio-nes; la visualización científi ca y el arte son, sin embargo, algo más que ilustra-ciones o documentos visuales de un experimento científi co, incluso producen fenómenos que no suceden en la naturaleza. Esto genera una relación nueva entre ciencia y arte.

Libro GENERATIVO-plotter.indb 47Libro GENERATIVO-plotter.indb 47 13/01/2016 12:05:4613/01/2016 12:05:46

Page 48: Libro GENERATIVO-plotter

48 Umberto Roncoroni

3.6 GENÉTICA

Los principios de la genética se utilizan en la programación de aplicaciones de inteligencia artifi cial para crear algoritmos que evolucionan autónomamente y también ofrecen interesantes posibilidades al diseño generativo (obviamen-te, la genética que se trata aquí es limitada y simplifi cada artísticamente). Sus principios se relacionan con el lenguaje y se pueden implementar fácilmente en las gramáticas generativas y en los sistemas-L. A continuación, se mues-tran, por lo menos, los principios de utilidad práctica inmediata.

• Genes y símbolos. Un gen es una cadena de símbolos que conserva las características de un determinado organismo, natural o digital. En el mundo digital, muchas cosas se pueden simular con una metáfora ge-nética, lo que proporciona un gran potencial para crear, a partir de dos modelos: padre y madre, una infi nita cantidad de variaciones, híbridos y combinaciones6. De hecho, un sistema-L es una cadena de símbolos como lo es el ADN; así, los sistemas-L pueden ser mezclados entre sí si-mulando un proceso de ingeniería genética, el cual se puede manipular de acuerdo con el contexto, es decir, a través de parámetros establecidos por el usuario.

• Genotipo. El genotipo contiene toda la información genética de un or-ganismo en forma de ADN. Este, junto con la variación ambiental que infl uye sobre el individuo, produce el fenotipo. Inspirada por la biología, la informática emplea genotipos simulados en la programación genéti-ca. De esta forma, se pueden solucionar problemas difíciles, pues la ma-temática evoluciona más efi cientemente en función del problema mismo que en la programación tradicional.

• Fenotipo. El fenotipo es la expresión física y conductual de un orga-nismo, según su ADN y el entorno donde vive. Representa no solo la forma (lo que es visible), sino también rasgos invisibles, como patrones de conducta. El término fenotipo viene de dos palabras griegas: phainein ‘parecer’ y typhos ‘huella’. La diferencia entre genotipo y fenotipo es que el primero se puede distinguir observando el ADN, mientras que el se-gundo puede conocerse por medio de la observación de la apariencia ex-terna de un organismo. ¡Es la misma relación que existe entre el software y lo que aparece en la pantalla!

Un proceso que los organismos aprovechan para evolucionar es aquel que ocurre cuando los genes se mezclan en la reproducción. Así el progreso es lento y poco seguro, pues los genes se mezclan aleatoriamente, como en la

6 Véase a este propósito mi contribución a la Bienal de Arte Digital Artware5 enhtt p://www.digitalartperu.org. Véase también los trabajos de Karl Simms.

Libro GENERATIVO-plotter.indb 48Libro GENERATIVO-plotter.indb 48 13/01/2016 12:05:4713/01/2016 12:05:47

Page 49: Libro GENERATIVO-plotter

Manual de diseño generativo 49

meiosis. La moderna ingeniería genética, por el contrario, permite manipular el material genético en el laboratorio. Los biólogos extraen un gen del ADN deuna célula y lo insertan en el ADN de otra, sin necesidad de que ambas sean de la misma especie. La pieza de ADN puede ser colocada en el lugar preciso mediante enzimas especiales.

3.7 QUÍMICA, FÍSICA, MECÁNICA, BIOLOGÍA

El arte generativo puede aprovechar los principios de diferentes disciplinas científi cas. Estos pueden aplicarse para una simulación rigurosa con fi nes es-téticos o, de modo más libre, tomando muchas licencias poéticas... En todo caso, el poder generativo es grande, porque simples simulaciones de procesos orgánicos o inorgánicos ofrecen una gran variedad de parámetros y, por lo tanto, una notable complejidad.

En esta sección, se presenta una síntesis de estos procedimientos, con los fac-tores o variables, según la disciplina, que pueden interesar al artista generativo.

3.7.1 Química

La química plantea principios para combinar elementos de acuerdo con sus propiedades. Las técnicas genéticas vistas anteriormente se completan cierta-mente con estos principios:

• Reacción de síntesis. Elementos o compuestos sencillos que se unen para formar un compuesto más complejo. A + B → AB

• Reacción de descomposición. Un compuesto se fragmenta en elementos o compuestos más sencillos. En este tipo de reacción, un solo reactivo se convierte en zonas o productos. AB → A + B

• Reacción de desplazamiento. Un elemento reemplaza a otro en un com-puesto. A + BC → AC + B

Es muy fácil hacer esto con los sistemas-L y también en image processing; las modalidades de combinación de layers de Photoshop son un ejemplo de esto7.

3.7.2 Biología y ecología

La biología y la ecología son importantes, pues sus principios permitenelaborar y reproducir reglas para las simulaciones, como la vida artifi cial. Principios útiles:

7 Véase el tutorial 8 de la tercera parte de este manual.

Libro GENERATIVO-plotter.indb 49Libro GENERATIVO-plotter.indb 49 13/01/2016 12:05:4713/01/2016 12:05:47

Page 50: Libro GENERATIVO-plotter

50 Umberto Roncoroni

• Morfología y morfogénesis. La morfología analiza las propiedades de la forma en las diferentes disciplinas. La morfogénesis analiza cómo y con base en cuáles principios se desarrolla una determinada forma. In-cluye los procesos de evolución y adaptación, como explica On Growth and Form de D’Arcy Thompson.

3.7.3 Física y mecánica

Ciertos principios se pueden utilizar en la simulación de procesos naturales como alteradores de la forma: aceleración, gravedad, resistencia, estática, di-námica, teoría de estructuras, entre otros. El análisis de factores físicos permi-te la interacción con physical computing.

Libro GENERATIVO-plotter.indb 50Libro GENERATIVO-plotter.indb 50 13/01/2016 12:05:4713/01/2016 12:05:47

Page 51: Libro GENERATIVO-plotter

Manual de diseño generativo 51

La obra de arte y el proceso generativo, en cierto grado, son libres del control del artista o del diseñador. El proceso generativo, que da lugar a la obra, puede ser natural —como son los procesos biológicos en el paisajismo, la jardinería o el bonsái— o puede ser artifi cial, mediante procesos químicos, meteorológicos o geológicos; y, fi nalmente, puede ser tecnológico, mediante máquinas más o menos complejas, analógicas1 o digitales.

Jean Tinguely, Meta-matic, 1959

1 Como los experimentos de Tinguely, basados en las fi guras de Lissajous. La imperfec-ción de los mecanismos de Tinguely daba a las imágenes un carácter impredecible y caótico.

¿Qué son las tecnologías informáticas? • La complejidad y la computación • El cuestionamiento fi lo-

sófi co a la tecnología • Tecnología, saber y arte generativo

El paradigma generativoy la tecnología

Lección

4

Libro GENERATIVO-plotter.indb 51Libro GENERATIVO-plotter.indb 51 13/01/2016 12:05:4713/01/2016 12:05:47

Page 52: Libro GENERATIVO-plotter

52 Umberto Roncoroni

Entonces, es posible hacer arte generativo —y esta es una idea que compar-ten prácticamente todos los especialistas— sin ningún tipo de tecnología. Pero las tecnologías de la información, gracias a las simulaciones, a la interactivi-dad, al efi ciente manejo de la información y a la velocidad, permiten el mejor desarrollo de los sistemas generativos y ofrecen muchas ventajas a la investi-gación y a la experimentación correspondiente.

Si bien es cierto que las herramientas digitales presentan algunas limitacio-nes que pueden afectar la calidad generativa y emergente de un proceso artís-tico tecnológico, estas limitaciones se pueden superar conociendo sus razones y mediante una correcta metodología de trabajo, que intentaré explicar en esta lección. La utilidad de esta lectura crítica de la tecnología, además, benefi ciará la investigación y la solidez de los conceptos que subyacen a todo proyecto artístico, no solamente generativo.

Puesto que los procesos tecnológicos en sí serán detallados en los tutoria-les, aquí se mostrarán precisamente algunos aspectos de lo digital que pasan desapercibidos y los más importantes aportes para el cuestionamiento de la tecnología: la crítica heideggeriana a la tecnología moderna, la teoría de la caja negra de Flusser y la teoría del simulacro de Baudrillard.

Al terminar la lectura, el lector será capaz de:• Comprender los principales conceptos tecnológicos del arte generativo.• Comprender los límites de la tecnología con relación al arte y al diseño.• Explicar, justifi car y sustentar tecnológicamente su proceso generativo.• Analizar, contextualizar y comparar los procesos generativos en térmi-

nos tecnológicos.• Relacionar la sustentación teórica con argumentos tecnológicos.

4.1 ¿QUÉ SON LAS TECNOLOGÍAS INFORMÁTICAS?

El arte y el diseño generativo se basan esencialmente en las TIC (software, in-terfaces, computadoras, redes, etcétera), tecnologías complejas y sistemas que incluyen diferentes aspectos, capas y procesos. En síntesis: las computadoras no son máquinas con un comportamiento neutral.

En primer lugar, las TIC son lenguajes: operan a base de códigos escritos y se comunican entre ellas, y entre ellas y los usuarios, mediante software e interfaces, los cuales, como todos los lenguajes, infl uyen en la percepción y en la lectura de la realidad. En segundo lugar, las TIC manejan conocimientos; por lo tanto, son extensiones del cerebro y de la esfera cognitiva, con las ven-tajas y problemas que esto comporta. En tercer lugar, las TIC son inteligentes, aunque en el solo sentido de que operan a base de algoritmos y silogismos; en

Libro GENERATIVO-plotter.indb 52Libro GENERATIVO-plotter.indb 52 13/01/2016 12:05:4813/01/2016 12:05:48

Page 53: Libro GENERATIVO-plotter

Manual de diseño generativo 53

todo caso, es una inteligencia ajena a aquella del usuario2. En cuarto lugar, a pesar de lo dicho anteriormente, las TIC son máquinas y exhiben en el fondo comportamientos rígidos. En quinto lugar, las TIC son opacas, es decir, no muestran sus procesos subyacentes, con lo cual parecen obra de magia, lo que infl uye en la fe y falta de crítica que el usuario tiene frente a ellas.

Para los artistas, todo esto implica el riesgo de caer en el efecto especial y en la fantasmagoría, de perder la sustancia, el concepto y la libertad de lo di-verso y divergente. Por su parte, el investigador, el docente o el estudiante se exponen al peligro de recorrer un camino que lleva a una suerte de adicción técnica e intelectual sin salida.

4.2 LA COMPLEJIDAD Y LA COMPUTACIÓN

Aparte de estos problemas de fondo de las tecnologías de la información en general, se encuentran unas cuestiones puntuales que se refi eren a los límites de la computación con respecto a las exigencias específi cas del arte generativo.

4.2.1 Complicado y complejo

Los procesos generativos tecnológicos (como, por ejemplo, los autómatas ce-lulares) son sufi cientemente complicados como para que no se puedan prever sus resultados, pero no son complejos, pues son sistemas deterministas3 cuyo resultado es siempre el mismo, aunque a primera vista no sea predecible.

Lo complejo incluye algo espontáneo y emergente que un programa para computadora no puede lograr, salvo que se considere la interacción con un usuario humano o con elementos naturales (estos procesos son realmente vi-vos, complejos e impredecibles), vía physical computing.

4.2.2 Emergencia

Lo mismo puede decirse con respecto a las cualidades emergentes de los pro-cesos generativos computarizados. Según Ray Kurzweil (2005), los futuros sis-temas informáticos masivamente paralelos podrían ser capaces de producir fenómenos emergentes. Solo que la emergencia es una labor original de los

2 Toda máquina presenta este aspecto, pero las TIC lo hacen en una forma tan nota-ble que se genera un problema desconocido a las tecnologías tradicionales. Pues la interactividad, supuestamente, ofrece al usuario libertad operativa, que en realidad no existe. Si el lector quisiera profundizar en el problema, puede revisar mi trabajoLa forma emergente. Arte y educación en el medio digital.

3 Es decir, son mecanismos que, con un mismo conjunto de datos, producen siempre resultados iguales. Esto entra en confl icto con el principio generativo, que es creativo.

Libro GENERATIVO-plotter.indb 53Libro GENERATIVO-plotter.indb 53 13/01/2016 12:05:4813/01/2016 12:05:48

Page 54: Libro GENERATIVO-plotter

54 Umberto Roncoroni

elementos de un sistema complejo; en cambio, en las simulaciones informáti-cas el estímulo creativo viene desde afuera, no parte de la máquina, esto es, no es espontáneo.

4.2.3 Caos y azar

También los comportamientos caóticos y el azar son dinámicas que no se pue-den reproducir en una computadora, pues los procesos computacionales son deterministas, lineales, corren como un tren siguiendo sus binarios. Los siste-mas informáticos logran procesos aparentemente caóticos, pero este resultado se basa en trucos que comprometen la autenticidad del proceso4.

4.2.4 Continuo y discreto

Por último, en los procesos computarizados los cálculos son discretos, esto es, entre un intervalo y otro no hay, por así decirlo, espacio. La realidad virtual discreta tiene menos detalles que la realidad real, es más simple. Esto cuestio-na precisamente el concepto de complejidad, que es continuo, no salta, sino que se transforma paso a paso.

La verdad de las simulaciones digitales es, entonces, bastante relativa: a lar-go plazo produce uniformidad en el diseño, a pesar de que aparentemente el rango de las variables sea muy amplio. Lo digital es discreto también en las opciones que presenta al usuario. Las funciones disponibles tienen un espectro operativo reducido con respecto al proceso analógico del cual son analogías.

4 Como bien saben los programadores que trabajan con aplicaciones multithread. El cru-ce y la inconsistencia de las informaciones que dichos sistemas provocan hace que su

Valores verdes continuos y valores rojos discretos Los resultados de los dados son discretos.

Frec

uenc

ia

Discreto

Continuo

Tiempo

Libro GENERATIVO-plotter.indb 54Libro GENERATIVO-plotter.indb 54 13/01/2016 12:05:4813/01/2016 12:05:48

Page 55: Libro GENERATIVO-plotter

Manual de diseño generativo 55

4.3 EL CUESTIONAMIENTO FILOSÓFICO A LA TECNOLOGÍA

La relación con la complejidad revela los problemas estructurales de la tecno-logía, problemas que se complican ulteriormente cuando se los examina desde el punto de vista educativo, artístico y fi losófi co. Y estas estructuras resul-tan aún más críticas en el caso de las herramientas digitales, que son medios, lenguajes y conocimientos que se propagan globalmente como ninguna otra tecnología analógica.

4.3.1 La crítica a la tecnología de Heidegger

La crítica de Heidegger (1977) se puede sintetizar diciendo que ciencia y tecno-logía consideran a la naturaleza (incluyendo al ser humano) no como un valor en sí, sino como un instrumento en vista de algo. El problema de la tecnolo-gía moderna es la instrumentalización del mundo y su reducción a recurso, a combustible, a commodity. Con este hecho se modifi ca el modo de conocer y de crear, pues los seres humanos y sus necesidades creativas se convierten en aparatos de la tecnología. Ahora bien, para Heidegger, el verdadero problema tecnológico está fuera de la tecnología y de la ciencia, y consiste en un modo práctico y económico de ver la realidad dominado por el afán de dominio, que ha desplazado el respeto y el cuidado de lo que es bueno y verdadero5.

Heidegger encuentra en el concepto griego de techné los fundamentos de una tecnología más libre y humana. Interpreta el antiguo término griego como

comportamiento se vuelva muy fácilmente caótico. Pero esto es producto del error, no de la autopoiesis. En último análisis se podría predecir, solo que el número de com-binaciones posibles vuelve este análisis no práctico. Pero este es un límite técnico, no constituye un principio creador.

5 Con esto no se quiere decir que se debe aceptar todo lo que dice Heidegger. Algunos fi lósofos, como Bunge y Quintanilla, niegan el aspecto ontológico de la tecnología; en efecto, según la perspectiva de Heidegger, no habría diferencia entre la bomba atómica y un aparato para tomar radiografías, mientras que hay una cuestión de la tecnología en sí. Parte del problema está, efectivamente, dentro de la tecnología y tienesentido preguntarse si esta es buena o mala, aunque Heidegger diga que es un error. Pero esto no quita verdad a su discurso y es precisamente el arte el que lo demuestra: los artistas diferencian entre técnicas o tecnologías buenas o malas mediante argu-mentos implícitamente heideggerianos. Por otro lado, la idea de sistema muestra lo que los fi lósofos de la tecnología como Bunge y Quintanilla deniegan, esto es, la exis-tencia de un télos propio de lo tecnológico. El concepto de sistema (esta sería la diferen-cia entre técnica y tecnología moderna según el mismo Quintanilla, véase Filosofía de la tecnología) se funda sobre la interacción entre elementos; presupone, entonces, una tecnología de la tecnología. Es aquí que se revela el “algo más” que tiene el conjunto de técnicas que caracteriza a la tecnología moderna con respecto a cada técnica tradi-cional que es particular. En lo digital, este aspecto sistémico es muy evidente. Sugiero que el lector revise también las ideas de Spengler en Man and Technics.

Libro GENERATIVO-plotter.indb 55Libro GENERATIVO-plotter.indb 55 13/01/2016 12:05:4913/01/2016 12:05:49

Page 56: Libro GENERATIVO-plotter

56 Umberto Roncoroni

una combinación de creatividad, técnica y conocimiento, entonces en relación con la verdad. La techné, según Heidegger, es una forma y una técnica que, al hacer cosas nuevas, revela la verdad escondida de la realidad.

La techné apoya y favorece el arte generativo precisamente por esta relación con la creatividad y el conocimiento; si las tecnologías digitales se interpre-tan en relación con el constructivismo, la creatividad y el saber, se podrían superar sus limitaciones. Aquí, para los artistas generativos, hay un fecundo campo de estudio y experimentación.

4.3.2 Flusser y la metáfora de la caja negra

La crítica de Flusser (2007) aborda el problema del saber y de las capas del sistema tecnológico. Un aparato tecnológico es una caja negra (black box), en cuanto todo el conjunto de operaciones, saberes e ingeniería embebido en él no aparece explícitamente al usuario. Flusser dice (hablando de la fotografía, pero el discurso se aplica perfectamente a la informática) que el fotógrafo no se relaciona con la realidad, sino con la black box de la máquina, por lo que queda atrapado en el misterio del aparato y se olvida de la realidad.

El sentido de la black box comprende todo lo que está antes (desde la fabri-cación de las películas) y después (por ejemplo, el diseño de las revistas) de la toma fotográfi ca. Esta perspectiva sistémica de la tecnología vale aún más para las TIC, donde es fácil confundir lo que hace la máquina con el verdadero conocimiento: aprender a usar una máquina no es poseer sus conocimientos ni su ingeniería.

4.3.3 El simulacro

La crítica a la tecnología de Baudrillard (1996) aborda el problema de las si-mulaciones, de la virtualidad y de los medios de comunicación: el contenido de los medios no es la realidad, sino la imagen de la realidad hecha por otros medios. Sin embargo, la fuerza y el realismo de los medios son tan fuertes que olvidamos que son solo representaciones de lo real. Así, la realidad poco a poco viene a ser suplantada por los simulacros de la realidad.

Este es el riesgo de las simulaciones (vida artifi cial, inteligencia artifi cial, etcétera) que se usan en los algoritmos generativos: el proceso generativo, si se relaciona con la simulación de la realidad en lugar de la realidad, produce solamente un mundo autorreferencial a medida de la tecnología. Por eso se recomienda a docentes, artistas y estudiantes abordar las herramientas infor-máticas con mucho cuidado crítico y metodológico.

Libro GENERATIVO-plotter.indb 56Libro GENERATIVO-plotter.indb 56 13/01/2016 12:05:4913/01/2016 12:05:49

Page 57: Libro GENERATIVO-plotter

Manual de diseño generativo 57

4.4 LA TECNOLOGÍA, EL SABER Y EL ARTE GENERATIVO

Los problemas tecnológicos, en suma, giran alrededor de la gestión del cono-cimiento. El artista generativo es realmente creativo y el espectador participa realmente de la experiencia generativa, solo si comparte el mismo conocimien-to del artista y del aparato tecnológico que está utilizando. En otras palabras, el espectador debe estar a la par con el artista, tener las mismas herramientas y los mismos conocimientos, para no convertirse en una pieza pasiva y peri-férica del sistema.

Es claro aquí el mensaje de la caja negra de Flusser: el problema que se debe resolver es la opacidad de la tecnología y de las interfaces. La obra de arte generativa “funciona”, es verdadera y epistémicamente justa cuando pre-senta transparencia y distribución equitativa del saber y de las herramientas. La transparencia —al fi n y al cabo, la función hermenéutica y mayéutica—es la verdadera labor del artista generativo, el valor agregado que ofrece al espectador.

Libro GENERATIVO-plotter.indb 57Libro GENERATIVO-plotter.indb 57 13/01/2016 12:05:4913/01/2016 12:05:49

Page 58: Libro GENERATIVO-plotter

Libro GENERATIVO-plotter.indb 58Libro GENERATIVO-plotter.indb 58 13/01/2016 12:05:4913/01/2016 12:05:49

Page 59: Libro GENERATIVO-plotter

Manual de diseño generativo 59

El arte y el diseño generativo, en estos últimos años, han salido del pequeño círculo de los especialistas del arte digital para difundirse entre diseñadores, arquitectos y músicos. Sin embargo, desde el punto de vista de los resultados prácticos, los productos del arte generativo son todavía difíciles de encontrar, aunque mucho más se puede esperar de las técnicas de fabricación digital. Y hay quien advierte que el interés por los procesos generativos podría estancar-se muy rápidamente porque, al compartir las mismas herramientas software, cualquiera puede producir este tipo de arte e inundar el mercado de formas raras, lo que causará uniformidad y monotonía creativa1.

Entonces, las aplicaciones más razonables del diseño generativo están, se-gún mi forma de ver, en el desarrollo de herramientas de investigación y de técnicas heurísticas, en primer lugar, y en trabajar desde el punto de vista pedagógico, en segundo lugar. En este sentido, lo generativo se matiza muy bien con el constructivismo y sus métodos derivados, como el método Reggio Emilia y el método Munari.

Estas notas pretenden dar algunas indicaciones a los docentes interesados en las aplicaciones pedagógicas del arte, pero también a los artistas y estu-diantes. Se presentan elementos de refl exión sobre el proceso de autoapren-dizaje que caracteriza al mundo de las ciencias de la computación, del arte generativo y de la cibercultura en general. También se brindan algunos tips para el proceso de enseñanza-aprendizaje de los peculiares requerimientos de la metodología generativa, como la programación de computadoras.

Al terminar la lectura, el lector será capaz de:• Comprender y aprovechar las fortalezas educativas del proceso

generativo.• Mejorar el autoaprendizaje.• Explicar, justifi car y sustentar metodológicamente su proceso generativo.

1 Esto es lo que está pasando, por ejemplo, con Rhino y Grasshopper o las teselacio-nes de Voronoi: todos hacen variantes más o menos complicadas de Zaha Hadid oFrank Gehry.

Arte y educación • El arte generativo y el constructivismo • El arte generativo, la tecnología

y la pedagogía • Cómo enseñar y aprender el arte generativo • Consejos para enseñar y aprender

a programar

Aprender y enseñarel arte generativo

Lección

5

Libro GENERATIVO-plotter.indb 59Libro GENERATIVO-plotter.indb 59 13/01/2016 12:05:4913/01/2016 12:05:49

Page 60: Libro GENERATIVO-plotter

60 Umberto Roncoroni

• Analizar, contextualizar y comparar su propuesta teórica dentro de un contexto pedagógico.

• Mejorar la interacción con el usuario durante el desarrollo de software generativo.

• Mejorar el uso pedagógico de las TIC.

5.1 ARTE Y EDUCACIÓN

La relación entre arte y educación comienza con Platón, se consolida en el romanticismo (por ejemplo, con el concepto goethiano de Bildung ‘formación integral’) y hoy ha retomado importancia gracias a la pedagogía constructi-vista. Con las tecnologías digitales e internet, la relación entre arte y educa-ción se enriquece ulteriormente, pues las TIC permiten crear obras de arte de modo abierto, distribuido e interactivo, con lo cual la acción educativa viene a ser parte de la creación artística (la poiesis), ciertamente algo más que un efecto moralizador conseguido a posteriori sobre el espectador2. Comparando la naturaleza del arte y de las tecnologías de la información digitales, se nota que estas integran los procesos de comunicación, las herramientas creativas y productivas, los sistemas para el procesamiento de conocimientos e informa-ciones con la interactividad y la multimedialidad.

El uso de herramientas tan complejas, que empieza a difundirse en la prác-tica educativa, no requiere, como a veces ingenuamente se cree, alguna habi-lidad adicional (como el manejo de algún tipo de hardware y de software), sino, por un lado, una actitud crítica permanente y, por el otro, el salto desde una fi losofía del consumo a una fi losofía de la investigación y de la creatividad, por lo tanto, del arte3.

5.1.1 Arte, educación y brechas tecnológicas

Ahora bien, la carencia de recursos informáticos —el digital divide— se consi-dera un indicador importante de subdesarrollo4. La solución del problema del

2 Se trata de una posibilidad que otras formas de arte constitutivamente abiertas y so-ciales, como la arquitectura o el teatro (pienso en ciertas obras de Brecht), no pueden hacer. Esta me parece precisamente la trascendencia del arte digital.

3 Desde este punto de vista, ha sido Heidegger quien nos ha enseñado que el arte, gra-cias a su libertad y creatividad, es la sola actividad humana que puede actuar como espíritu crítico de lo tecnológico, por lo cual se le asigna también la responsabilidad de generar sistemas y procesos tecnológicos transparentes, respetuosos de valores pro-piamente humanos como el bien y la verdad.

4 ¿Pero sabemos lo que esto significa exactamente? En primer lugar, el concepto de di-gital divide es cuestionable porque se fundamenta sobre la confusión de los roles del

Libro GENERATIVO-plotter.indb 60Libro GENERATIVO-plotter.indb 60 13/01/2016 12:05:4913/01/2016 12:05:49

Page 61: Libro GENERATIVO-plotter

Manual de diseño generativo 61

digital divide consiste en desarrollar investigación original y procesos tecnoló-gicos con identidad propia; contrariamente a lo que se podría pensar, la copia y la piratería, lejos de ser una suerte de revancha del pobre frente al rico, son solo un modo menos explícito de aceptar la neocolonización. En este sentido, el arte es política y educativamente importante, porque el proceso artístico correctamente entendido (esto es, aquel que no es afi rmación de algún ego sobredimensionado o está motivado por intereses de mercado o por visibili-dad mediática) implica desarrollo tecnológico autónomo y nuevas formas de educar y aprender5.

Naturalmente, este entorno sociocultural necesitaría una nueva clase de estética y una nueva clase de pedagogía. Pero, en la actualidad, ni siquiera se sabe exactamente cuál es la verdadera naturaleza educativa y creativa de las herramientas digitales, y si no escuchamos las sirenas de los intereses comerciales que predominan en la educación tecnológica, hay pocas eviden-cias de los benefi cios educativos de las nuevas tecnologías, pero muchísimas voces críticas.

Desde aquí surge la importancia del arte y del software generativo. Según este nuevo paradigma, la práctica del arte y la naturaleza de la obra de arte se convierten en sistemas educativos complejos, compuestos por diferentes etapas, procesos y artefactos integrados entre sí: investigación, experimen-tación tecnológica, multimedialidad, interactividad y procesos distribuidos, comunicación, diseño y creatividad, hasta llegar a la fabricación digital o al prototipado rápido.

hardware y del software, que es un problema de difícil solución, porque el usuario no se da cuenta de su existencia: por un lado, en cuanto extensión del pensamiento, de la in-teligencia y del conocimiento, el software infl uye en los hábitos y procesos mentales de los usuarios, que entonces están atrapados dentro un modelo de uso estructuralmente poco crítico; por el otro, no existe “el software”, sino una galaxia de software diferentes, con miles de problemas diversos que nacen de sus contextos epistémicos y operativos particulares. Gayatri Spivak, una conocida estudiosa y crítica de los procesos neoco-loniales, decía que no se puede superar la inferioridad tecnológica porque se pretende hacerlo a través de un modelo lingüístico (y tecnológico) que no es el suyo, en otras palabras, mediante las mismas herramientas que han generado su exclusión.

5 Los países emergentes, por sus características naturales, sociales y culturales, tienen el privilegio de desarrollar una nueva clase de tecnología, reinventando algunos as-pectos que en sociedades y culturas más avanzadas ya están defi nitivamente “cris-talizados”. Lamentablemente, la mayoría de nuestras instituciones educativas está hundiendo a los estudiantes en una existencia de consumidores y ejecutores pasivos. En suma, habría que romper el mecanismo de la educación tecnológica enfocada en las aplicaciones para investigar el dominio de la poiesis, de la calidad y de la forma, elementos clave del arte generativo.

Libro GENERATIVO-plotter.indb 61Libro GENERATIVO-plotter.indb 61 13/01/2016 12:05:4913/01/2016 12:05:49

Page 62: Libro GENERATIVO-plotter

62 Umberto Roncoroni

5.2 EL ARTE GENERATIVO Y EL CONSTRUCTIVISMO

Si el sentido pedagógico del arte es bastante evidente, cabe detallar cuáles son las ventajas específi cas del arte generativo, tomando en cuenta que no es solamente un estilo o una corriente entre las demás, sino un re-pensamiento del arte en general y, por lo tanto, una nueva estética (aunque en construcción y en debate).

5.2.1 El arte generativo y las pedagogías constructivistas

La pedagogía constructivista se caracteriza por el énfasis en el aprendizaje au-tónomo y participativo, donde el alumno es el centro y el estratega del proceso. Desde este punto de vista, el aprendizaje debe estar vinculado a la creatividad y las emociones de quien aprende (aprendizaje signifi cativo) y, por lo tanto, se convierte en autoaprendizaje, donde el docente es guía, amigo y asesor. Pero aquí la tecnología es cuestionada por su rigidez, impersonalidad y poca crea-tividad; por eso, teóricos como Seymour Papert (1990) se han esforzado por proponer modelos de constructivismo tecnológico alternativo.

Los críticos del constructivismo, además, dicen que es utópico, pues supo-ne la existencia de un estudiante ideal que es muy raro encontrar en la reali-dad, y que resulta ser un método muy complejo no solo para quien aprende (involucra a la familia, por ejemplo, como hace el método Reggio Emilia). Al respecto, el uso generativo de la tecnología, gracias a las redes y a los procesos distribuidos, favorece la solución a estos problemas, ayudando en el trabajo grupal y abriendo el proceso de aprendizaje a dimensiones más globales.

5.2.2 El método Reggio Emilia

El método Reggio Emilia es un método constructivista que enfatiza el poten-cial intelectual, emocional, social y moral del niño de modo integral6. Carac-terística de este método es el énfasis en el ambiente (el principal vehículoeducativo compromete al menor en proyectos a largo plazo que se llevan a cabo en un ambiente agradable, saludable y grato). Los profesores escuchan a los niños en la relación con el contexto social y familiar, que se encuentra involucrado en el proceso de aprendizaje.

El aporte del método Reggio Emilia es el énfasis en la dimensión estética. Según Malaguzzi (1971), que desarrolló esta teoría educativa, el arte consiste en ver cómo elementos que aparentemente están aislados se ponen en rela-ción, lo que es contrario al tipo de educación y de arte centrado en el aura del artista genio, que se transmite en las instituciones educativas7. Lo importante

6 Véase el blog Educación Alternativa en htt p://educacionalternativa.edublogs.org/articulos/metodologia-reggio-emilia/

7 Sin darse cuenta de esto, hasta cuando se cree hacer todo lo contrario.

Libro GENERATIVO-plotter.indb 62Libro GENERATIVO-plotter.indb 62 13/01/2016 12:05:4913/01/2016 12:05:49

Page 63: Libro GENERATIVO-plotter

Manual de diseño generativo 63

es que los docentes salgan de los esquemas rutinarios y acomodados en los que están, para establecer procesos creativos que tienen que ver con las posibi-lidades de trasgresión de los acontecimientos que normalmente han sido con-siderados desde un solo punto de vista. En efecto, cuando Malaguzzi habla de “Los cien lenguajes del niño”, no solo se refi ere al lenguaje plástico, musical y matemático de manera aislada, sino a la integración y la interrelación de estos lenguajes. Y el aprendizaje constituye un proceso autoconstructivo, cuya for-taleza es el aspecto relacional y social.

5.2.3 El método Munari

Bruno Munari fue un diseñador y artista italiano contemporáneo reconocido a nivel internacional. Entre sus aportes destaca la metodología de enseñanza del arte y de la creatividad para los niños denominada “Giocare con l’arte”. El método, desde el punto de vista teórico, no constituye una gran novedad, en cuanto reanuda principios de la Bauhaus, del constructivismo de LevVigotsky y Jean Piaget, del método Montessori y del método Reggio Emilia.

Su originalidad se encuentra en el énfasis en la creatividad, que Munari (1997) ha explorado de modo metódico, anticonformista y de inspiración zen, sobre todo por lo que se refi ere a la relación del diseño con la naturaleza, la ciencia y la tecnología, lo que ha mostrado un modo sugerente de vincular dominios considerados muy diversos8. En efecto, el concepto de arte de Mu-nari se basa en la observación profunda de la naturaleza y en la simplicidad e inmediatez de su implementación en el diseño: observar con atención, meditar profundamente, ejecutar en un instante.

Conceptos como la inspiración, el talento y el genio son puestos en tela de juicio por Munari, quien valorizó en la creación artística la fantasía que todos tienen, la observación de la naturaleza —que todos pueden hacer— y, fi nalmente, la relación con los problemas prácticos de la vida diaria a nivel personal o social.

5.2.4 Propiedades constructivistas del paradigma generativo

De estos casos, se puede sacar un esquema del potencial constructivista del arte generativo.

• En el método Reggio Emilia, el taller es un espacio vital para asegurar la atención al arte, a la investigación visual y a la estética. El contexto interdisciplinario del taller caracteriza también el proyecto generativo: el paradigma generativo favorece la formación integral científi ca y huma-nística; al mismo tiempo, acostumbra al uso de herramientas inter y mul-timediales; fortalece también la relación pedagógica con la ciencia y la

8 Véase, por ejemplo, las obras de Bruno Munari: Fantasía, Artista e designer, y Da cosa nasce cosa, entre otras.

Libro GENERATIVO-plotter.indb 63Libro GENERATIVO-plotter.indb 63 13/01/2016 12:05:4913/01/2016 12:05:49

Page 64: Libro GENERATIVO-plotter

64 Umberto Roncoroni

tecnología, la experimentación y la investigación, sin negar la creatividad individual y regresando a procesos estéticos más objetivos y concretos.

• El énfasis en la fi losofía abierta del proyecto educativo Reggio Emilia es especular a la del proceso generativo; en ambos casos, existe la posibili-dad de concebir una pluralidad abrumadora de alternativas.

• En todos los casos, la creatividad se considera una facultad desarrollable y de aplicación práctica, que progresa con el saber y el entrenamiento.

• El entorno de aprendizaje, de creación y producción, utiliza elementos que facilitan estas tareas (la importancia de las interfaces reales o vir-tuales), no solo porque se “sienten bien”, sino porque son útiles.

• El constructivismo y el arte generativo favorecen tanto el trabajo grupal y la interacción cultural como el desarrollo tecnológico individual, lo que es muy importante en lo que se refi ere a los problemas tecnológi-cos y a la identidad cultural, por el énfasis en la distribución del cono-cimiento y en la transparencia de las herramientas. El arte generativo puede ser una excelente herramienta para superar la brecha digital sin caer en la uniformidad de un único modelo.

En conclusión, el arte generativo favorece la modernización educativa, pues se adapta muy bien a las metodologías constructivistas y al desarrollo por proyectos, e integra provechosamente varias tecnologías de modo creati-vo. Permite evaluar el resultado educativo con mayor objetividad, exigiendo así mayores capacidades de análisis y crítica.

5.3 EL ARTE GENERATIVO, LA TECNOLOGÍA Y LA PEDAGOGÍA

Un problema importante del diseño generativo, tanto estética como pedagógi-camente, es la relación con la tecnología informática9. Como se vio en la lección anterior, se trata más bien de una serie de desencuentros. Por un lado, las TIC permiten desarrollar el potencial más completo del concepto generativo y, por el otro, restringen el potencial creativo dentro de los límites de la computación.

5.3.1 Ventajas creativas y pedagógicas de las tecnologías de la información

• Permiten modelar diferentes procesos en paralelo e interactivamente; la multimedialidad es un ejemplo.

• Hacen posible el uso práctico de la información y del conocimiento, por ejemplo, la utilización de datos y bases de datos dentro de un proceso generativo.

9 Como ya se dijo, se puede hacer diseño generativo con procesos naturales y analógi-cos. Es posible entender así ciertas obras del land art, por ejemplo, o la arquitectura del paisaje. También los artistas del action painting o del arte informal pueden contener aspectos generativos, aunque no explicitados. Quizás el manual de diseño generativo natural es, en este sentido, El tiempo, gran escultor de Marguerite Yourcenar.

Libro GENERATIVO-plotter.indb 64Libro GENERATIVO-plotter.indb 64 13/01/2016 12:05:4913/01/2016 12:05:49

Page 65: Libro GENERATIVO-plotter

Manual de diseño generativo 65

• Las herramientas digitales provocan que los recursos se distribuyan a través de las redes y la interactividad, que hace del diseño generativo un proceso social.

• Posibilitan la parametrización, que signifi ca poder personalizar los pro-cesos de acuerdo con las preferencias de cada uno.

• Permiten capitalizar los procesos para que se puedan repetir, editar y mejorar.

• Aceleran los procesos, ya que las simulaciones se pueden hacer, con una moderna PC, prácticamente y en la mayoría de los casos en tiempo real.

• La informática se ha extendido a máquinas de control numérico, sis-temas de rapid prototyping y contour crafting, que permiten la salida al mundo real de las aplicaciones prácticas de los diseños generativos, por cuanto complejos.

• La tecnología informática hace posible que el proceso generativo se pue-da enseñar; por lo tanto, impulsa a que cada uno construya su tecnología.

5.3.2 El arte generativo y los límites de la computación

Sin las tecnologías de la información, es difícil cumplir con muchas de las demandas del arte generativo. Sin embargo, la tecnología informática tiene también sus desventajas.

• Como ya se sabe, todo sistema algorítmico es determinista, y si no es oportunamente diseñado, puede quitar oportunidades de cambio y creatividad.

• La tecnología requiere entrenamiento específi co, lo que muchas veces se sobrepone a los objetivos educativos primarios. Sin embargo, el entre-namiento tecnológico puede ser aprovechado interdisciplinariamente, pues es posible utilizar los mismos conocimientos en matemática, física, química, etcétera. Lo importante es, en el proceso de aprendizaje, concen-trarse en los objetivos y no en el software que se usa para conseguirlos.

• Los entornos de los paquetes comerciales no son transparentes y atra-pan al usuario dentro de su contexto cerrado. El problema se soluciona en forma ideal si es que se investigan y se desarrollan herramientas per-sonalizadas, lo que es posible con el uso de herramientas de programa-ción más amigables y creativas, como Logo, Java, Processing y MaxSP, entre otros. Pedagógicamente, hay que hacer énfasis en el aspecto epis-temológico del diseño generativo, esto es, evidenciar sus fundamentos científi cos y tecnológicos más que las recetas prácticas.

5.4 ¿CÓMO ENSEÑAR Y APRENDER EL ARTE GENERATIVO?

En este y en el siguiente apartado, se sintetizan las ideas anteriores, apenas expuestas, presentando unas sugerencias pedagógicas para la enseñanza-

Libro GENERATIVO-plotter.indb 65Libro GENERATIVO-plotter.indb 65 13/01/2016 12:05:5013/01/2016 12:05:50

Page 66: Libro GENERATIVO-plotter

66 Umberto Roncoroni

aprendizaje del arte generativo y de las tecnologías de la información. Puesto que se trata de campos nuevos que todavía no cuentan con todos los trabajos teóricos necesarios, estas sugerencias se basan, en la mayoría de los casos, en la experiencia directa. Dejo a cada docente y estudiante desarrollar su receta personalizada a partir de estas sugerencias generales.

5.4.1 ¿Cómo enseñar el arte generativo?

1. Todo proceso generativo debe comenzar con un análisis en las ciencias naturales y ser comprobado por procesos y materiales analógicos. Asi-mismo, es necesario que sea visualizado con el dibujo a mano alzada. Esto permite defi nir intuitivamente los aspectos procedurales y algorít-micos sin la interferencia de la máquina.

2. El segundo paso es el modelamiento algorítmico y matemático. Consiste en plantear un modelo abstracto del proceso estudiado, es decir, esbozar la secuencia de operaciones y las variables signifi cativas.

3. Se desarrolla el algoritmo en seudocódigo o en lenguaje natural.4. Se simula el algoritmo a mano alzada.5. Se lo implementa en el lenguaje deseado.

Desde el punto de vista metodológico:• Importancia del punto de vista interdisciplinario• Énfasis en la pedagogía por proyectos o por competencias• Énfasis en el trabajo grupal• La tecnología es la última etapa• Creatividad tecnológica y desarrollo de la tecnología propietaria

5.4.2 Tareas y ejercicios para aprender

Hay lecturas esenciales que se debería emprender antes de comenzar y refe-rencias teórico-prácticas en la historia del arte que es oportuno conocer, pues el paradigma generativo es heredero de muchas teorías y vanguardias artísti-cas: el Tratado de la pintura de Leonardo da Vinci, los diseños de Antoni Gaudí para la Sagrada Familia, la Bauhaus, el futurismo10, el surrealismo, el dadaís-mo, la obra de Sol LeWitt , el land art, entre otros.

• Técnicas analógicas: realizar cartas marmorizadas de Florencia (se en-cuentran tutoriales en la web), técnicas decorativas de brocha gorda.

• Explorar aparatos analógicos para la pintura automática (por ejemplo, el dripping de Pollock puede ser considerado un método generativo).

10 Por ejemplo, los fotógrafos Bragaglia, la aeropitt ura de Gerardo Dott ori.

Libro GENERATIVO-plotter.indb 66Libro GENERATIVO-plotter.indb 66 13/01/2016 12:05:5013/01/2016 12:05:50

Page 67: Libro GENERATIVO-plotter

Manual de diseño generativo 67

Para profundizar

Importancia del dibujo a mano alzada y del natural

El dibujo como instrumento de observación. Antes hay que saber qué observar y qué

dibujar. Y entender que la mímesis no es imitación trivial si es fruto de la comprensión

del proceso generativo. Por otro lado, el dibujo a mano alzada ayuda a previsualizar el

desarrollo de un proceso, antes de poner mano al código. En programación, el desarrollo

gráfi co a mano ayuda a descubrir inconsistencias y errores. La coordinación bien entre-

nada entre mente y mano es mucho más efi ciente que cualquier programa informático.

Por ejemplo, construir un árbol con hojas o elementos de cartón permite a los niños (pero

no solo a ellos) estar involucrados y sumergidos en la actividad de modo completo, pues

el cambio de dimensión compromete al cuerpo. Y, luego, según Munari (como se citó en

Nocchi Croccolo, 2005):

La destrucción de la obra colectiva es necesaria para no tener que imitar modelos, para

evitar su museifi cación y lo que se podría defi nir como el divismo del autor, para enseñar

que no es el objeto lo que hay que conservar, sino que el modo y el método proyectual

son la experiencia que se puede reinventar. (p. 19)

• Desarrollar los algoritmos a mano alzada: se puede experimentar con el diseño de texturas y patrones (por ejemplo, el arte árabe, la obrade Escher).

• Pasando a la máquina, comenzar por un algoritmo simple y aplicar va-riaciones y perturbaciones. Explorar los gráfi cos de funciones trigono-métricas estudiando sus variaciones y parametrización; es fácil y lleva a descubrimientos interesantes.

Bosquejos a lápiz y acuarela de Verónica Crousse

Libro GENERATIVO-plotter.indb 67Libro GENERATIVO-plotter.indb 67 13/01/2016 12:05:5013/01/2016 12:05:50

Page 68: Libro GENERATIVO-plotter

68 Umberto Roncoroni

5.5 CONSEJOS PARA ENSEÑAR Y APRENDER A PROGRAMAR

Los programas aplicativos resuelven el problema del aprendizaje del medio tecnológico mediante interfaces cada vez más amigables. Pero, como se ha visto en las lecciones anteriores, así no se aprende la tecnología, sino solo sus aplicaciones. La verdadera tecnología informática es la programación, la crea-ción de herramientas personalizadas. ¿Cómo facilitar este proceso, puesto que la programación se enseña fuera del contexto de las ingenierías sin el mismo tiempo ni los mismos prerrequisitos exigidos a los ingenieros? Aquí propongo otras sugerencias prácticas.

En general, se necesitan dos condiciones inevitables; primero, la programa-ción se tiene que aprender a través de un proceso de autoaprendizaje, porque los cambios tecnológicos obligan a una actualización permanente11; segundo, hay que armarse de mucha paciencia y aceptar una buena dosis de frustra-ción12. ¡Dicho esto, vamos adelante! En primer lugar, se expondrán dos meto-dologías alternativas al aprendizaje tecnológico tradicional, luego una serie de sugerencias basadas en la experiencia directa del autor.

5.5.1 The Hole in the Wall: enseñanza tecnológica generativa

El autoaprendizaje es el centro del método educativo denominado por el peda-gogo hindú Sugata Mitra (2007) como minimally invasive education, que signifi ca

11 Con lo cual no quiero decir que los cursos de programas no sean útiles, pero para estar al tanto de los avances uno debería gastar todo su sueldo en cursos de actualización...

12 Lo que es mucho menor si es que se trabaja en grupo.

Para profundizar

Heurística generativa

La heurística se puede defi nir como el arte, la técnica o el procedimiento práctico o infor-

mal para resolver problemas; alternativamente, se la defi ne como un conjunto de reglas

metodológicas (no necesariamente formalizadas) que sugieren o establecen cómo proce-

der y qué problemas evitar a la hora de generar soluciones y elaborar hipótesis. También

se considera que la capacidad heurística es un rasgo característico de los seres humanos,

que se puede describir como el arte y la ciencia del descubrimiento y de la invención o de

resolver problemas mediante la creatividad y el pensamiento lateral o divergente. La base

de la heurística está en las experiencias acumuladas en la resolución de problemas y la ob-

servación de cómo otros lo hacen. Consecuentemente, se dice que hay búsquedas ciegas,

búsquedas heurísticas (basadas en la experiencia) y búsquedas racionales.

Libro GENERATIVO-plotter.indb 68Libro GENERATIVO-plotter.indb 68 13/01/2016 12:05:5113/01/2016 12:05:51

Page 69: Libro GENERATIVO-plotter

Manual de diseño generativo 69

dejar que los niños aprendan sin interferencia de los adultos, jugando con su curiosidad natural y ayudándose mutuamente. El experimento llamado The Hole in the Wall comprobó la validez de estos conceptos. Mitra dejó una com-putadora conectada a internet en un slum de Nueva Deli y notó como los ni-ños, sin ayuda alguna, iban descubriendo las funciones de la computadora y el uso de internet. Una interesante anotación de Mitra es que es la escasez de equipos es buena para el aprendizaje, pues obliga a compartir y, por tanto, a socializar el proceso13. Para él, lo importante no es crear contenido educativo, sino liberar el acceso y las infraestructuras.

5.5.2 Peer to peer learning

Se trata de una metodología de aprendizaje donde el conocimiento y la expe-riencia se comparten entre los estudiantes. Esto puede suceder mediante los social networks o sistemas dedicados, como podría ser el e-learning. Esta meto-dología impulsa a:

• Distribuir la información a través de redes formales o informales.• Plantear un sistema de comunicación de doble vía.• Hacer que cada participante sea al mismo tiempo aprendiz y docente.• Ser fl exible en los cronogramas y en las modalidades de aplicación.• Integrar con facilidad a los aprendices menos expertos o menos hábiles.

5.5.3 Consejos para enseñar a programar

En esta sección se muestra una propuesta didáctica para el docente no espe-cialista que quiera introducir a sus alumnos a la programación. Sugerencias aparentemente banales, pero que en la mayoría de los casos no se aplican, y así el estudiante va fatalmente al encuentro con el fracaso.

1. Explicar solo los conceptos informáticos básicos; lo demás lo descubrirá el estudiante poco a poco a través de los casos prácticos.

2. Para esto, desarrollar ejercicios concretos y visualmente atractivos.3. Plantear y exigir al estudiante los documentos de las etapas del proceso

de programación: a. Defi nir objetivos y tener claros los resultados esperados.b. Diseñar el algoritmo a mano alzada.c. Hallar las variables y el rango de valores esperados.d. Desarrollar el algoritmo en seudocódigo o en lenguaje natural.e. Desarrollar a mano alzada indicando paso a paso los valores.

13 Nótese que esta es una estrategia de desarrollo de software conocida como extreme computing.

Libro GENERATIVO-plotter.indb 69Libro GENERATIVO-plotter.indb 69 13/01/2016 12:05:5113/01/2016 12:05:51

Page 70: Libro GENERATIVO-plotter

70 Umberto Roncoroni

f. Implementar el código:Experimentando y verifi cando línea por línea.Comenzando con constantes de acuerdo a mano alzada.Introduciendo una variable a la vez.Usando comentarios.Verifi cando la sintaxis.Salvando cada generación correcta del programa.

g. Debug (corrección)Verifi car sintaxis, ortografía, etcétera.Probar cada línea del código poniendo las demás en comentario.Imprimir el valor de cada variable una a la vez.

Estudio de la maqueta con MaxScript con diferentes algoritmos. Umberto Roncoroni, Facultad de Ingeniería y Arquitectura

de la USMP, 2010.

Dibujo a mano alzada de una maqueta del arquitecto barcelonés Carlos Ferrater

Libro GENERATIVO-plotter.indb 70Libro GENERATIVO-plotter.indb 70 13/01/2016 12:05:5113/01/2016 12:05:51

Page 71: Libro GENERATIVO-plotter

Manual de diseño generativo 71

5.5.4 Consejos para aprender a programar

Así como he dado sugerencias para el docente, me permito brindar unos con-sejos a los estudiantes. Antes que nada, deben recordar que autoaprendizaje no signifi ca que no se pueden consultar los manuales o tutoriales en internet, que son gratis...

• Hay que tener paciencia y, al comienzo, aprender algunos conceptos bá-sicos sin los cuales avanzar es penoso y se cometen demasiados errores. En la programación es peligroso saltarse las etapas.

• El secreto es la paciencia y la constancia, hacer y volver a hacer. • No molestarse con la computadora, ¡si un programa no corre, es siempre

culpa del programador!• Buscar ayuda de algún compañero más experto; el trabajo grupal es im-

portante, hay que aprovecharlo (paradigma extreme programming).• Estudiar los programas hechos por expertos.• Las aplicaciones gráfi cas son complicadas, por eso, es importaente repa-

sar o prepararse una base mínima de matemática, geometría y geome-tría analítica.

• Tener los programas en orden y oportunamente comentados, para po-der reutilizarlos y no volver a hacer tareas inútilmente.

¡No me queda más que augurar a todos un buen trabajo!

Libro GENERATIVO-plotter.indb 71Libro GENERATIVO-plotter.indb 71 13/01/2016 12:05:5113/01/2016 12:05:51

Page 72: Libro GENERATIVO-plotter

Libro GENERATIVO-plotter.indb 72Libro GENERATIVO-plotter.indb 72 13/01/2016 12:05:5113/01/2016 12:05:51

Page 73: Libro GENERATIVO-plotter

Parte 2

Libro GENERATIVO-plotter.indb 73Libro GENERATIVO-plotter.indb 73 13/01/2016 12:05:5113/01/2016 12:05:51

Page 74: Libro GENERATIVO-plotter

Libro GENERATIVO-plotter.indb 74Libro GENERATIVO-plotter.indb 74 13/01/2016 12:05:5213/01/2016 12:05:52

Page 75: Libro GENERATIVO-plotter

Manual de diseño generativo 75

Los teóricos y los artistas generativos afi rman que un proceso generativo se puede desarrollar y ejecutar con equipos y materiales muy diversos, incluso sin recurrir a una tecnología en especial. Sin embargo, las tecnologías de la in-formación ofrecen al arte generativo las herramientas más poderosas, fl exibles e interactivas; y la mejor herramienta de todas es el software y la programación.

En este tutorial, se presentan los conceptos básicos y generales (sin vincu-larse a un lenguaje específi co) de programación para aquellos lectores que for-man parte del creciente número de artistas o diseñadores que se encuentran en la necesidad de aprender a programar de modo informal y como autodi-dactas. Además, se ofrecen unos recetarios para resolver las tareas más comu-nes en el contexto generativo, como, por ejemplo, el ordenamiento de datos.

El objetivo principal de este tutorial es brindar al lector un conocimiento muy general, pero esencial, de la programación, con lo cual se pretende supe-rar las difi cultades iniciales que inhiben a los principiantes. Por esta razón, en los ejercicios, se explicará el código de manera accesible, considerando espe-cialmente las necesidades del principiante. Por otro lado, no hay que olvidar que en internet abundan los tutoriales dedicados a cada lenguaje o entorno de programación, así como comunidades de usuarios, blogs, etcétera, que propo-nen ayudas y sugerencias.

Al terminar este tutorial, el lector tendrá los conocimientos para:• Comenzar a programar con confi anza y optimismo.• Escoger el estilo tecnológico conforme a sus características.• Escribir, desde el comienzo, un código limpio y claro.• Moverse con agilidad entre diferentes entornos tecnológicos.• Desarrollar sin problemas los demás tutoriales del manual.

1.1 LA TECNOLOGÍA: CONCEPTOS GENERALES

En primer lugar, es necesario explicar las diferencias entre las tecnologías ana-lógicas y las digitales. Como ya se dijo, existen procesos generativos analógicos, basados en procesos naturales, químicos, físicos y mecánicos1. Estos principios

1 Por ejemplo, ciertos trabajos de artistas del land art, como Andy Goldsworthyo Richard Long.

La tecnología: conceptos generales • ¡Comenzamos a programar! • Paradigmas y lenguajes de pro-

gramación • Principales componentes de un lenguaje de programación • Elementos mínimos de

computer science

Los principios básicosde la programación

Tutorial básico

1

Libro GENERATIVO-plotter.indb 75Libro GENERATIVO-plotter.indb 75 13/01/2016 12:05:5213/01/2016 12:05:52

Page 76: Libro GENERATIVO-plotter

76 Umberto Roncoroni

naturales son importantes porque la tecnología digital depende de la analógica o es una simulación de esta. Sin embargo, lo interesante de lo digital es que se puede pensar como algo autónomo, que desarrolla sus propios principios2 en el mundo de los números y de la matemática, como es el caso de los fractales.

1.1.1 Software y hardware

En segundo lugar, es oportuno determinar el alcance y las diferencias entre hardware y software, algo que no siempre queda claro a los artistas y diseñadores.

2 Véase a este propósito Roncoroni, U. (2007). La forma emergente. Arte y educación en el medio digital.

Umberto Roncoroni, Plotter a viento, maquetas y dibujo. PostDigital, Lima, 2004.

El autor con el brazo robótico Kuka Physical computing con Arduino

Libro GENERATIVO-plotter.indb 76Libro GENERATIVO-plotter.indb 76 13/01/2016 12:05:5213/01/2016 12:05:52

Page 77: Libro GENERATIVO-plotter

Manual de diseño generativo 77

Si bien el hardware es lo que permite la relación entre el contexto (a través de varios tipos de sensores, impresión 3D, etcétera) y lo que se percibe y se aprecia como obra concreta, es preciso señalar que lo esencial del proceso generativo digital se encuentra en el software, porque en el código se implementan su ló-gica y epistemología, sus procesos, modelos e informaciones; todo esto puede ser resuelto numéricamente y programando, pero es invisible al espectador.

1.1.2 Software y programación

La importancia de programar se justifi ca por la necesidad de solucionar pro-blemas específi cos u obtener efectos personalizados; es decir, programar es la forma más directa de utilizar el potencial (no solo generativo) de una compu-tadora y de descubrir sus posibilidades creativas. Además, la programación es una herramienta educativa muy interesante, porque permite compartir las tecnologías y colaborar en proyectos grupales e interdisciplinarios.

1.2 ¡COMENZAMOS A PROGRAMAR!

Ciertamente, aprender a programar no es fácil, pero esto no quita el hecho de que se trata de una habilidad que todos pueden conseguir con un mínimo de conocimientos de matemática, lógica, geometría, y un poco de dedicación y constancia. Y no es necesario excederse en exquisiteces o hundirse en técnicas muy complejas; en nuestros primeros programas se pueden utilizar piezas de software desarrolladas por otros, ¡lo importante es que todo funcione!

1.2.1 Programación y compilación

Programar signifi ca “ordenar secuencias de comandos a la computadora me-diante un sistema de códigos —un lenguaje— que la computadora pueda re-conocer”; ahora bien, el lenguaje que la computadora reconoce directamente son las combinaciones de números binarios que activan sus circuitos. Obvia-mente, programar de esta manera es muy complicado; por eso, los códigos binarios básicos suelen ser agrupados y traducidos en comandos complejos y comprensibles para el ser humano, lo que permite al programador operar de modo más intuitivo. Con este fi n, se crearon los lenguajes de programación de alto nivel. Nótese que para que la computadora pueda entender un lengua-je de alto nivel, este debe ser reconducido a los códigos binarios originales, lo que es tarea del compilador.

1.2.2 Ingeniería y diseño de software

La programación puede desarrollarse con distintos métodos y en diferentes etapas, según la complejidad de cada proyecto. Lo más común es comenzar

Libro GENERATIVO-plotter.indb 77Libro GENERATIVO-plotter.indb 77 13/01/2016 12:05:5313/01/2016 12:05:53

Page 78: Libro GENERATIVO-plotter

78 Umberto Roncoroni

con el levantamiento de los requisitos, luego siguen el análisis de la funcio-nalidad del programa, el diseño de la arquitectura de la aplicación, la codi-fi cación, las pruebas y la implementación (lo que va en la computadora del usuario fi nal). Al respecto, existen varios modelos de desarrollo, entre los que se puede señalar:

• Modelo incremental. En él se lleva a cabo una mayor interacción con el cliente en las varias etapas de desarrollo.

• Extreme programming. Es una metodología muy interesante didáctica-mente, donde trabajan dos programadores a la vez, que se ayudan y corrigen mutuamente.

1.2.3 Algoritmos

Para que un programa cumpla con las expectativas, es necesario saber plan-tear y resolver un problema de modo secuencial, de manera que funcione en general, no solo para un caso específi co. El resultado es un algoritmo, que se implementa en el código; los parámetros y las variables son los que contienen los valores y los datos que se procesarán, la interfaz es una parte del software que permite controlar las funciones del programa interactivamente, por vía textual o visual.

1.3 PARADIGMAS Y LENGUAJES DE PROGRAMACIÓN

Se pueden encontrar muchas formas, estilos y lenguajes de programación,aptos para principiantes o para expertos.

1.3.1 Programación estructurada

Con esta técnica de programación, el programa está organizado en líneas se-cuenciales de comandos (con posibilidades de saltos); se plantea un problema o una tarea como un todo, que luego se divide en tareas más sencillas que se resuelven individualmente, distribuyendo, si es el caso, las tareas a varios programadores. Una vez terminados todos los segmentos del programa, se procede a unifi carlos, pues si se ha estructurado el programa correctamente, la integración no debería presentar problemas. Es el estilo más sencillo para los principiantes.

1.3.2 Programación a objetos

En lugar de hacer un solo programa muy grande y dividirlo en tareas, se establecen miniprogramas, esto es, los objetos, que actúan con sus propias funciones (métodos) y datos (propiedades). A diferencia de la programación

Libro GENERATIVO-plotter.indb 78Libro GENERATIVO-plotter.indb 78 13/01/2016 12:05:5413/01/2016 12:05:54

Page 79: Libro GENERATIVO-plotter

Manual de diseño generativo 79

estructurada, los objetos facilitan el control, las correcciones y el desarrollo del software, así como la experimentación y el intercambio de partes de código. Para el diseño generativo, los objetos son una solución atractiva, porque per-miten perfeccionar el programa sin la necesidad de rehacer todo para integrar los nuevos aportes, como es obligatorio hacerlo con la programación estruc-turada. Sin embargo, la programación a objetos es más complicada y requiere más trabajo para gozar de sus benefi cios.

1.3.3 Lenguajes de programación

Existen lenguajes de programación estructurada (como Basic o C) y a objetos (como Java, C++, C# y Processing). Se han creado también lenguajes a objetos visuales como Grasshopper, un plug-in para Rhino. Los scripts son programas que se desarrollan dentro de paquetes aplicativos que permiten controlar sus funcionalidades programando. Son, por lo común, lenguajes interpretados (compilados paso a paso mientras se ejecutan) y con funciones generalmen-te limitadas a la operatividad del paquete de pertenencia, como RhinoScript para Rhinoceros o MaxScript para 3DStudioMax.

¿Qué lenguaje utilizar? No siempre los paquetes aplicativos están diseñados para el problema específi co que uno quiere resolver. Por ejemplo, si el lenguaje es de alto nivel, puede resultar inefi ciente para una cierta tarea específi ca.

El mejor programa para comenzar podría ser VBasic o Processing (un dia-lecto de Java)3. La mayoría de los científi cos informáticos utiliza C o C++, pero no es aconsejable comenzar con estos lenguajes. Java o C# son una buena vía intermedia.

1.3.4 Programar con estilo

Sea cual sea el lenguaje que se esté utilizando, para comenzar un programa, como se suele decir, con el pie derecho, propongo unas sugerencias prácticas4 que el principiante no debe olvidar:

• Describir el algoritmo en lenguaje natural (como el inglés o el castellano).• Hacer un modelo del programa con seudocódigo.• Comenzar el código con las variables, utilizando nombres que intuitiva-

mente indiquen el signifi cado de cada variable.• Utilizar los comentarios para no olvidar lo que hace una cierta parte del

programa.• Avanzar y probar el código un paso a la vez; es más sencillo descubrir

los errores.

3 Programa gratuito que se puede bajar de htt p://processing.org/4 El lector puede consultar lo que se considera la biblia del programador: The Art of Com-

puter Programming de Donald Knuth.

Libro GENERATIVO-plotter.indb 79Libro GENERATIVO-plotter.indb 79 13/01/2016 12:05:5413/01/2016 12:05:54

Page 80: Libro GENERATIVO-plotter

80 Umberto Roncoroni

• Diagramar el código con cuidado (es un archivo de texto, al fi n y a cabo), porque facilita la corrección y la edición del mismo.

• Imprimir los valores de las variables durante la ejecución, para hacer más fácil la corrección del programa e individuar el porqué de su com-portamiento.

1.4 PRINCIPALES ELEMENTOS DE UN LENGUAJE DE PROGRAMACIÓN

A continuación, se presenta un listado de los elementos principales de un len-guaje de programación, pues algunas particularidades podrían sorprender al principiante5.

• Datos. Un programa puede manejar dos tipos de información: números enteros o decimales, y letras, denominadas cadenas, para los textos; y es necesario determinar variables específi cas para cada uno de ellos. Es importante tomar en cuenta que confundir los tipos de datos genera siempre errores; por ejemplo:

fl oat a = 3; fl oat b = 2; fl oat c = a/b; c = 1.5 Pero: int a = 3; int b = 2; int c = a/b; c = 1

• Arreglos. Los datos pueden agruparse en arreglos o matrices, donde se accede a cada dato mediante índices. El tamaño de los arreglos depende de la memoria disponible, pero las modernas PC permiten manejar can-tidades de datos más que sufi cientes para cualquier necesidad (aunque a veces el precio puede ser la velocidad). Los arreglos comienzan siempre en 0, es decir, el índice de un arreglo de 10 elementos comienza en 0 y termina en 9: a(9) devuelve el décimo elemento del arreglo. Para memo-rizar el número 128 en la tercera (o cualquier otra) casilla del arreglo:

a(2)=128

• Operadores. Son las funciones básicas para calcular, como +, -; para com-parar o para las operaciones lógicas, como =, <, >, <> diferente, etcétera.

• Control/condiciones. Son comandos del lenguaje que permiten contro-lar el fl ujo del programa, como los bucles for… next (secuencias de ope-raciones que se pueden repetir n veces) o las decisiones condicionales: if, una cierta condición; then, se hace algo; else, se hace otra cosa.

• Funciones. Se trata de pedazos de código que realizan una tarea espe-cífi ca y que se pueden utilizar varias veces dentro de otro programa. Se ordenan en librerías y facilitan la organización de programas complejos.

5 Obviamente, el lector tendrá que consultar el manual del lenguaje que está utilizando, pues aquí estamos haciendo referencia a un lenguaje genérico.

Libro GENERATIVO-plotter.indb 80Libro GENERATIVO-plotter.indb 80 13/01/2016 12:05:5413/01/2016 12:05:54

Page 81: Libro GENERATIVO-plotter

Manual de diseño generativo 81

Los objetos son un conjunto de funciones (métodos) y datos (propieda-des). En el diseño 3D es la forma más utilizada para programar.

• Input y output. Todos los lenguajes ofrecen comandos para ingresar da-tos desde el teclado, el mouse, los puertos seriales o paralelos.

• Archivos. Lo que se produce con el software se tiene que guardar en un archivo, o más bien, es necesario importar información desde un archi-vo para procesarla. Hay archivos para documentos de textos, imágenes, videos, etcétera. Los archivos de textos están en formato ASCII y se pue-den leer y editar desde cualquier editor de texto; los archivos binarios se construyen de acuerdo con ciertas estructuras de datos (como, por ejem-plo, las imágenes BMP, que son secuencias de bytes R, G, B). Felizmente, muchos lenguajes como C# proveen de métodos y funciones para leer o escribir archivos de varios tipos. Para exportar los archivos a programas como Photoshop o Rhino, se requiere que estos sean compatibles; afor-tunadamente, en la red se encuentra vasta documentación y tutoriales al respecto.

1.5 ELEMENTOS MÍNIMOS DE COMPUTER SCIENCE

La computer science (ciencias de la computación) estudia las técnicas que per-miten diseñar los algoritmos para implementar los modelos lógico-matemáti-cos que sirven para las simulaciones de eventos reales (como la vida artifi cial y la inteligencia artifi cial), para la gestión (búsqueda y ordenamiento) de datos, la comunicación entre computadoras, entre otros. Se ofrecen aquí algunos tips esenciales para operar con el arte generativo.

1.5.1 Números y computadoras

El diseño generativo requiere sufi cientes conocimientos de matemática, aunque el nivel puede que no supere lo que normalmente se imparte en la secundaria. Por tanto, es conveniente brindar al lector algunos consejos matemáticos prác-ticos para que logre diseñar e implementar procesos más precisos y efi cientes.

Lo más notable que se debe considerar es que las computadoras son muy rápidas, pero no son realmente precisas. Usan números discretos y no conti-nuos, lo que signifi ca que siempre queda el problema del redondeo, según el tipo de número que se está utilizando (integer o fl oat). Un ejemplo es la suma de 1 y 0.00000001, que da solo 1. Puede ser insignifi cante, pero en algunos casos (en las funciones trigonométricas, por ejemplo) no lo es.

Libro GENERATIVO-plotter.indb 81Libro GENERATIVO-plotter.indb 81 13/01/2016 12:05:5413/01/2016 12:05:54

Page 82: Libro GENERATIVO-plotter

82 Umberto Roncoroni

1.5.2 Velocidad

Depende, principalmente, del modo en que se programa y de los algoritmos utilizados. Un truco para acelerar los programas es usar números enteros en lugar de decimales cuando es posible: un entero se procesa de 10 a 20 veces más rápido. La división y las funciones trigonométricas son muy costosas, mejor es recurrir a tablas (look up table) de valores precalculados. También es importante conocer las características de la PC y del lenguaje de programa-ción, sobre todo por lo que se refi ere a la gráfi ca.

1.5.3 Principales estrategias y algoritmos de las ciencias de la computación

• Divide y vencerás. Es una sugerencia para resolver problemas con la com-putadora. Ningún problema es imposible si se logra dividirlo en proble-mas más pequeños, y así sucesivamente. Se debe simplifi car lo complejo.

• Búsqueda. Generalmente, el diseño generativo requiere manipular grandes cantidades de datos (píxeles de una imagen bitmap, vértices o el polígono de un modelo 3D). Los algoritmos de búsqueda ayudan a acelerar estas tareas.

• Búsqueda secuencial. Consiste en buscar el elemento comparándolo se-cuencialmente con cada elemento del arreglo hasta encontrarlo, o hasta que se llegue al fi nal. La existencia se puede asegurar cuando el ele-mento es localizado, pero no es posible declarar la no existencia hasta no haber analizado todos los elementos del arreglo. La búsqueda es más fácil utilizando estructuras de datos ordenadas.

• Ordenamiento. Otros algoritmos importantes son aquellos que sirven para ordenar los datos según un cierto criterio. Por ejemplo, colocar una serie de valores en orden creciente, del menor al mayor. El método de la burbuja es uno de los más simples: comparar todos los elementos de una lista contra todos; si se cumple que uno es mayor o menor que otro, entonces, se los intercambia de posición.

Por ejemplo, se quiere ordenar los siguientes valores: 5 6 1 0 3 Se comienza recorriendo los valores de izquierda a derecha, empezando

por el 5. Se lo compara con el 6, con el 1, con el 0 y con el 3; si es mayor o menor (dependiendo de si el orden es ascendente o descendente), se intercambian de posición. Luego se continúa con el siguiente, con el 6, y se lo compara con todos los elementos de la lista, esperando ver si se cumple o no la misma condición que con el primer elemento. Así, suce-sivamente, hasta el último elemento de la lista.

5: 5 6 1 0 3 - 1 6 5 0 3 - 1 6 0 5 3 - 1 6 0 3 5 6: 1 6 0 3 5 - 1 0 6 3 5 - 1 0 3 6 5 - 1 0 3 5 6 1: 1 0 3 5 6 - 0 1 3 5 6

0, 3: en este caso, quedan en la misma posición.

Libro GENERATIVO-plotter.indb 82Libro GENERATIVO-plotter.indb 82 13/01/2016 12:05:5413/01/2016 12:05:54

Page 83: Libro GENERATIVO-plotter

Manual de diseño generativo 83

1.5.4 Recursividad

La recursividad es una técnica de programación que consiste en crear una función que se repite las veces que queramos, tomando como datos de entrada (input) los elaborados en la vez anterior. En la computadora se defi ne como una función que puede hacer una llamada a sí misma. Para evitar un bucle infi ni-to, se establece dentro de la función un caso fi nal que no es recursivo.

Como ejemplo útil, se puede analizar una función para el cálculo del fac-torial de un número. El factorial de 0 es, por defi nición, 1. Los factoriales de números mayores se calculan mediante la multiplicación de 1 * 2 * 3..., incre-mentando el número de 1 en 1 hasta llegar a la cifra para la cual se está calcu-lando el factorial.

int factorial(int x){ if (x > -1 && x < 2) return 1; //caso límite no recursivo else if (x < 0) return 0; //no existe factorial de números negativos return x * factorial(x - 1); //uso recursivo de la función}

1.5.5 Combinaciones y permutaciones

Son técnicas útiles para el diseño generativo, para el análisis de conjuntos de datos, imágenes o geometrías, y para la optimización de los parámetros. Una permutación es una combinación ordenada de los elementos de un conjunto. Se pueden considerar varios casos, pero los básicos son los siguientes:

• Si un conjunto A tiene n elementos, el número de permutaciones P sin repetir ningún elemento es el factorial del número de elementos: P = n!

A = {1, 2, 3}; P = 6; 123, 132, 213, 231, 312, 321

• Permutaciones sin repetición de algunos elementos del conjunto. A tiene n elementos, r es el número de elementos que se quiere escoger. Por ejemplo, sobre 16 bolas de billar (n = 16), ¿cuántas combinaciones se forman considerando solo las bolas 16, 15 y 14 (r = 3)?

P = n!/(n - r)!

• Combinaciones sin repetición. Si el orden no importa, signifi ca que es sufi ciente que una permutación ocurra para satisfacer la combinación. Así que solo se tiene que ajustar la fórmula de permutaciones para re-ducir las maneras de ordenar los objetos elegidos (porque no interesa ordenarlos):

P = n!/r! * (n - r)!

Libro GENERATIVO-plotter.indb 83Libro GENERATIVO-plotter.indb 83 13/01/2016 12:05:5413/01/2016 12:05:54

Page 84: Libro GENERATIVO-plotter

84 Umberto Roncoroni

• Permutaciones con repetición. Si A tiene 3 objetos {a, b, c}, se los puede ordenar de manera que la “a” aparezca 2 veces, la “b” 2 veces y la “c” 1 vez. Por tanto, cada grupo tiene 5 elementos (n = 5):

P = 5!/(2! * 2! * 1!) = 120/4 = 30

• Combinaciones con repetición. Se puede repetir, el orden no importa; n es el número de elementos de A y se elige r de ellos.

P = (n + r - 1)!/r! * (n - 1)!

1.5.6 Elementos de estadística

Algunos conceptos de estadística son útiles para todas las operaciones de muestreo necesarias para analizar una imagen o un sistema de datos, como un autómata celular. En general, se podría defi nir la estadística como los mé-todos científi cos para recoger, organizar, resumir y analizar datos, con el fi n de sacar conclusiones válidas y decisiones razonables basadas en tal análisis. He aquí algunos términos básicos:

• Población. Conjunto de elementos que presentan una característicacomún.

• Muestra. Colección de algunos elementos de la población, pero no de todos.

• Muestreo. Técnica que sirve para obtener una o más muestras de lapoblación.

• Variables. También suelen ser llamadas caracteres cuantitativos. Son aquellos que pueden ser expresados mediante números. Son caracteres susceptibles de medición, como, por ejemplo, la estatura, el peso, el sala-rio, la edad, etcétera.

• Observación. Es la observación efectuada sobre los elementos de lapoblación; puede ser parcial o exhaustiva.

• Datos. Son los resultados de las mediciones. Pueden ser cuantitativos, cuando representan magnitudes; cualitativos, cuando expresan una cierta condición o diferencia de clase (existen casos en los que algunas cualidades se pueden expresar numéricamente, por ejemplo, el grado de orden, la simetría, las proporciones áureas, la armonía de colores, entre otras); cronológicos, cuando los valores de los datos varían en diferentes instantes o períodos de tiempo; geográfi cos, cuando los datos se refi eren a una localidad geográfi ca (esto tiene sentido en las imágenes o en las escenas 3D, pues señalan la posición de un cierto elemento, como un píxel o un polígono).

• Frecuencia. Es el número de veces que aparece repetido un mismo valor de una variable, o bien las repeticiones de la misma modalidad de un atributo.

Libro GENERATIVO-plotter.indb 84Libro GENERATIVO-plotter.indb 84 13/01/2016 12:05:5413/01/2016 12:05:54

Page 85: Libro GENERATIVO-plotter

Manual de diseño generativo 85

1.5.7 Simulaciones

Algunos fenómenos físicos son muy útiles para las animaciones, como la ace-leración y la gravedad.

• Aceleración. Es importante para simular modelos mecánicos; v es la ve-locidad del objeto, t es el tiempo transcurrido.

a = v/t

• Gravedad. Es la acceleración gravitacional (M es la masa, G la constante universal 6.6726 x 10-11 N-m2/kg2, r el radio desde el centro del planeta):

a = (G * M)r2

M = (a * r2)/G

1.5.8 Estructuras de datos

Los datos pueden guardarse en una variable, en estructuras (struct, variable que guarda más de un dato, también de tipo diferente), en arreglos y matrices. Son útiles porque permiten procesar los datos según un cierto orden. El pro-gramador, obviamente, debe escribir las funciones para el input y el output de cada una de estas estructuras.

• La lista es el tipo de dato más simple que se recurre secuencialmen-te y cuyos elementos se recuperan mediante índices. Por ejemplo:Lista 1 = [3, 12, 7, 89, 2, 15]; Lista 1 [2] = 7; pues el conteo comienza por 0, entonces, el índice 2 se refi ere al tercer elemento del arreglo. La lista enlazada es aquella que, además del dato, incluye un puntero a un dato siguiente o anterior, que no necesariamente corresponde al orden en el cual los datos están almacenados. Por ejemplo:

Lista 1 = [(3, 3), (12, 2), (7, 0), (89, 1)]; Lista 1 [0] = 3, 3; (el segundo 3 es el índice del dato que se lee después) Lista 1 [3] = 89, 1; Lista 1 [1] = 12, 2; Lista 1 [2] = 7, 0.

• Una pila (o stack en inglés6) es una lista ordenada en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés last in fi rst out, último en entrar, primero en salir).

• Una cola se caracteriza por ser una secuencia de elementos en la cual la operación de inserción push se realiza por un extremo y la operación de extracción pop por el otro. También se le llama estructura FIFO (del inglés fi rst in fi rst out), debido a que el primer elemento en entrar será también el primero en salir.

6 Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un pla-to sobre una pila de platos, y una operación retirar, a sacarlo de allí.

Libro GENERATIVO-plotter.indb 85Libro GENERATIVO-plotter.indb 85 13/01/2016 12:05:5413/01/2016 12:05:54

Page 86: Libro GENERATIVO-plotter

86 Umberto Roncoroni

Para profundizar

Recetario de cálculos para el diseño generativo

Factorial de un número

4! = 4 * 3 * 2 * 1

N! = n * (n - 1) * (n - 2)… * 1

Interpolación lineal

Tenemos dos puntos: X0 y Y

0, X

1 y Y

1. Si se quiere encontrar un punto interpolado entre los

dos, conociendo X:

Y = (Y0 + (X - X

0) * Y

1 - (X - X

0) * Y

0)/(X

1 - X

0)

Módulo

El módulo m es el número que puede dividir la diferencia entre dos números. Si a y b son

dos números, se dicen congruentes con respecto a m si es que la división (a - b)/m tiene

resto 0.

Dos números enteros son congruentes entre sí de acuerdo al módulo m, si y solo si ambos

dan el mismo resto al dividirlos por m.

Promedio

Es la media aritmética y se calcula sumando un grupo de números, por ejemplo, A, B y C, y

dividiendo a continuación por el recuento de estos números.

P = (A + B + C)/3

Promedio ponderado

Esto es, se divide la suma de los valores ponderados por la suma de las ponderaciones. De

esto se trata el cálculo del promedio ponderado.

Califi cación Ponderación Valor

70 1 70

80 1 80

90 1 90

100 3 300

Promedio ponderado = (70 * 1 + 80 * 1 + 90 * 1 + 100 * 3)/(1 + 1 + 1 + 3) = 90

Libro GENERATIVO-plotter.indb 86Libro GENERATIVO-plotter.indb 86 13/01/2016 12:05:5413/01/2016 12:05:54

Page 87: Libro GENERATIVO-plotter

Manual de diseño generativo 87

Los sistemas-L, una suerte de híbrido entre un lenguaje de programación y una herramienta de diseño generativo, son una tecnología con un notable po-der creativo, capaz de generar diseños de elevada complejidad. Los sistemas-L son también un método compacto y efi ciente para la gráfi ca iterativa, similar al lenguaje Logo, por utilizar la turtle graphics. La ventaja de estos sistemas es que la curva de aprendizaje es relativamente corta.

Los principios de los sistemas-L • Los sistemas-L predictivos y estocásticos • Los sistemas-L especiales •

Primeros pasos con GDesign

Introduccióna los sistemas-L

Tutorial básico

2

A cada nuevo punto que se introduce, el cursor (la tortuga) avanza y diseña

un segmento.

Y puesto que los sistemas-L serán utilizados en varios de los siguientes tutoriales, en este tutorial se presentarán sus conceptos fundamentales em-pleando como soporte la aplicación GDesign 2.3.

Al terminar este tutorial, el lector tendrá los conocimientos para:• Conocer y aplicar las gramáticas generativas y los sistemas-L.• Ampliar las técnicas de programación.• Comprender y aplicar la recursividad a simples simulaciones científi cas.• Editar, crear y realizar gráfi cos con los sistemas-L.

Libro GENERATIVO-plotter.indb 87Libro GENERATIVO-plotter.indb 87 13/01/2016 12:05:5413/01/2016 12:05:54

Page 88: Libro GENERATIVO-plotter

88 Umberto Roncoroni

Ejemplo de objeto generado con los sistemas-L. Software e imagen de Umberto Roncoroni, 2011.

2.1 LOS PRINCIPIOS DE LOS SISTEMAS-L

Los sistemas-L, o L-Systems o Lindenmayer systems, son un dialecto de las sha-pe grammars, una interpretación visual de las gramáticas generativas, que fue desarrollada por el biólogo Aristid Lindenmayer (Prusinkiewicz y Lindenma-yer, 1990) para simular el crecimiento de los hongos y plantas.

Un sistema-L es, técnicamente, un proceso de escritura recursiva que opera con símbolos alfanuméricos (por eso, se llaman también parallel string-rewrite systems). En palabras más simples, es un proceso que parte de algunos elemen-tos representados por símbolos alfanuméricos y los multiplica a través de un conjunto de reglas para obtener secuencias muy grandes y complejas, las cua-les logran representar gráfi cos, notas musicales o elementos arquitectónicos.

Los ejercicios propuestos en este tutorial se pueden hacer con cualquier implementación de los sistemas-L, pero GDesign ofrece automatismos y una interfaz visual que facilita la programación.

Un sistema-L está compuesto por tres componentes:• Lenguaje. Una serie fi nita de símbolos alfanuméricos.• Reglas recursivas. Para sustituir los símbolos durante las etapas del

proceso.• Parser. Que se encarga de traducir los símbolos en elementos gráfi cos,

notas musicales, etcétera.

Libro GENERATIVO-plotter.indb 88Libro GENERATIVO-plotter.indb 88 13/01/2016 12:05:5413/01/2016 12:05:54

Page 89: Libro GENERATIVO-plotter

Manual de diseño generativo 89

Vocabulario, axioma y reglas en GDesign

2.1.1 Componentes esenciales de un sistema-L

• Axioma. Es el símbolo o los símbolos iniciales.• Alfabeto. Son los símbolos reconocidos por una determinada imple-

mentación de un sistema-L.• Parser. Interpreta la cadena de símbolos y ejecuta el código correspon-

diente. A cada símbolo no terminal se asocia un cierto objeto geométrico: una línea, una esfera, un cubo, etcétera. Cada vez que el parser encuentra uno de estos símbolos, mueve el cursor en la posición correspondiente y dibuja el elemento geométrico elegido por el usuario.

• Ramifi caciones. Permiten que una secuencia de símbolos pueda gene-rar secuencias secundarias.

• Reglas. Las reglas son las transformaciones de cada símbolo no terminal del lenguaje del sistema en una cadena de otros símbolos, terminales o no terminales. El conjunto de reglas constituye la gramática del sistema-L.

• Símbolos no terminales. Son los que producen nuevos símbolos de acuerdo con su regla.

• Símbolos terminales. Son los que permiten controlar la posición, la ro-tación y el tamaño de los objetos y las ramifi caciones. Generalmente, in-cluyen símbolos para rotar el cursor, modifi car el tamaño de los objetos, orientar el movimiento, entre otros.

Libro GENERATIVO-plotter.indb 89Libro GENERATIVO-plotter.indb 89 13/01/2016 12:05:5513/01/2016 12:05:55

Page 90: Libro GENERATIVO-plotter

90 Umberto Roncoroni

• Turtle graphics. Los sistemas-L, generalmente, se visualizan con la téc-nica de la turtle graphics1. En esta técnica, el cursor (el punto rojo que al comienzo se encuentra en el centro de la ventana principal) avanza en un espacio que corresponde al tamaño del objeto, y la dirección del cursor se modifi ca utilizando los ejes X, Y o Z, o mediante rotaciones. Es posible hacer más líneas a la vez creando ramifi caciones. El punto de bifurcación se suele denominar la raíz.

El lector no se preocupe; en los siguientes apartados se explicará todo esto en detalle y con muchos ejemplos.

2.2 LOS SISTEMAS-L PREDICTIVOS Y ESTOCÁSTICOS

Existen diferentes categorías de sistemas-L, con sistemas de reglas más o me-nos complejos, pero el principio es siempre el mismo. Una posibilidad intere-sante de los sistemas-L es que, siendo representados por cadenas de símbolos, permiten hacer una tabla de todos los elementos y, con esto, sacar estadísticas o detectar intersecciones y confl ictos entre partes del sistema.

1 Utilizada por el lenguaje de programación Logo, desarrollado por Seymour Papert.

Ejemplo de un sistema-L. Nótese la bifurcación. El punto donde esta comienza, el símbolo “a” seguido

por el símbolo “[”, se denomina la raíz.

Libro GENERATIVO-plotter.indb 90Libro GENERATIVO-plotter.indb 90 13/01/2016 12:05:5513/01/2016 12:05:55

Page 91: Libro GENERATIVO-plotter

Manual de diseño generativo 91

2.2.1 Los sistemas-L predictivos

Dado un vocabulario y un axioma, cada símbolo no terminal se reproduce siempre de acuerdo con una sola regla.

Vocabulario: “a, b” Axioma: “a”Reglas: a “ab” b “a”

2.2.2 Los sistemas-L estocásticos

Son sistemas cuyos símbolos no terminales se transforman de acuerdo con reglas que se determinan aleatoriamente o por cálculo de probabilidad. Las reglas estocásticas permiten una cierta irregularidad e impredecibilidad; de esta manera, simulan la variedad de los fenómenos naturales.

Vocabulario: “a, b” Axioma: “a”Reglas: a “ab” (50 %); a “bba” (50 %) b “a” (50 %); b “b” (50 %)

El desarrollo es como el caso anterior, nada más que las reglas se aplican al azar.

2.3 LOS SISTEMAS-L ESPECIALES

Entre los sistemas-L existen, además, muchas variantes que utilizan sistemas de reglas más complejos. Estos permiten simular procesos de varia naturale-za, con una buena precisión para simular procesos naturales o para aplicacio-nes especiales.

2.3.1 Los sistemas-L sensibles al contexto

En estos sistemas, las reglas de los símbolos no terminales se asignan según el estado o las características de los símbolos vecinos, es decir, de los símbolos antecedentes o siguientes. El contexto puede también determinar los paráme-tros asociados a los símbolos, o las propiedades de los objetos, cuando el parser genera el modelo geométrico. De esta forma, es posible implementar varios

Desarrollo: a a b a b a a b a a b

Libro GENERATIVO-plotter.indb 91Libro GENERATIVO-plotter.indb 91 13/01/2016 12:05:5613/01/2016 12:05:56

Page 92: Libro GENERATIVO-plotter

92 Umberto Roncoroni

mecanismos de simulación, como la propagación de señales o la difusión de sustancias nutritivas. Así, el sistema puede, además, autocorregirse y propa-gar las correcciones a través del sistema de vecinos.

2.3.2 Los sistemas-L paramétricos y temporizados

Los sistemas-L paramétricos son aquellos en los cuales las reglas de los sím-bolos no terminales se determinan según el valor de uno o más parámetros, que hacen referencia a características del contexto, como la temperatura o el movimiento, y del mismo sistema, como las dimensiones o la posición de los elementos.

Se pueden utilizar para simular los fenómenos naturales, por ejemplo, aso-ciando al símbolo un parámetro peso, o edad, o sexo. Un símbolo, naturalmen-te, puede tener más de un parámetro; este es el caso si se recupera la distancia del símbolo de su raíz, entonces, es posible modifi car su posición o la primiti-va gráfi ca asociada.

Los sistemas-L temporizados son aquellos cuyas reglas se pueden modifi -car en cada etapa del proceso de producción. Esta característica se asocia a los sistemas estocásticos de contexto o paramétricos.

Reglas temporizadas Reglas estocásticas Parámetros

Las reglas y los parámetros de GDesign

Libro GENERATIVO-plotter.indb 92Libro GENERATIVO-plotter.indb 92 13/01/2016 12:05:5613/01/2016 12:05:56

Page 93: Libro GENERATIVO-plotter

Manual de diseño generativo 93

Para profundizar

Shape grammars

Las gramáticas de la forma fueron inventadas por dos investigadores del Instituto Tecno-

lógico de Massachusetts (MIT), Stiny y Gips (1972). Son, quizás, el primer ejemplo de un sis-

tema computacional para describir de modo algorítmico el proceso de diseño, utilizando

directamente las formas geométricas en lugar de los símbolos abstractos de los lenguajes

de programación convencionales2. Las gramáticas de la forma son objeto de investigación

en la arquitectura, el diseño industrial, el diseño textil, entre otros campos.

Construcción de una composición geométrica siguiendo las reglas de la gramática de la forma

En la práctica, las gramáticas de la forma se utilizan como una suerte de brainstorming

cuando un proyecto está en sus etapas iniciales. A menudo, implican un análisis de los

diseños existentes como comienzo para el desarrollo de nuevas posibilidades. Luego del

análisis, se extrae una serie de reglas que constituye el modelo generativo del diseño. Fi-

nalmente, se exploran las posibilidades de las reglas y, eventualmente, estas se modifi can

de acuerdo con las exigencias.

Desde el punto de vista educativo, las gramáticas de la forma (y los sistemas-L que son

una variante) exigen una serie de habilidades diversas: comprensión espacial, sentido de

las tres dimensiones, lógica, imaginación y mucha práctica. La forma más aconsejable es

la experimentación gráfi ca a mano alzada y también con objetos y maquetas, utilizando

varios materiales y aprovechando las facilidades de las máquinas de corte o impresión 3D.

Asimismo, el trabajo grupal está muy indicado para este género de proyectos, tanto en el

sentido didáctico como profesional.

2 El lector puede encontrar mayor información en htt p://www.shapegrammar.org/

Ejercicio 1. Primeros pasos con GDesign

En este ejercicio, se intenta capacitar al lector en las funciones de GDesign, una aplicación para el diseño 3D generativo con los sistemas-L. Con GDesign se pueden aplicar todos los tipos de sistemas-L vistos anteriormente. Además, es posible exportar los objetos a 3DSMax y POV-Ray, pues GDesign genera scripts en los respectivos formatos. Se realizará aquí un proceso completo desde la gramática hasta exportar el diseño. En los demás tutoriales de este manual,

Libro GENERATIVO-plotter.indb 93Libro GENERATIVO-plotter.indb 93 13/01/2016 12:05:5713/01/2016 12:05:57

Page 94: Libro GENERATIVO-plotter

94 Umberto Roncoroni

se tendrá la oportunidad de ver el programa más detalladamente; además, el lector puede descargar el manual y experimentar por su cuenta las diferentes opciones para generar las gramáticas y los objetos 3D.

Difi cultad: fácilObjetivos• Comprender el mecanismo básico de los sistemas-L.• Familiarizarse con la interfaz de GDesign.• Aplicar las funciones básicas de la aplicación.• Comprender el mecanismo de la turtle graphics.• Dibujar un cuadrado utilizando las rotaciones.Paso a paso1. Para hacer cualquier diseño generativo con GDesign, en primer lugar,

se debe elaborar una gramática, poniendo el axioma y las reglas de los símbolos disponibles (aunque en este ejercicio se usará solo el símbolo no terminal “a”). Luego se regresa a la ventana principal y se establecen los parámetros para la generación del gráfi co 3D.

2. Desde la ventana inicial, se entra en la ventana “Grammar”, pulsando el botón de la pestaña Windows del menú principal.

La ventana inicial. A la derecha, están los parámetros y abajo se encuentra el botón para generar el sistema.

Libro GENERATIVO-plotter.indb 94Libro GENERATIVO-plotter.indb 94 13/01/2016 12:05:5713/01/2016 12:05:57

Page 95: Libro GENERATIVO-plotter

Manual de diseño generativo 95

3. Se inserta el axioma “a” en la casilla correspondiente.4. Se escriben las reglas del símbolo “a”.

Para hacer un cuadrado se necesita utilizar el símbolo “P” para fi jar el eje de rotación en Z, y el símbolo “<” para rotar el elemento gráfi co de 90 grados. Se puede usar también “+”, pero hay que poner el valor 90 en el parámetro “angle”, mientras que para “<” el valor es fi jo, siempre 90 grados. Las reglas son: a(1) “P<a<a<a<a” (cada “a” rota de 90 grados y hace una línea y) a(2) “aa” (cada “a” se duplica, así el lado del cuadrado es de 2) a(3) “aa” (cada “a” se duplica, así el lado del cuadrado es de 4)

5. Se asigna el objeto gráfi co línea al objeto “a”. Obviamente, se pueden utilizar otros elementos, como cubos, esferas o funciones programadas por el usuario.

6. Defi nir las opciones para exportar el objeto 3D a #DSMax o POV-Ray.7. Guardar la gramática; se genera un archivo en formato ASCII (forma-

to texto), que se puede editar también con cualquier editor de textos. La extensión del archivo, sin embargo, debe ser “.cad”. Por ejemplo:cuadrado.cad. Pulsando “Close and Launch System”, se regresa a laventana principal.

Ir a la ventana inicial

Opciones export

Objetos gráfi cos Axiomas y reglas

Ventana “Grammar”: axioma, reglas, objetos, opciones export, regresar a la ventana principal

Libro GENERATIVO-plotter.indb 95Libro GENERATIVO-plotter.indb 95 13/01/2016 12:05:5713/01/2016 12:05:57

Page 96: Libro GENERATIVO-plotter

96 Umberto Roncoroni

Paleta para guardar la gramática,

incluyendo axioma, reglas de todo

tipo, objetos y parámetros

8. Finalmente, se puede generar y visualizar el sistema. Primero, hay que decidir cuántas iteraciones se van a utilizar; en este

caso, 3, pues solo se ha usado hasta la casilla 3 de las reglas de “a”. Este sería el desarrollo del sistema:

P<a P<a<a<a<a (aplicando la regla 1) P<aa<aa<aa<aa (aplicando la regla 2, las “a” se duplican) P<aaaa<aaaa<aaaa<aaaa (aplicando la regla 3, duplicando otra vez)

Luego se decide el tamaño de los objetos y el valor del ángulo, que se pondrá a 90 grados. También se puede visualizar en axonometría o pers-pectiva y desde diferentes distancias y puntos de vista.

El sistema desarrollado. A la izquierda se ha abierto la ventana “Show data” y abajo “Show info”, donde se muestran

las coordenadas y la cadena del sistema completada.

Libro GENERATIVO-plotter.indb 96Libro GENERATIVO-plotter.indb 96 13/01/2016 12:05:5813/01/2016 12:05:58

Page 97: Libro GENERATIVO-plotter

Manual de diseño generativo 97

En el diseño generativo, se pueden trabajar las imágenes bidimensionales en formato bitmap, o los gráfi cos vectoriales tanto en 2D como en 3D. En este tu-torial, se presentarán los conceptos generales para el manejo de ambas clases de imágenes, que se utilizarán en los tutoriales sucesivos.

Al terminar este tutorial, el lector tendrá los conocimientos para: Manejar imágenes en formato vectorial. Procesar y elaborar imágenes bitmap. Programar traslaciones, rotaciones y otras transformaciones 3D. Desarrollar sin problemas los sucesivos tutoriales.

3.1 LAS IMÁGENES EN MAPA DE BITS

Tipologías de bitmap

Las imágenes en mapa de bits • Efectos de color en C# • Vectores • Mesh con MaxScript

Imágenes bitmapy gráfi cos vectoriales

Tutorial básico

3

Libro GENERATIVO-plotter.indb 97Libro GENERATIVO-plotter.indb 97 13/01/2016 12:05:5813/01/2016 12:05:58

Page 98: Libro GENERATIVO-plotter

98 Umberto Roncoroni

La imagen en mapa de bits o raster es un mosaico donde cada uno de sus elementos o teselas es un píxel con un determinado color; es decir, la imagen di-gital en la memoria de la computadora es una matriz bidimensional donde cada posición (x, y) en la matriz guarda el dato del color del píxel correspondiente.

3.1.1 Color

El color puede ser true color a 24 bits (8 bits para cada color primario: red, green, blue), escala de grises (8 bits para el nivel de luminosidad de 0 a 255), en blanco y negro (un bit 0 negro y 1 blanco) o indexadas1. Los píxeles de estas imágenes guardan un valor que se refi ere a una paleta de colores (look up table, usual-mente de 256 colores).

Las imágenes bitmap pueden estar comprimidas; en tal caso, se deben des-comprimir antes de utilizarlas en un programa. Manipular bitmap es lento, porque usualmente son imágenes en alta resolución.

3.1.2 Dimensión y resolución

La bitmap es una matriz bidimensional con un cierto número de píxeles por fi la y un cierto número por columna. La resolución es la cantidad de píxeles que se muestran por pulgada en un determinado dispositivo de salida; por ejemplo, la pantalla presenta usualmente 85 píxeles por pulgada.

Para acceder a un píxel de una imagen digital, es necesario tener sus coor-denadas (su posición en la matriz) y leer el dato correspondiente. La mayoría de los lenguajes de programación provee funciones para esto.

Para leer una imagen entera, se accede a cada píxel secuencialmente, pues estos se disponen fi la por fi la, una después de la otra, con un orden que de-pende del formato (TIFF, TGA, BMP, etcétera). Los algoritmos para leer los diferentes formatos se encuentran fácilmente en internet.

Los archivos bitmap, generalmente, incluyen primero un header o intesta-ción y luego la secuencia de píxeles. A veces, comienzan desde la esquina izquierda de arriba; otras, de la de abajo, según el formato.

A continuación, se muestra un ejemplo de una imagen bitmap en blanco y negro, 0 negro, 1 blanco, 1 bit por píxel.

1 En este caso, se usa una paleta de 256 colores; cada píxel de la imagen guarda el nú-mero que el color tiene en la paleta.

Libro GENERATIVO-plotter.indb 98Libro GENERATIVO-plotter.indb 98 13/01/2016 12:05:5913/01/2016 12:05:59

Page 99: Libro GENERATIVO-plotter

Manual de diseño generativo 99

0 1 0 0 0 1 0 11 1 1 0 1 0 1 10 0 1 1 1 0 0 01 0 1 0 0 1 1 1

La imagen bitmap

Se trata de una imagen de 4 fi las y 8 columnas, total: 32 píxeles. Así se al-macena en el fi chero de la computadora (he marcado un píxel en amarillo para verifi car su posición en el fi chero secuencial):

0 1 0 0 0 1 0 1 1 1 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 1 total: 4 bytes

Para encontrar la posición del píxel subrayado: índice = 1 (es la fi la completa anterior a la del píxel) * 8 (número de columnas) + 6 (número de la columna) - 1 (porque la cuenta comienza desde el 0) = 13

0 13 31

0 1 0 0 0 1 0 1 1 1 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 0 0 1 1 1

¿Cómo se lee la secuencia? Hay que saber el número de fi las y columnas de la imagen bitmap, esto se lee desde el header del fi chero. Se sabe que son 4 fi las por 8 columnas.

Primero, se divide la posición 13 por el número de columnas 8 = 1 con resto 5. 1 es el índice de la segunda fi la (la primera tiene índice 0), 5 es el índice de la columna 6.

Libro GENERATIVO-plotter.indb 99Libro GENERATIVO-plotter.indb 99 13/01/2016 12:05:5913/01/2016 12:05:59

Page 100: Libro GENERATIVO-plotter

100 Umberto Roncoroni

Ejercicio 2. Efectos de color en C#

En este ejercicio, se muestra cómo manipular una imagen bitmap con C#. Se presentan todos los pasos, por lo que este trabajo servirá como base para los tutoriales de la tercera parte del manual. El código en C#2 incluye los comenta-rios para que el código sea lo más claro posible; este código se puede traducir fácilmente a C++, Java, VBasic.net, etcétera.

Difi cultad: relativamente fácilObjetivos • Comprender y manejar una imagen bitmap.• Realizar operaciones con píxeles.

2 Se puede descargar el ejemplo de htt p://www.digitalpoiesis.org

Para profundizar

Operaciones con mapa de bits

A continuación, se presentan algunas fórmulas para trabajar con los píxeles, como hacer

una transparencia de imágenes y el efecto plasma. El lector podrá profundizar el tema en

el tutorial sobre image processing, que se encuentra más adelante en este manual.

Transparencia

El promedio ponderado se usa en image processing, por ejemplo, para calcular la suma de

2 píxeles con transparencia.

La transparencia va de 0 a 255. 0 es completamente transparente. Se quiere calcular el valor

P2 de 1 píxel P de luminosidad 120 y transparencia 100 sobre un píxel P1 de luminosidad

230. Redondeando:

P2 = (P * 100)/255 + (P1 * (255 - 100))/255

P2 = 12 000/255 + 35 650/255 = 47 + 139 = 186

Fórmulas para efectos especiales: plasma

Es una técnica procedural muy interesante que se presta a un sinnúmero de variaciones y

experimentos. Se necesita utilizar la función sen() y cuatro parámetros arbitrarios, que pue-

den estar relacionados, por ejemplo, con la posición del píxel. Se calcula el color de cada

píxel en posición (x, y) mediante la fórmula:

Color(x, y) = sen(Par1) + sen(Par2) + sen(Par3) + sen(Par4)

El truco consiste, cuando se hace el recorrido de la bitmap mediante un bucle para la po-

sición horizontal y un bucle para la vertical, en cambiar los índices con algún criterio más

o menos arbitrario.

Libro GENERATIVO-plotter.indb 100Libro GENERATIVO-plotter.indb 100 13/01/2016 12:05:5913/01/2016 12:05:59

Page 101: Libro GENERATIVO-plotter

Manual de diseño generativo 101

Paso a paso1. Con el Wizard de C# se crea una nueva aplicación Windows. 2. En el formulario que se crea automáticamente, se inserta un objeto

PictureBox y un botón. En el método click() del botón, se inserta el código del ejemplo.

3. Se crea una bitmap utilizando uno de los constructores de los ob-jetos bitmap de C#. Necesitamos un objeto de la clase Color para pintar la bitmap, a través del método FromArgb(int R, int G, int B) de la clase Color.

4. Se comienza con las variables y las inicializaciones, en el construc-tor de Form1.

using System;using System.Drawing;using System.Text;using System.Windows.Forms;

namespace _EfectosBItmap{

public partial class Form1 : Form {

int R; int G; int B; Bitmap Prueba; double Distancia; int Dx, Dy;

public Form1() { InitializeComponent(); Prueba = new Bitmap(300,300); R = 0; G = 0; B = 0; Distancia = 0; Dx = 0; Dy = 0; } }

}

Libro GENERATIVO-plotter.indb 101Libro GENERATIVO-plotter.indb 101 13/01/2016 12:05:5913/01/2016 12:05:59

Page 102: Libro GENERATIVO-plotter

102 Umberto Roncoroni

5. Luego se crea un botón donde se ponen dos bucles que leen cada fi la X y cada columna Y de la bitmap. El efecto se logra a partir de la posición de cada píxel y de su distancia del centro. Dentro del bucle más interno realizamos nuestras hazañas… Se calcula la distancia del centro y con las funciones trigonométricas se hallan los valores de R, G y B. Hay que convertir los resultados a enteros, controlar que no sean negativos ni mayores de 255.

private void button1_Click(object sender, EventArgs e){ for (int Y = 0; Y < 300; Y++) {

for (int X = 0; X < 300; X++){

Dx = X - 300/2; //centro x de la imagenDy = Y - 300/2; //centro y de la imagenDistancia = Math.Sqrt(Dx * Dx + Dy * Dy);R = Convert.ToInt16(Math.Sin(Distancia/13.0))*255;G = Convert.ToInt16(Math.Sin(Distancia/7.0))*255;B = Convert.ToInt16(Math.Sin(Distancia/25.0))*255;if (R < 0) R*= -1;if (R > 255) R = 255;if (G < 0) G *= -1;if (G > 255) G = 255;if (B < 0) B *= -1;if (B > 255) B = 255;

Prueba.SetPixel(X,Y,Color.FromArgb(R, G, B));}

}//asignando bitmap a un objeto picture de 300x300pictureBox1.Image = Prueba;

}

6. Para asignar el color RGB al píxel de la bitmap Prueba:

Prueba.SetPixel(X,Y,Color.FromArgb(R, G, B));

Finalmente, se visualiza asignando la bitmap como imagen de fondo del PictureBox1:

pictureBox1.Image = Prueba;

Libro GENERATIVO-plotter.indb 102Libro GENERATIVO-plotter.indb 102 13/01/2016 12:05:5913/01/2016 12:05:59

Page 103: Libro GENERATIVO-plotter

Manual de diseño generativo 103

El resultado fi nal

3.2 VECTORES

Una imagen vectorial es un conjunto de objetos geométricos que se represen-tan a través de sus datos: posición, longitud, altura, ancho, color, etcétera. Un cubo, por ejemplo, es representado por un arreglo de vértices, los cuales dan un arreglo de segmentos, y estos a su vez forman un arreglo de caras. Los objetos son parte de los datos de una escena que incluye también luces, ma-teriales como las texturas y cámaras. El programa procesa estos datos y hace una imagen bitmap (la que vemos en la pantalla o impresa) utilizando el dato de color, luces, perspectivas, etcétera, lo que es un render. A cada modifi cación de los objetos, la imagen se rediseña automáticamente.

En el caso del 3D, es sufi ciente con manipular la geometría para generar archivos con números double (doble precisión), que, generalmente, se guardan en formato ASCII, como un texto que se puede leer fácilmente. Todos los pro-gramas 3D generan y pueden leer archivos ASCII; un formato muy popular es el STL, que se usa para las máquinas de impresión 3D. Es importante ma-nejar estos archivos, pues permiten exportar los objetos creados con nuestrosprogramas.

Obviamente, no es posible aquí hacer un tratado sobre la gráfi ca 3D, pero sepa el lector que las estructuras de un objeto 3D incluyen los vértices, las ca-ras (generalmente, triángulos) y los objetos, compuestos por vértices y caras. Las caras son triángulos porque así los vértices pueden pertenecer a planos distintos. Además, existen librerías para el manejo de gráfi cos 3D para va-rios lenguajes de programación, las hay para Java y para Windows se tiene OpenGL o DirectX. Estas librerías se pueden descargar libremente y se en-cuentran varias comunidades de usuarios en la red que tienen abundante ma-terial, también para los newbies (principiantes).

Libro GENERATIVO-plotter.indb 103Libro GENERATIVO-plotter.indb 103 13/01/2016 12:05:5913/01/2016 12:05:59

Page 104: Libro GENERATIVO-plotter

104 Umberto Roncoroni

Ejercicio 3. Mesh en MaxScript

En este ejercicio se construirá un cuadrado compuesto por dos triángulos en MaxScript. Es importante el orden de los vértices y de sus conexiones para ha-cer los lados de los triángulos, pues ¡este orden afecta la visibilidad del objeto! Esta indicación vale, en general, para todos los objetos 3D. Se sugiere al lector terminar el ejercicio construyendo un cubo completo, agregando vert_array y faces para cada cara del cubo. Las meshes son muy útiles en el diseño generativo, porque se usan para modelar superfi cies complejas, como, por ejemplo, un terre-no. Aplicando una rotación, se pueden formar cilindros o superfi cies3curvas5, empleando, por ejemplo, el recetario de fórmulas que se presenta en “Para pro-fundizar. Fórmulas de geometría analítica” en la página 107.

Difi cultad: relativamente fácilObjetivos• Construir una primitiva geométrica simple.• Comprender el mecanismo básico de los objetos.

3 POV-Ray. The Persistence of Vision Raytracer, en htt p://www.povray.org4 El lector puede descargar los ejemplos y las funciones de htt p://www.digitalpoiesis.

org/download5 Este ejemplo se tornará útil para los ejercicios del tutorial 5 de la tercera parte, sobre la

erosión.

Para profundizar

Triángulo en formato STL

Se mostrará un cubo en formato STL y una mesh en formato MaxScript. El lector puede

adaptar este mecanismo a otros formatos, por ejemplo, el de POV-Ray3. Y escribir un ar-

chivo en formato ASCII es relativamente sencillo4.

Lo importante aquí son los vértices que se guardan con sus coordenadas X, Y y Z, por

ejemplo, vertex 54 550 0, X = 54, Y = 550, Z = 0. El orden de los vértices en el archivo da el

orden de conexión para formar el triángulo, como en el ejemplo anterior.

Para crear el cuadrado, se debe hacer otra cara que se coloca detrás de end facet de la

primera, y así sucesivamente.

solid Object01

facet normal 0 0 0

outer loop

vertex 54 550 0

vertex 58 535 0

vertex 53.9 550 0.9

endloop

endfacet

endsolid Object01

Libro GENERATIVO-plotter.indb 104Libro GENERATIVO-plotter.indb 104 13/01/2016 12:06:0013/01/2016 12:06:00

Page 105: Libro GENERATIVO-plotter

Manual de diseño generativo 105

Paso a paso1. Se abre 3DSMax y una nueva ventana para script pulsando “Newscript”.2. En primer lugar, se crea un arreglo de vértices, donde cada vértice es un

arreglo que contiene 3 elementos: la coordenada X, la Y y la Z. Como es un cuadrado (aunque formado por 2 triángulos), el arreglo tiene 4 vértices.

1 V 2 V 3 V 4 V x y z x y z x y z x y z vert_array = # ( [ 0 , 0 , 0 ] , [ 1 0 , 0 , 0 ] , [ 0 , 1 0 , 0 ] , [ 1 0 , 1 0 , 0 ] )

3. Luego se crea el arreglo de las caras (triángulos), formado por 2 arreglos (pues son 2 triángulos), donde los números indican el orden de conexión de los vértices: el número 1 indica el primer vértice del arreglo de los vértices, el 2 el segundo, etcétera.

Note el lector que hay que respetar el orden antihorario, pues así se de-termina la visibilidad de las caras.

1 triáng. 2 triáng. face_array = #( [ 1 , 2 , 3 ] , [ 2 , 4 , 3 ] )

4. Después, se declara la mesh m con esta sintaxis, siempre la misma: m = mesh vértices:vert_array faces:face_array

Para hacer más triángulos, se debe aumentar el número de vértices y luego el número de triángulos: [1,2,7],[2,8,7],[2,3,8],[3,9,8]...

Orden de los vértices Esquema de la mesh: 18 vértices, 20 triángulos…

Libro GENERATIVO-plotter.indb 105Libro GENERATIVO-plotter.indb 105 13/01/2016 12:06:0013/01/2016 12:06:00

Page 106: Libro GENERATIVO-plotter

106 Umberto Roncoroni

Rotando los vértices de una mesh se obtienen superfi cies curvas.

Las superfi cies curvas se pueden elaborar de modo generativo gracias al control directo de los

vértices. Software de Umberto Roncoroni, 2013.

Libro GENERATIVO-plotter.indb 106Libro GENERATIVO-plotter.indb 106 13/01/2016 12:06:0013/01/2016 12:06:00

Page 107: Libro GENERATIVO-plotter

Manual de diseño generativo 107

Para profundizar

Fórmulas de geometría analítica

Número de oro o sección áurea

Es un importantísimo número por sus propiedades en las proporciones de muchos ele-

mentos naturales, utilizado por los artistas y arquitectos griegos como base para la propor-

ción perfecta. Su símbolo es la letra griega phi (Φ).

Phi = (1 + sqrt(5))/2 = 1.618

Si un segmento tiene longitud 15, el segmento en proporción áurea será 10 * 1.618 = 24.7

Pendiente de una recta

Se representa por la letra m. Es la diferencia entre los ejes Y de dos puntos de la recta (X1, Y

1),

(X2, Y

2) divididos por su diferencia en el eje X.

m = (Y

1 - Y

2)/(X

1 - X

2)

Distancia entre dos puntos

El punto 1 es (X1, Y

1), el 2 es (X

2, Y

2).

Distancia = sqrt((X

2 - X

1)2 + (Y

2 - Y

1)2)

Transformaciones bidimensionales. Rotaciones 2D

Se entiende que la rotación se hace con el centro en el centro de los ejes cartesianos. Si

se requiere rotar en un centro arbitrario, primero, es necesario trasladar el centro al centro

cartesiano, hacer la rotación y luego trasladar nuevamente.

X1

= X * cos(alpha) - Y * sen(alpha); Y1

= Y * sen(alpha) + Y * cos(alpha)

Transformaciones tridimensionales. Rotaciones 3D

La coordenada que corresponde al eje de rotación queda igual. Lo demás es como la rota-

ción 2D. Hay que trasladar como se mencionó anteriormente.

Rotación en el eje Z

X1

= X * cos(alpha) - Y * sen(alpha); Y1

= Y * sen(alpha) + Y * cos(alpha); Z1

= Z

Rotación en el eje X

Y1

= X * cos(alpha) - Z * sen(alpha); Z1

= Y * sen(alpha) + Z * cos(alpha); X1

= X

Rotación en el eje Y

Z1

= Z * cos(alpha) - X * sen(alpha); X1

= Z * sen(alpha) + X * cos(alpha); Y1

= Y

(continúa)

Libro GENERATIVO-plotter.indb 107Libro GENERATIVO-plotter.indb 107 13/01/2016 12:06:0113/01/2016 12:06:01

Page 108: Libro GENERATIVO-plotter

108 Umberto Roncoroni

(continuación)

(continúa)

Transformaciones tridimensionales. Escala

Sx, Sy y Sz son los factores de escala. Si son iguales, la transformación es proporcional.

X1

= X * Sx; Y1

= Y * Sy; Z1

= Z * Sz

Transformaciones tridimensionales. Traslación

Sx, Sy y Sz son los off set.

X1

= X + Sx; Y1

= Y + Sy; Z1

= Z + Sz

Transformaciones tridimensionales. Perspectiva

Se presenta aquí la fórmula más simple. El punto X, Y, Z es el punto tridimensional que se

quiere proyectar de modo prospectivo en el plano bidimensional. Z0 es la distancia del

plano de proyección, o el punto de vista. X1 y Y

1 son las coordenadas bidimensionales del

punto en perspectiva.

X1

= X/(1 - Z/Z0); Y

1 = Y/(1 - Z/Z

0)

Aquí va una fórmula que permite mayor control con más parámetros, como el punto de

vista. Se busca obtener X1 y Y

1, las proyecciones bidimensionales del punto 3D PX, PY, PZ.

EyeZ = distancia del punto de vista desde el plano de proyección

EyeX = coordenada X del punto de vista

EyeY = coordenada Y del punto de vista

PX = coordenada X del punto 3D a proyectar

PZ = coordenada Z del punto 3D a proyectar

PY = coordenada Y del punto 3D a proyectar

X1

= (EyeZ * (PX - EyeX))/(EyeZ + PZ) + EyeX

Y1

= (EyeZ * (PY - EyeY))/(EyeZ + PZ) + EyeY

Transformaciones tridimensionales. Rotación 3D por un eje arbitrario

P(X, Y, Z) es el punto del espacio que se quiere rotar alrededor de un eje E1(X, Y, Z) E2(X, Y, Z)

de un ángulo alpha. PR(X, Y, Z) es el punto rotado. Se requiere una serie de pasos y trabajar

con vectores. Un vector se representa mediante dos puntos X, Y, Z.

Sea P = (3, 4, 5) un punto arbitrario del espacio que se quiere girar theta = pi/8 radianes,

respecto al eje AB, vector dado por los puntos A = (9, 2, 6) y B = (7, 0, 1).

n = AB/|AB|

P’ = A + [n · (P - A)] * n + cos(theta) * [(P - A) - [n · (P - A)] * n] - sen(theta) * [n cross(P - A)]

Aquí va una función completa en VBasic. POINT es un tipo de dato formado por 3 números

decimales que representan las coordenadas X, Y y Z.

Libro GENERATIVO-plotter.indb 108Libro GENERATIVO-plotter.indb 108 13/01/2016 12:06:0113/01/2016 12:06:01

Page 109: Libro GENERATIVO-plotter

Manual de diseño generativo 109

Public Function Rotate(PE1 As POINT, PE2 As POINT, Vert As POINT, Angle As Double) As POINT ‘recibimos 2 puntos que dan el eje de rotación ‘POINT es un tipo de dato que contiene tres coordenadas X, Y y Z ‘PE1 y PE2 defi nen el eje de rotación Dim P As POINT ‘el punto a rotar Dim P1 As POINT ‘el punto rotado Dim A As POINT ‘1 punto eje de rotación Dim PmA As POINT Dim B As POINT ‘2 punto eje de rotación Dim AB As POINT Dim ModAB As Double ‘módulo de AB Dim n As POINT ‘vector unitario que pasa por el origen, paralelo a AB Dim ncrossPmA As POINT Dim nscalarPmA As Double Dim Theta As Double ‘ángulo de rotación Dim SinTheta As Double, CosTheta As Double Dim PG As Double ‘para convertir a grados ‘calculando PG 3.1415926535 PG = 3.1415926535/180 ‘conversión de radianes a grados Theta = Angle * PG ‘inicializamos el punto a rotar P.X = Vert.X: P.Y = Vert.Y: P.Z = Vert.Z ‘inicializamos eje de rotación A.X = PE1.X: A.Y = PE1.Y: A.Z = PE1.Z B.X = PE2.X: B.Y = PE2.Y: B.Z = PE2.Z ‘primero calculamos P - A PmA.X = P.X - A.X: PmA.Y = P.Y - A.Y: PmA.Z = P.Z - A.Z ‘luego calculamos AB AB.X = B.X - A.X: AB.Y = B.Y - A.Y: AB.Z = B.Z - A.Z ‘calculamos el módulo de AB ModAB = Sqr((AB.X * AB.X) + (AB.Y * AB.Y) + (AB.Z * AB.Z)) ‘encontramos el vector n, AB/ModAB n.X = AB.X/ModAB: n.Y = AB.Y/ModAB: n.Z = AB.Z/ModAB ‘calculamos sen y cos de theta SinTheta = Sin(Theta): CosTheta = Cos(Theta) ‘calculamos ncrossPmAncrossPmA.X=(n.Y*PmA.Z-n.Z*PmA.Y)*1-(n.X*PmA.Z-n.Z*PmA.X)*0+(n.X*PmA.Y-n.Y*PmA.X)*0ncrossPmA.Y=(n.Y*PmA.Z-n.Z*PmA.Y)*0-(n.X*PmA.Z-n.Z*PmA.X)*1+(n.X*PmA.Y-n.Y*PmA.X)*0ncrossPmA.Z=(n.Y*PmA.Z-n.Z*PmA.Y)*0-(n.X*PmA.Z-n.Z*PmA.X)*0+(n.X*PmA.Y-n.Y*PmA.X)*1

(continuación)

(continúa)

Libro GENERATIVO-plotter.indb 109Libro GENERATIVO-plotter.indb 109 13/01/2016 12:06:0113/01/2016 12:06:01

Page 110: Libro GENERATIVO-plotter

110 Umberto Roncoroni

‘en realidad n . P menos A es un producto escalar... probamos y lo sustituimos ‘en las fórmulas anteriores

nscalarPmA = n.X * PmA.X + n.Y * PmA.Y + n.Z * PmA.ZP1.X = A.X + nscalarPmA * n.X + CosTheta * (PmA.X - nscalarPmA * n.X) + SinTheta * ncrossPmA.XP1.Y = A.Y + nscalarPmA * n.Y + CosTheta * (PmA.Y - nscalarPmA * n.Y) + SinTheta * ncrossPmA.YP1.Z = A.Z + nscalarPmA * n.Z + CosTheta * (PmA.Z - nscalarPmA * n.Z) + SinTheta * ncrossPmA.Z

‘devuelve el punto rotado... Rotate.X = P1.X Rotate.Y = P1.Y Rotate.Z = P1.Z

End Function

(continuación)

Libro GENERATIVO-plotter.indb 110Libro GENERATIVO-plotter.indb 110 13/01/2016 12:06:0113/01/2016 12:06:01

Page 111: Libro GENERATIVO-plotter

Parte 3

Libro GENERATIVO-plotter.indb 111Libro GENERATIVO-plotter.indb 111 13/01/2016 12:06:0113/01/2016 12:06:01

Page 112: Libro GENERATIVO-plotter

Libro GENERATIVO-plotter.indb 112Libro GENERATIVO-plotter.indb 112 13/01/2016 12:06:0113/01/2016 12:06:01

Page 113: Libro GENERATIVO-plotter

Manual de diseño generativo 113

La simulación de las formas naturales (incluyendo las más simples), gracias al principio de la repetición y a parámetros apropiados, permite generar pro-cesos generativos sencillos que pueden fácilmente construir geometrías muy complejas.

El objetivo de este primer tutorial es explorar el poder generativo de las formas naturales básicas. Para comenzar, se estudiará la forma de la espiral, introduciendo el uso de los modelos numéricos1, lo que permitirá al lector ex-plorar por su cuenta otras formas de la naturaleza. Luego se realizará un pro-ceso generativo para diseñar diferentes modelos de conchas. Las herramientas serán los sistemas-L y la programación estructurada con el lenguaje C#2.

Al terminar este tutorial, el lector tendrá los conocimientos para:• Reconocer y comprender la belleza de los procesos naturales.• Analizar y sintetizar críticamente la relación entre naturaleza y

tecnología.• Crear procesos generativos personalizados.• Sustentar teóricamente sus procesos generativos.

1.1 CARACTERÍSTICAS Y PROPIEDADES DE LA ESPIRAL

La gran variedad de estructuras y diseños que caracterizan a la naturaleza se origina por combinaciones de un conjunto restringido de formas geométricas simples: espirales, meandros, ramifi caciones y explosiones. El estudio de estas formas y de sus propiedades topológicas, como bien decía Stevens (1986), es básico para comprender la estructura de formas mucho más complejas, orgá-nicas o inorgánicas.

1 El modelo numérico, a diferencia del modelo analítico (que es abstracto), computa los elementos individualmente, sumando el efecto de todos ellos. Es el modelo más emer-gente, cuyo procesamiento es posible gracias a las computadoras.

2 Todos los programas de este tutorial se pueden descargar desde htt p://www.digi-talpoiesis.org. Los ejemplos se pueden traducir fácilmente al lenguaje que el lectorprefi era.

Características y propiedades de la espiral • Generar una familia de espirales con los sistemas-L •

Programar una espiral en C# • Conchas generativas paramétricas con los sistemas-L

La espiral, geometría de la naturaleza

Tutorial

1

Libro GENERATIVO-plotter.indb 113Libro GENERATIVO-plotter.indb 113 13/01/2016 12:06:0113/01/2016 12:06:01

Page 114: Libro GENERATIVO-plotter

114 Umberto Roncoroni

En efecto, lo que determina la forma de un elemento o de un organismo es el espacio donde este elemento u organismo está ubicado, lo que pone res-tricciones de diverso tipo, como el tamaño o las proporciones. Cada una de las formas naturales, entonces, responde a una necesidad topológica y a una exigencia práctica, de acuerdo con lo que demanda su medioambiente. Son estas restricciones, oportunamente modeladas, las que ofrecen al diseñador un poder generativo similar al de la naturaleza.

El gran arquitecto catalán Antoni Gaudí (Wagensberg, 2002), pionero de la arquitectura orgánica y generativa, señalaba que:

Los paraboloides, hiperboloides y helicoides, variando constantemente la inci-dencia de la luz, tienen una riqueza propia de matices, que hacen innecesaria la ornamentación y hasta el modelaje. (p. 168)

Los arquitectos aprendieron a utilizar las formas naturales a partir de la observación de las estructuras vivas: los árboles, los huesos, las conchas, las alas, los ojos, los pétalos, las escalas y las criaturas microscópicas. Estas for-mas han inspirado la arquitectura orgánica, ya sea para adorno, como en el art nouveau, ya sea desde el punto de vista estructural, como en Gaudí. Sin embargo, la naturaleza como modelo produce efectos contrarios a los desea-dos cuando se aplica solo por la analogía formal, es decir, sin considerar sus razones funcionales.

1.1.1 La espiral

La espiral es, quizás, la forma más importante de la naturaleza. Se encuentra en muchos elementos naturales orgánicos e inorgánicos, como los remolinos, las conchas, las galaxias, los comillos y cornamentas de muchos animales. La espiral también está presente en las plantas, como lo demuestran las fotogra-fías de Blossfeldt de los zarcillos trepadores3.

Las espirales (y las formas curvas, en general) se originan por la diferencia de velocidad y la fuerza centrífuga existente en las diversas partes de un ele-mento. La espiral es, entonces, una forma emergente, pues surge como resul-tado de un fenómeno, la variación de velocidad4, que, por lo tanto, se puede considerar su principio generativo. Según Stevens (1986):

La regla general es clara: si las velocidades de crecimiento o dilatación de las dos superfi cies... son diferentes, el material se curva de forma que la parte de crecimiento más lento quede hacia el interior y la de crecimiento más rápido se disponga al exterior. (p. 108)

3 Karl Blossfeldt fue un profesor de arte y fotógrafo alemán de comienzos del siglo XX, famoso por sus fotografías de plantas y fl ores.

4 Por ejemplo, los ríos de la cuenca amazónica y las galaxias. Y mejorar la diferencia de velocidad, de acuerdo con el principio de Bernoulli, es el objetivo del diseño del perfi l alar de los aviones.

Libro GENERATIVO-plotter.indb 114Libro GENERATIVO-plotter.indb 114 13/01/2016 12:06:0113/01/2016 12:06:01

Page 115: Libro GENERATIVO-plotter

Manual de diseño generativo 115

Topológicamente, según Wagensberg (2007), la espiral responde a una do-ble exigencia: crecer y ahorrar espacio. La espiral también atrapa: “La espiral empaqueta en cualquier sentido” (p. 198). Estas propiedades se aplican en el diseño industrial, por ejemplo, en los envases y en productos como los rollos de papel higiénico.

1.1.2 Diferentes tipos de espiral

Existen dos tipos de espiral: la espiral de Arquímedes y la espiral logarítmica. Una variación importante de la espiral es la hélice.

Espiral de Arquímedes Espiral logarítmica

La espiral logarítmica se distingue de la espiral de Arquímedes por el hecho de que las distancias entre sus brazos se incrementan en progresión geomé-trica, mientras que en una espiral de Arquímedes el incremento es constante.

Helecho. Foto de Umberto Roncoroni, 2011. Huracán tropical

Libro GENERATIVO-plotter.indb 115Libro GENERATIVO-plotter.indb 115 13/01/2016 12:06:0113/01/2016 12:06:01

Page 116: Libro GENERATIVO-plotter

116 Umberto Roncoroni

1.1.3 Las conchas

El ejemplo más conocido de organismos con forma de espiral son las conchas. Constituidas por carbonato de calcio, sirven a los animales invertebrados(moluscos) como elementos defensivos (caparazón) para protegerse de las agresiones externas, y como punto de anclaje para sus músculos y órganos.

Concha prehistórica fósil (Nautilus). Foto de Umberto

Roncoroni, Museo di Storia Naturale, Milán, Italia, 2014.

Generalmente, las espirales de las conchas se desarrollan hacia la derecha y se dividen en varias regiones o estructuras, como la abertura, la columela, la vuelta del cuerpo y la espira. Poseen características muy diversas, pues pue-den presentar también ornamentaciones, como orifi cios, canales respiratorios, costillas verticales, cordones espirales y suturas.

Variaciones sobre el principio generador de la espiral y de las conchas. Se trata de una suerte de torno digital que utiliza una su-

perfi cie de tracción que se desplaza alrededor de un helicoide. El software permite variar el incremento del ángulo, el movimiento

vertical y el perfi l de tracción. Los modelos se pueden utilizar para hacer prototipos con las impresoras 3D. Software e imágenes

de Umberto Roncoroni.

Libro GENERATIVO-plotter.indb 116Libro GENERATIVO-plotter.indb 116 13/01/2016 12:06:0313/01/2016 12:06:03

Page 117: Libro GENERATIVO-plotter

Manual de diseño generativo 117

Ejercicio 4. Generar una familia de espirales con los sistemas-L

En este ejercicio, se comenzará el estudio de la espiral con los sistemas-L; se verá cómo parametrizar el modelo y generar, con un solo proceso, una familia —es decir, una serie de variantes sobre el mismo principio— de espirales.

Para esto, es necesario crear una gramática en GDesign que produce una serie de segmentos rotados de una cierta cantidad de grados. La espiral se ob-tiene variando el radio o aumentando el tamaño del segmento. La familia de espirales se puede conseguir jugando con el incremento del ángulo, del radio o del porcentaje de aumento del tamaño del segmento.

Difi cultad: fácilObjetivos• Comprender los principios de la programación gráfi ca con los sistemas-L.• Familiarizar al lector con el dibujo paramétrico y con las gramáticas de

la forma.• Estudiar y crear diferentes tipos de espiral.Paso a paso1. Primero se determinan los símbolos de GDesign que se van a utilizar:

“a” = símbolo no terminal que representa a un segmento de longitud variable

“P” = símbolo terminal que indica el eje de rotación Z“+” = símbolo terminal que indica la rotación en sentido antihorario“|” = símbolo terminal que aumenta en un cierto porcentaje el tamaño

de “a”

Para profundizar

La espiral logarítmica tiene relación con la sección áurea y la serie de Fibonacci.

Sección áurea

Fue descubierta por los griegos, representa numéricamente (1.618) la relación ideal entre

dos dimensiones. La proporción áurea se encuentra en varias formas naturales, y los artis-

tas y arquitectos, desde los griegos antiguos, la utilizan para fi jar las proporciones de los

edifi cios y de las obras de arte.

Serie de Fibonacci

Es una serie numérica donde cada número es la suma de sus dos antecedentes, de la

siguiente forma:

0 1 1 2 3 5 8 13 21 34 55 89 144…

Progresando en la serie, si se divide el último número por el penúltimo, el resultado se

aproxima cada vez más a 1.618.

Libro GENERATIVO-plotter.indb 117Libro GENERATIVO-plotter.indb 117 13/01/2016 12:06:0313/01/2016 12:06:03

Page 118: Libro GENERATIVO-plotter

118 Umberto Roncoroni

2. Se abre GDesign. En el menú principal, se abre la ventana “Grammar”. Luego, se inserta el axioma y la regla de “a” en las casillas del 1 al 6.

Axioma = “P + a”“a” a + |a

El símbolo “|” que precede el segundo “a” aumenta el tamaño en un cierto porcentaje.

3. El desarrollo de las primeras etapas del sistema sería así: P+a P+a+|a P+a+|a+|a+|a P+a+|a+|a+|a+|a+|a+|a+|a etcétera.4. Se pulsa el botón “Close and Launch System” y en la ventana “Canvas” se

defi nen los valores de los parámetros “angle” y “decay” (la forma de la es-piral puede variar según estos valores). Luego se pulsa “DOL parametric LSystem”.

Axioma, reglas y la espiral resultante

5. Con GDesign se puede hacer una espiral también utilizando la función que permite incrementar el ángulo automáticamente al comienzo de cada ramifi cación. Esta opción se activa en la ventana “Grammar” pul-sando el botón “Options”. En este caso, se debe usar un símbolo más, “p”, un símbolo terminal que representa un segmento (como “a”).

Axioma = “p[P+p[P+a]]” “p” p “a” p[P+p[P+a]] Con esta gramática se crea una serie de ramas recursivas, una dentro

de la otra.

Libro GENERATIVO-plotter.indb 118Libro GENERATIVO-plotter.indb 118 13/01/2016 12:06:0413/01/2016 12:06:04

Page 119: Libro GENERATIVO-plotter

Manual de diseño generativo 119

El sistema luego de cinco o seis iteraciones:

p[P+p[P+p[P+p[P+p[P+p[P+p[P+p[P+a]]]]]]]]

Se puede combinar esta técnica con la anterior, y modifi cando el ángulo se obtienen todos los tipos de espiral.

Ejercicio 5. Programar una espiral con el lenguaje C#

El programa para diseñar una espiral es simple: se basa en el diseño delcírculo, y el truco está en aumentar el radio progresivamente. El ejemplo se re-solverá mediante una aplicación en Windows en lenguaje C#. En C# (o en C++, Java), para poder dibujar hay que crear un formulario, un componente sobre el cual dibujar (un PictureBox), obtener su graphic device, crear un objeto Pen5 e insertar un botón donde se escribirá el código. Aprender estas operaciones será útil para otros tutoriales, por lo que se intentará analizarlas en detalle.

Difi cultad: relativamente fácilObjetivos• Brindar al lector las técnicas básicas de programación gráfi ca.• Desarrollar el algoritmo de la espiral.• Manejar objetos y métodos de C# para gráfi cos en el entorno Windows.

5 En VBasic, en el Form o en otro objeto gráfi co, se puede dibujar directamente con un comando pset(x, y).

Reglas, opciones y rendering

Libro GENERATIVO-plotter.indb 119Libro GENERATIVO-plotter.indb 119 13/01/2016 12:06:0413/01/2016 12:06:04

Page 120: Libro GENERATIVO-plotter

120 Umberto Roncoroni

Paso a paso1. En muchos lenguajes los ángulos se calculan en radianes; para la con-

versión de grados a radianes se puede utilizar esta fórmula: rad = Pi/180 .̊Pi es una constante cuyo valor aproximado es 3.14159; aquí dos decima-les son sufi cientes.

2. Se abre C# y se lanza una aplicación Windows. En el Form1, insertar un objeto PictureBox1 y un botón “Espiral”. Se pueden inicializar las variables en el constructor del Form1. El código para hacer la espiral se inserta en el botón.

using System;using System.Drawing;using System.Text;using System.Windows.Forms;

namespace WindowsApplication1{

public partial class Form1 : Form{

Graphics g;Pen P;Point Punto, Punto2;double A, R, Cx, Cy; double DG2RD;

Estructura de la aplicación que se obtiene automáticamente con el Wizard

Libro GENERATIVO-plotter.indb 120Libro GENERATIVO-plotter.indb 120 13/01/2016 12:06:0413/01/2016 12:06:04

Page 121: Libro GENERATIVO-plotter

Manual de diseño generativo 121

public Form1() { InitializeComponent(); g = pictureBox1.CreateGraphics(); P = new Pen(Color.Black); Punto = new Point(); Punto2 = new Point(); Punto.X = 0; Punto.Y = 0; Punto2.X = 0; Punto2.Y = 0; Cx = pictureBox1.Width/2; Cy = pictureBox1.Height/2; }

private void Espiral_Click(object sender, EventArgs e) { DG2RD = 3.14/180; A = 0; R = 120; for (int Cont = 0; Cont < 30000; Cont++) { Punto.X = Convert.ToInt16(Cx + R * Math.Sin(A * DG2RD)); Punto.Y = Convert.ToInt16(Cy + R * Math.Cos(A * DG2RD)); Punto2.X = Convert.ToInt16(Cx + R * Math.Sin((A-0.1) * DG2RD)); Punto2.Y = Convert.ToInt16(Cy + R * Math.Cos((A-0.1) * DG2RD)); g.DrawLine(P, Punto2, Punto); A += 0.05; R += 0.01; } } }}

3. Para hacer la espiral, se comienza con R = 0 y, antes de salir del bucle, se aumenta R en 0.005. También se incrementa el ángulo A de 0.5 grados. Los valores más pequeños dan gráfi cos más precisos.

La espiral se ha diseñado utilizando dos puntos: Punto y Punto2, y tra-zando una línea entre los dos. El Punto2 se calcula con el valor del ángu-lo A, que es un décimo de grado menor que Punto, así que están en una posición diferente en la espiral.

Libro GENERATIVO-plotter.indb 121Libro GENERATIVO-plotter.indb 121 13/01/2016 12:06:0413/01/2016 12:06:04

Page 122: Libro GENERATIVO-plotter

122 Umberto Roncoroni

Ejercicio 6. Conchas generativas y paramétricas con los sistemas-L

El principio generativo de las conchas es el helicoide, una variante de la espiral logarítmica. Con respecto al ejemplo de la espiral del primer ejercicio, se debe añadir el movimiento en vertical. Primero, se diseñará una gramática para una concha genérica simple, luego se la mejorará para crear una familia de conchas, utilizando, oportunamente, los parámetros y el azar. Se utilizarán re-glas diferentes para cada iteración, entonces, se está trabajando, propiamente, con los sistemas-L temporizados.

Difi cultad: moderadamente difícilObjetivos• Aplicar el principio de la espiral.• Realizar una simulación con los sistemas-L temporizados.• Exportar el modelo y utilizar un motor de rendering externo.Paso a paso1. Se utilizan los símbolos “T” y “P” para fi jar los ejes de rotación Y y Z, el

símbolo “:” para disminuir el tamaño y los símbolos “p” (terminal) y “a” (no terminal).

2. La idea es generar una secuencia de objetos que hacen una rotación en el eje Y y luego en el eje Z. Esto produce una espiral ascendente, y si se disminuye el tamaño del objeto, a cada paso se obtiene la espiral, como en el primer ejercicio.

El código y el gráfi co resultante

Libro GENERATIVO-plotter.indb 122Libro GENERATIVO-plotter.indb 122 13/01/2016 12:06:0513/01/2016 12:06:05

Page 123: Libro GENERATIVO-plotter

Manual de diseño generativo 123

Esquema del mecanismo para generar la concha

3. En la ventana “Grammar”, se coloca el axioma y las reglas, como sigue: Axioma = “a” a(1) a:a:a:a:a:a a(2) a:a:a:a:a:a a(3) a:a:a:a:a:a a(4) T + P/ap

Se pueden poner más símbolos o utilizar más iteraciones para hacer más vueltas de la concha.

La gramática y los parámetros de GDesign utilizados para desarrollar las conchas

Libro GENERATIVO-plotter.indb 123Libro GENERATIVO-plotter.indb 123 13/01/2016 12:06:0513/01/2016 12:06:05

Page 124: Libro GENERATIVO-plotter

124 Umberto Roncoroni

4. Para hacer una estructura tipo concha, se usa el objeto esfera. Si se exporta el modelo al software de rendering POV-Ray6, se puede asig-

nar al símbolo “a” el objeto Blob utilizando la paleta “Objects a”; esto da a la forma fi nal un aspecto más orgánico.

Para obtener variaciones, se puede tanto modifi car esta regla básica como utilizar las reglas estocásticas y variar los parámetros “decay”y “angle”.

Renderings con POV-Ray de la gramática anterior y algunas variantes. El caparazón se forma juntando todas las

esferas. Utilizando los objetos Blob de POV-Ray se obtiene un sólido uniforme. El objeto Blob también se puede

parametrizar en POV-Ray, lo que incrementa las posibilidades. Imagen de Umberto Roncoroni.

6 POV-Ray es un raytracer de dominio público muy efi ciente, que se puede bajar gratui-tamente desde su sitio web.

Libro GENERATIVO-plotter.indb 124Libro GENERATIVO-plotter.indb 124 13/01/2016 12:06:0513/01/2016 12:06:05

Page 125: Libro GENERATIVO-plotter

Manual de diseño generativo 125

En este segundo tutorial, se explora el poder generativo del azar, analizando el problema computacional de los números aleatorios y estudiando la simu-lación de fenómenos naturales como el movimiento browniano. El azar en la computadora es un tema complicado y tiene que ser manejado con cuidado, para evitar obtener resultados repetitivos. De todos modos, se tratará de gene-rar un azar controlado.

En primer lugar, se explicará cómo manejar técnicas informáticas para ge-nerar números aleatorios y aprender cómo se simula el azar con diferentes técnicas de programación. Después, se hará un programa para el movimiento browniano en seudocódigo y con los sistemas-L. Por último, se desarrollarán dos aplicaciones para el diseño de terrenos 3D y para el procesamiento de imágenes digitales.

Las aplicaciones de este tipo de técnicas son varias: desde la simulación de comportamientos naturales en los videojuegos a la generación de terrenos y texturas procedurales. Las partituras del compositor griego Xenakis son un ejemplo de cómo se puede aprovechar creativamente el azar y el movimiento browniano.

Procesos aleatorios naturales • El azar y los números aleatorios con la computadora • Simulación ana-

lógica del movimiento browniano • Distribución aleatoria con los sistemas-L • Seudocódigo para el

movimiento browniano • Movimiento browniano con los sistemas-L • Perfi l de una montaña en 2D

con los sistemas-L • El ruido de Perlin con Photoshop • Programa en C# para el ruido de Perlin

Azar y ruido

Tutorial

2

Proceso de dibujo aleatorio de Yannis Xenakis para la partitura de Pithoprakta (1955-1956)

Libro GENERATIVO-plotter.indb 125Libro GENERATIVO-plotter.indb 125 13/01/2016 12:06:0613/01/2016 12:06:06

Page 126: Libro GENERATIVO-plotter

126 Umberto Roncoroni

Al terminar este tutorial, el lector tendrá los conocimientos para:• Comprender los procesos aleatorios.• Aplicar el azar y aprovechar sus posibilidades estéticas.• Relacionar casualidad y determinismo en las simulaciones.• Diseñar procesos generativos personalizados.

2.1 PROCESOS ALEATORIOS NATURALES

Los fenómenos aleatorios se encuentran frecuentemente en la naturaleza: en los grupos de insectos volando, en el comportamiento de ciertos microorga-nismos y en los fenómenos meteorológicos, entre otros.

En 1828, el biólogo Robert Brown observó los movimientos accidentados e irregulares de las partículas de polen en la superfi cie del agua. Brown pensó que este movimiento era característico de toda partícula pequeña en suspen-sión, pero fueron propuestas otras explicaciones del fenómeno sobre la base de variaciones de temperatura u otros efectos físicos. En 1905, Einstein publicó un trabajo que explicaba el movimiento browniano como un proceso caótico: las partículas nunca tienen la misma velocidad ni la misma dirección; estas variaciones, aunque muy pequeñas, se van acumulando en cada partícula hasta producir un movimiento imprevisible y caótico. Dada la cantidad de co-lisiones, es imposible establecer la dirección de la partícula que, en la práctica, toma un característico movimiento en zigzag.

Al golpear ligeramente el hormiguero, salieron cientos de hormigas y caminaron caóticamente por el nido en

búsqueda de la eventual amenaza. Valle del río Pusapno, Oxapampa. Foto de Umberto Roncoroni, 2011.

Libro GENERATIVO-plotter.indb 126Libro GENERATIVO-plotter.indb 126 13/01/2016 12:06:0613/01/2016 12:06:06

Page 127: Libro GENERATIVO-plotter

Manual de diseño generativo 127

El movimiento browniano es un recurso importante en los algoritmos para generar imágenes o modelos naturales, como se verá más adelante. Al respec-to, es importante mostrar cómo el modelo informático nace desde la observa-ción del fenómeno natural procediendo por diferentes grados de abstracción.

2.2 EL AZAR Y LOS NÚMEROS ALEATORIOS CON LA COMPUTADORA

En primer lugar, azar signifi ca desorden o ausencia de un patrón inteligible en una secuencia de símbolos o acciones. Conceptos relacionados son el caos, la en-tropía y la imprevisibilidad. El azar en los fenómenos naturales es solo aparente, por ejemplo, el clima o los números de la ruleta: ambos siguen la lógica de la física newtoniana, pero resultan impredecibles porque se desconocen exhaus-tivamente todas sus variables y sus condiciones iniciales. Así que no hay que confundir azar y caos. El caos es una progresiva complejidad que se produce a partir de condiciones iniciales simples; el azar es un hecho impredecible.

En computación, la infi nita variedad de la naturaleza y el caos se simulan por medio de parámetros aleatorios. Pero los números aleatorios de la compu-tadora no son realmente aleatorios, pues la máquina, por naturaleza, es siem-pre precisa e igual en sus operaciones. El hecho de que no sea posible prever el resultado de un proceso computacional como un autómata celular1 se debe a que se vuelve progresivamente tan complicado que no se puede seguir men-talmente, y por eso parece aleatorio.

Los números aleatorios son, entonces, fruto de algoritmos, más o menos efi cientes en velocidad, así como en conseguir una verdadera aleatoriedad, y porque los parámetros de estos algoritmos se repiten cada vez que se enciende la computadora.

2.2.1 Los sistemas RNG seudoaleatorios

Estos algoritmos generan secuencias seudoaleatorias, en cuanto repetitivas y predecibles, pues utilizan una fórmula matemática. Estos números proporcio-nan un grado de azar muy relativo, pero que funciona en muchos casos, aun-que se debe recordar que estas secuencias se repiten según ciertos patrones que a la larga se pueden percibir.

Estos algoritmos existen en varias versiones y cada una cumple una apli-cación específi ca. Se tienen, por ejemplo, los RNG (random number generator), útiles para la criptografía, y otros que sirven para las simulaciones Monte-carlo. La fórmula más simple para generar una secuencia seudoaleatoria es la siguiente:

x 0 = arbitrario x n + 1 = P 1 * x n + P 2 (mod N) n = 0, 1, 2...

1 Véase más adelante en este tutorial.

Libro GENERATIVO-plotter.indb 127Libro GENERATIVO-plotter.indb 127 13/01/2016 12:06:0613/01/2016 12:06:06

Page 128: Libro GENERATIVO-plotter

128 Umberto Roncoroni

Los parámetros P1, P2 y N determinan las características de la secuencia seudoaleatoria, X es la semilla que establece qué secuencia de números se ge-nera. Son seudoaleatorios porque el mismo conjunto de parámetros da siem-pre igual resultado. Mod N signifi ca que la expresión de la derecha es el resto después de dividirse por el valor de N.

Por ejemplo:x 0 = 79N = 100P 1 = 263P 2 = 71

x 1 = 79 * 263 + 71 (mod 100) = 20 848 (mod 100) = 48, x 2 = 48 * 263 + 71 (mod 100) = 12 695 (mod 100) = 95, x 3 = 95 * 263 + 71 (mod 100) = 25 056 (mod 100) = 56, x 4 = 56 * 263 + 71 (mod 100) = 14 799 (mod 100) = 99.

Existe otro sistema, inventado por Von Neumann en 1949, que se denomina el método del medio de la raíz cuadrada. En este sistema, se crea un número de 4 dígitos y se calcula su cuadrado, lo que genera un número de 8 dígitos. De este se sacan los 4 dígitos centrales que forman el nuevo número y se eleva al cuadrado; el proceso se repite para obtener otros números. El sistema tiene el defecto de repetirse en un período muy corto.

2.2.2 Verdaderos generadores de números aleatorios

Los números aleatorios se pueden obtener con aparatos externos que introdu-cen datos sin relaciones estadísticas; se trata de generadores hardware basados en aparatos electrónicos, sensores o hasta en los movimientos del mouse (es decir, rastreando el comportamiento de los usuarios de una computadora). También es posible sacar números aleatorios saqueando datos por naturaleza casuales, como aquellos de las medidas de ruido eléctrico u otros similares.

2.2.3 Sistemas de números aleatorios para el diseño generativo

Para el diseño generativo no se necesita una aleatoriedad absoluta. Los RNG seudoaleatorios pueden funcionar bien con algunos trucos. Así, la repetición de secuencias o patrones puede aparecer, pero en intervalos muy lejanos entre sí.

Escoger un sistema depende de la velocidad que se requiera. Si hay una simulación en tiempo real, que tiene que ser rápida, es mejor cargar las se-cuencias precalculadas desde un archivo; esto acelera bastante la ejecución del programa2. A continuación, se presentan algunos ejemplos de sistemas:

2 Además, el hecho de generar secuencias periódicas puede ser importante para estu-diar el comportamiento de un sistema generativo, pues limita el número de paráme-

Libro GENERATIVO-plotter.indb 128Libro GENERATIVO-plotter.indb 128 13/01/2016 12:06:0613/01/2016 12:06:06

Page 129: Libro GENERATIVO-plotter

Manual de diseño generativo 129

• Un sistema puede ser combinar, con operadores como XOR, números de varios generadores inicializados con diferentes parámetros. Esto se conoce como software whitening.

• Otro sistema consistiría en generar varios archivos de números aleato-rios previamente calculados y escoger los valores de uno de ellos, elegi-do con otro generador RNG.

• También se puede utilizar un sistema similar a la mezcla y distribución de los naipes. De esta forma, se puebla un arreglo, supongamos de 100 datos de números aleatorios, usando el generador RNG disponible en nuestro sistema (mezclar). Luego, reinicializando el seed del generador RNG y poniendo su rango de valores aleatorios entre 1 y 100, se escoge uno de estos números del arreglo (distribuir). Se repite el todo, generan-do el poblado del arreglo y la semilla cada vez que se quiere obtener un nuevo número aleatorio. Es muy difícil que, de esta forma, se generen secuencias periódicas que echen a perder el proceso generativo.

Ejercicio 7. Simulación analógica del movimiento browniano

En este ejercicio, se diseñará un algoritmo utilizando técnicas analógicas, luego se pasará a un seudocódigo y, fi nalmente, a una simulación con los sistemas-L. En primer lugar, se observa el fenómeno natural, luego se simula el movimien-to browniano a mano alzada, a través de un procedimiento analógico.

Difi cultad: fácilObjetivos• Comprender el movimiento browniano.• Diseñar un algoritmo adecuado.• Generar un modelo gráfi co bidimensional del proceso.Paso a paso1. Se colocan unas cuantas bolitas de vidrio dentro de una bandeja.2. Se agita la bandeja. Observar los choques y los cambios de trayectorias,

que rápidamente se convierten en movimientos aleatorios.

tros que se están observando. Un proceso se estudia también manteniendo constantes ciertos parámetros para observar el comportamiento de los demás.

Libro GENERATIVO-plotter.indb 129Libro GENERATIVO-plotter.indb 129 13/01/2016 12:06:0713/01/2016 12:06:07

Page 130: Libro GENERATIVO-plotter

130 Umberto Roncoroni

Simulación manual Análisis gráfi co

3. Se intenta diseñar un algoritmo para simular el movimiento, utilizando un lápiz, una hoja de papel cuadriculado y, como motor de azar, dos dados numerados del 1 al 6. El algoritmo es el siguiente: a. Fijar el comienzo del movimiento en el centro de la hoja.b. Lanzar los dados. El primero da la dirección y el segundo la longitud.

Para esto, se asocia cada número a una dirección (N, O, S, E, NO, et-cétera) y una longitud (usando como referencia los cuadraditos de la hoja).

c. Dibujar el segmento según la dirección y la longitud obtenidas.d. Repetir el proceso entre veinte y treinta veces, dibujando el trazado

en la hoja cuadriculada.

Primer dado = dirección Segundo dado = longitud Gráfi co

Libro GENERATIVO-plotter.indb 130Libro GENERATIVO-plotter.indb 130 13/01/2016 12:06:0713/01/2016 12:06:07

Page 131: Libro GENERATIVO-plotter

Manual de diseño generativo 131

Ejercicio 8. Distribución aleatoria con los sistemas-L

Se puede simular el proceso de mezcla y distribución con los sistemas-L y GDesign. Para ello, se utilizarán las secuencias seudoaleatorias “R” o “S” y las reglas estocásticas. El resultado esperado es una línea de esferas aleatoria-mente rojas y azules, y que cada vez que se ejecuta la gramática se cree una secuencia diferente sin una repetición evidente.

Difi cultad: fácilObjetivos• Aplicar técnicas para la generación de secuencias seudoaleatorias.• Comprender el problema computacional del azar.Paso a paso1. Se utilizan los símbolos “a”, “b”, “R” y “S”. Estos sirven para generar

automáticamente cadenas aleatorias, en las que se puede establecer la longitud máxima y cuáles símbolos entran en la cadena.

2. Para activar las reglas estocásticas, se pulsa el botón “Mode, Stochastic” en el menú principal de GDesign. Luego se entra en la ventana “Grammar”.

3. Se inserta el axioma, los parámetros de “R” y “S”, y las reglas. Axioma = R R = 6, a, b (serán 6 símbolos al azar entre “a” y “b”) S = 6, a, b (igual, serán 6 símbolos al azar entre “a” y “b”)4. Como se ha escogido el modo estocástico, se requiere colocar para cada

símbolo la regla normal y la regla estocástica. Esta se pone pulsando “Expand” en la casilla de las reglas de “a” y “b”.

5. Reglas de “a” y “b”: normal: a R; estocástica: a S normal: b S; estocástica: b R6. Se asigna el objeto esfera roja a “a” y el azul a “b”.7. Se tiene así un doble mecanismo aleatorio: el “R” del axioma genera al

azar una secuencia de “a” y “b”, luego estos símbolos se convierten por reglas estocásticas en “R” o “S”, cada una de las cuales en el último paso se transforma en otras secuencias aleatorias de “a” y “b”. De esta mane-ra, es muy difícil que una secuencia se pueda repetir en el corto plazo.

Libro GENERATIVO-plotter.indb 131Libro GENERATIVO-plotter.indb 131 13/01/2016 12:06:0713/01/2016 12:06:07

Page 132: Libro GENERATIVO-plotter

132 Umberto Roncoroni

Las impostaciones de las reglas y de los objetos para los pasos 1, 2, 3, 4, 5, 6 y 7

8. Se pulsa “Close and Launch System” y, en la ventana principal, se posicio-na el cursor en la esquina superior izquierda.

9. Sin pulsar “Clear”, se mueve el cursor un poco más abajo, se pulsa el ícono “+” inferior y se lanza otra vez el sistema. Repetir este paso varias veces para visualizar un cierto número de secuencias.

La ventana de diseño en la cual se muestra los pasos 8 y 9

Libro GENERATIVO-plotter.indb 132Libro GENERATIVO-plotter.indb 132 13/01/2016 12:06:0713/01/2016 12:06:07

Page 133: Libro GENERATIVO-plotter

Manual de diseño generativo 133

Ejercicio 9. Seudocódigo para el movimiento browniano

En este ejercicio, se intentará generar el modelo en un lenguaje de progra-mación genérico (seudocódigo). Se desarrollará un seudocódigo para grafi car el movimiento browniano en dos dimensiones. Se deja al lector la tarea de implementar el algoritmo en el lenguaje de su preferencia, por ejemplo, utili-zando la plantilla de la espiral en C# del tutorial anterior.

Difi cultad: fácilObjetivos• Comprender el mecanismo algorítmico.• Aprender el uso del seudocódigo.Paso a paso1. En primer lugar, se deben defi nir las variables. TamañoX, TamañoY

guardan las dimensiones del área de dibujo; Dirección y Longitud, los datos del movimiento; PosX y PosY, la posición actual; NewX y NewY, la nueva posición. Para indicar los comentarios, se ponen al comienzo los símbolos “//” como se hace en C o C#.

2. Seudocódigo: se inicializan las variables.//defi nimos el área de dibujo en píxelesTamañoX = 640, TamañoY = 480//el punto de partida está en el centro del área de dibujoPosX = TamañoX/2, PosY = TamañoY/2

3. Calcular el movimiento.//calculamos el movimientoDirección = random(1,6)Longitud = 5 * random(1,6) //min 5, máx 30 píxelesSi Dirección = 1, entonces, NewX = PosX, NewY = PosY + Longitud //hacia arribaSi Dirección = 2, entonces, NewX = PosX + Longitud, NewY = PosY //hacia derechaSi Dirección = 3, entonces, NewX = PosX, NewY = PosY - Longitud //hacia abajoSi Dirección = 4, entonces, NewX = PosX - Longitud, NewY = PosY //hacia izquierdaSi Dirección = 4, entonces, NewX = PosX + Longitud, NewY = PosY + Longitud//diag. der.- arriba // así sucesivamente para las 3 direcciones que faltan

4. Se dibuja el segmento hacia el nuevo punto. //dibujamos la línea desde la posición original a la nueva

DibujaLinea(PosX, PosY) - (NewX, NewY) //la nueva posición se convierte en el nuevo punto de partida PosX = NewX, PosY = NewY

5. Se repite el proceso desde la instrucción 3; entonces, las instrucciones de la 3 a la 4 van en un bucle.

Libro GENERATIVO-plotter.indb 133Libro GENERATIVO-plotter.indb 133 13/01/2016 12:06:0813/01/2016 12:06:08

Page 134: Libro GENERATIVO-plotter

134 Umberto Roncoroni

Ejercicio 10. Movimiento browniano con los sistemas-L

Con los sistemas-L se realizará una simulación del movimiento browniano en las tres dimensiones. Estos sistemas permiten una simulación relativamente simple e inmediata. Nos apoyaremos en lo aprendido en el ejercicio anterior, entonces, iré directamente al meollo de la cuestión. La gramática base se pue-de modifi car para ulteriores aplicaciones.

Difi cultad: medianamente difícilObjetivos• Visualizar el movimiento browniano en 3D.• Profundizar en el uso de las gramáticas generativas.• Controlar los procesos aleatorios.

Paso a paso1. Se utilizan las reglas estocásticas, como ya se vio en el ejercicio ante-

rior. Se usan también los símbolos “R” y “S”, “q” y el símbolo “@”, que devuelve un ángulo al azar. Su rango se pone en la ventana “Options”. También se necesitan los símbolos “P”, “T”, “D” para los ejes de rotación.

2. Se impostan las cadenas “R” y “S”, ambas con símbolos “a”, pero con longitud de 4 y 8, activando la opción longitud aleatoria: “Allow random length”. Esto dará como resultado recorridos de diferente longitud.

3. Se alterna una sustitución de “a” con rotaciones aleatorias, empleando la regla estocástica y una sustitución con “R”, que genera una línea de longitud aleatoria.

4. En la primera regla de “a” se coloca la dirección aleatoria utilizando los ejes de rotación “P”, “T”, “D” y ángulos al azar con el símbolo “@”. Se impostan las reglas estocásticas para variar ulteriormente las direccio-nes, por ejemplo, donde la regla estándar de “a” es “aT@a” se pone como alternativa “aP@a”, etcétera.

5. Axiomas y reglas: Axioma = “a” Regla 1 normal de a aT@a; estocástica a aP@a6. En la segunda regla de “a”, se utiliza el símbolo “R” para generar una

secuencia de longitud aleatoria de símbolos “a”, como “a”, “aaa”, “aa”, “aaaa”, etcétera.

Regla 2 normal de a R; estocástica a R (se podría aquí utilizar “S”)7. Luego se alterna la dirección con la longitud: Regla 3 normal de a aP@a; estocástica a aD@a Regla 4 normal de a R; estocástica a R Regla 5 normal de a aD@a; estocástica a aT@a Regla 6 normal de a R; estocástica a R Etcétera.

Libro GENERATIVO-plotter.indb 134Libro GENERATIVO-plotter.indb 134 13/01/2016 12:06:0813/01/2016 12:06:08

Page 135: Libro GENERATIVO-plotter

Manual de diseño generativo 135

Reglas y rendering del modelo en POV-Ray. Umberto Roncoroni, 2011.

Ejercicio 11. Perfi l de una montaña en 2D con los sistemas-L

En este ejercicio, se simulará el perfi l de una montaña con los sistemas-L ju-gando con un movimiento horizontal y pequeñas rotaciones al azar. Luego de desarrollar el ejercicio, dejo al lector la tarea de estudiar una solución diferente.

Difi cultad: medianamente difícilObjetivos• Realizar una simulación de una forma natural con las gramáticas gene-

rativas.• Analizar una forma desde el punto de vista generativo.Paso a paso1. Se toma como punto de partida la fotografía de una montaña para hallar

la línea que diseña la forma de las cumbres y utilizarla como modelo.

Libro GENERATIVO-plotter.indb 135Libro GENERATIVO-plotter.indb 135 13/01/2016 12:06:0813/01/2016 12:06:08

Page 136: Libro GENERATIVO-plotter

136 Umberto Roncoroni

Valle de Lunahuaná, Perú. Foto de Umberto Roncoroni, 2008.

2. Luego se imposta la gramática generativa. La línea será en 2D; por lo tanto, se puede utilizar solo un eje de rotación. Para hacer la simulación con GDesign se emplearán las reglas estocásticas para escoger la rota-ción en sentido horario o antihorario y “@” para determinar la magnitud de la rotación al azar.

La gramática con las reglas estocásticas de “a”. La longitud de la regla estocástica es menor (solo 1 “a”).

3. Axioma = “P+a—a++a—a++a—a++a—a++a” Regla 1 normal de a aa++@--aa; estocástica a a++@--a Regla 2 normal de a aa--@++aa; estocástica a a--@++a Regla 3 normal de a aa++@--aa; estocástica a a++@--a

Libro GENERATIVO-plotter.indb 136Libro GENERATIVO-plotter.indb 136 13/01/2016 12:06:0913/01/2016 12:06:09

Page 137: Libro GENERATIVO-plotter

Manual de diseño generativo 137

Ejercicio 12. El ruido de Perlin con Photoshop

El azar, en sí, genera solamente estructuras caóticas, pero en el diseño genera-tivo la idea es aplicar el azar de modo controlado para generar variaciones res-catables. El algoritmo de Perlin3 es un proceso para generar ruido coherente, es decir, ruido suavizado y con una suerte de regularidad (Ebert, 1994): “Para simular los fenómenos naturales, en la mayoría de los casos es casi imposible o impráctico desarrollar modelos físicamente precisos. Los modelos procedu-rales son una alternativa manejable” (p. 1).

3 Ken Perlin desarrolló este algoritmo en los años ochenta para los efectos especiales de la película Tron (1982). Véase htt p://mrl.nyu.edu/~perlin/

Líneas random con GDesign. Umberto Roncoroni, 2011.

Las texturas de mármol, óxido y humo se pueden simular en modo procedural.

Libro GENERATIVO-plotter.indb 137Libro GENERATIVO-plotter.indb 137 13/01/2016 12:06:1013/01/2016 12:06:10

Page 138: Libro GENERATIVO-plotter

138 Umberto Roncoroni

El ruido de Perlin se utiliza para generar texturas procedurales, como las que aparecen en las fi guras, terrenos fractales y otros efectos con un aspecto natural, es decir, aleatorio, pero con un cierto orden y regularidad.

Mapa de bits con ruido de Perlin y una mesh 3D que utiliza los valores del mapa de bits como alturas

Rendering impresionista que utiliza fi ltros parecidos al ruido de Perlin. Software e imagen de Umberto Roncoroni, 2001.

Aquí se ve la manera en que se aplica a la generación de paisajes fractales, pues, como el lector seguramente habrá

visto, el algoritmo de Perlin tiene un carácter bastante recursivo.

Se trata de estructuras ordenadas, pero con un alto grado de diversidad y variaciones, pues no hay un pedazo de mármol ni una explosión igual a otra.

Libro GENERATIVO-plotter.indb 138Libro GENERATIVO-plotter.indb 138 13/01/2016 12:06:1113/01/2016 12:06:11

Page 139: Libro GENERATIVO-plotter

Manual de diseño generativo 139

Este algoritmo, si se quiere traducir en un código efi ciente y compacto, pue-de parecer matemáticamente complejo y, con seguridad, requiere una progra-mación adecuada, pero en realidad es simple y, renunciando a la velocidad, se puede implementar fácilmente. Es posible comenzar simulando el proceso de Perlin con un editor de imágenes digitales, utilizando el fi ltro mosaico y el fi ltro blur. Luego se mezclan las imágenes con diferentes transparencias.

Difi cultad: medianamente difícilObjetivos• Comprender el algoritmo de Perlin.• Implementar el algoritmo en C#.Paso a paso1. Primero, se genera una imagen bitmap de 100 x 100 píxeles y adentro se

copia un pedazo de una imagen cualquiera. 2. Se crea otro archivo de 100 x 100 y se copia en el background la primera

imagen. Se aplica el fi ltro noise.3. Se duplica el background seis veces. Se obtienen siete capas. Se deja el back-

ground así como está, a las otras se aplica el fi ltro mosaico con bloques de 2 x 2, 4 x 4, etcétera, y se difumina con intensidad creciente. La capa con los bloques más grandes será aquella con el mayor difuminado.

4. A cada capa se le da un nivel de transparencia parecido a los pesos indi-cados en la fi gura de la página 140.

5. Se mezclan estas capas utilizando diferentes niveles de transparencia. Esto signifi ca que la imagen fi nal es un “sándwich” de los siete mapas de bits; la receta requiere que cada imagen sea mezclada en proporciones diferentes. Debajo de cada imagen se encuentra el tamaño del mosaico y el nivel de transparencia.

Libro GENERATIVO-plotter.indb 139Libro GENERATIVO-plotter.indb 139 13/01/2016 12:06:1213/01/2016 12:06:12

Page 140: Libro GENERATIVO-plotter

140 Umberto Roncoroni

Fondo Capa 1 Capa 2 Capa 3 Capa 4 Capa 5 Capa 6

1 x 1 2 x 2 4 x 4 8 x 8 16 x 16 32 x 32 64 x 64

100 % 50 % 25 % 12 % 6 % 3 % 1 %

La mezcla ponderada es el ruido de Perlin

Ejercicio 13. Programar el ruido de Perlin en C#

El objetivo de este ejercicio es generar el algoritmo y el código en C# para ob-tener el ruido de Perlin. Se mostrarán solo las partes del código más importan-tes. El lector puede comenzar con la plantilla ya utilizada anteriormente para la espiral y completar el programa por su cuenta.

Difi cultad: difícilObjetivo• Implementar el ruido de Perlin en C#.Paso a paso1. En primer lugar, hay que crear un arreglo de valores aleatorios, por

ejemplo, de luminosidad entre 0 y 255. Este es el código en C# para gene-rar el ruido, esto es, un patrón aleatorio de píxeles blancos y negros.

public void UNoise(){

double [,] NoiseArray; //matriz que memoriza los valores //aleatoriosint x; //posiciones en el arregloint y;int numx = 100; //máx. elementos horizontales de la matrizint numY = 100; //máx. elementos verticales de la matrizRandom rnd = new Random(); //generador de números aleatorios

Libro GENERATIVO-plotter.indb 140Libro GENERATIVO-plotter.indb 140 13/01/2016 12:06:1213/01/2016 12:06:12

Page 141: Libro GENERATIVO-plotter

Manual de diseño generativo 141

//creando el arreglo de 100 x 100NoiseArray = new int [numx, numy];

//bucle para poblar el arreglo 0 negro, 1 blancofor (y = 0; y < numy - 1; y++){

for (x = 0; x < numx - 1; x++){ NoiseArray[x, y]= rnd.next(0, 1)}

}}

2. Desde este arreglo se obtienen las diferentes copias con distintos tama-ños del píxel, que Perlin denominó “octavas”. Cada octava es el mismo conjunto de ruido, es decir, el mismo arreglo bidimensional producido con el código anterior, pero a menor resolución. Esto se hace de acuerdo con este procedimiento. Se lee el primer arreglo, que es de 1 x 1 de 2 en 2, de 4 en 4, etcétera, hasta 6:

k = 1 k = 2 k = 3 k = 4 k = 5 k = 6 y * 2, x * 2 y * 4, x * 4 y * 8, x * 8 y * 16, x * 16 y * 32, x * 32 y * 64, x * 64

2k es la longitud de onda de la octava: 2, 4, 8, 16, 32, 64.

1/2k es la frecuencia.

Para esto hay que leer el original cada 2 píxeles (o cada 4, 8, etcétera). En la copia, este valor se pega dos veces en horizontal y vertical (o 4, 8, etcétera). En la práctica, los intervalos entre los valores en la lectura se rellenan poniendo en los espacios vacíos una copia del mismo valor. Se deben crear así siete arreglos.

double [,] ArrayCopia; //matriz que memoriza la copia de NoiseArray[]//creando el arreglo de 100 x 100ArrayCopia = new int [numx, numy];

//bucle para copiar el arreglo de 2 en 2 for (y = 0; y < numy - 1; y+ = 2){

for (x = 0; x < numx - 1; x+ = 2){

ArrayCopia[x, y] = NoiseArray[x, y];//llenando los vacíosArrayCopia[x + 1, y] = NoiseArray[x, y];ArrayCopia[x, y + 1] = NoiseArray[x, y];ArrayCopia[x + 1, y + 1] = NoiseArray[x, y];

}}

Libro GENERATIVO-plotter.indb 141Libro GENERATIVO-plotter.indb 141 13/01/2016 12:06:1613/01/2016 12:06:16

Page 142: Libro GENERATIVO-plotter

142 Umberto Roncoroni

3. Luego se suaviza interpolando linealmente cada píxel con los 8 píxeles más cercanos (antialiasing). Es necesario crear un bucle que elabora cada elemento del arreglo. En geometría, para la interpolación lineal se utili-zan dos puntos, (xa, ya) y (xb, yb), para obtener un tercer punto interpola-do (x, y) conociendo x, a partir de la siguiente fórmula:

)

b aa a

b a

(y y )y = y + (x x )(x x

Una implementación puede ser esta, donde se pasa un valor del arreglo y el valor contiguo con lo que se quiere interpolar. Hay que hacer esta operación para todos los valores alrededor del punto que se está elabo-rando, que son ocho.

public fl oat LinearInt(fl oat n1, fl oat n2){

fl oat a = 0.5; //si a es 0 el valor está cerca de n1, si a es 1 el // valor está cerca de n2fl oat V; //el valor interpoladoV = (1 - a) * n1 + a * n2;return V;

}

La interpolación lineal es rápida y sencilla, pero no muy precisa. Es me-jor utilizar la interpolación con coseno:

public double CosineInt(double n1, double n2, double alpha){

double ft;double f;double V; //el valor interpoladoft = alpha * 3.1415927; //el ángulo x expresado en grados f = (1.0 - Math.cos(ft) * 0.5;V = n1 * (1.0 - f) + n2 * f;return V;

}

4. Finalmente, se extrae un promedio ponderado de todos los arreglos creados. El peso que se le da a cada arreglo se denomina amplitud. El valor 50 (máximo) es la persistencia.

Arreglo 1: 50 %; Arreglo 2: 25 %; Arreglo 3: 12 %; Arreglo 4: 6 %; Arreglo 5: 3 %; Arreglo 6: 1.5 %; Arreglo 7: 0.75 %.

Esto signifi ca crear un nuevo arreglo, al que se le llama PerlinNoise[n, n] (n indica el número de puntos horizontales y verticales del arreglo),

Libro GENERATIVO-plotter.indb 142Libro GENERATIVO-plotter.indb 142 13/01/2016 12:06:1613/01/2016 12:06:16

Page 143: Libro GENERATIVO-plotter

Manual de diseño generativo 143

donde se guardan las mezclas de los puntos de los siete arreglos a través de un promedio ponderado. Dados los valores indicados anteriormente, esta suma tiene que ser dividida por 98.25. La fórmula es algo parecida:

PerlinNoise = (Arreglo1 * 50 + Arreglo2 * 25 + Arreglo3 * 12 + … + Arreglo7 * 0.75)/98.25

Para visualizar la imagen se puede utilizar la plantilla de la espiral y pintar cada píxel del PictureBox con el valor del arr eglo.

Libro GENERATIVO-plotter.indb 143Libro GENERATIVO-plotter.indb 143 13/01/2016 12:06:1713/01/2016 12:06:17

Page 144: Libro GENERATIVO-plotter

Libro GENERATIVO-plotter.indb 144Libro GENERATIVO-plotter.indb 144 13/01/2016 12:06:1713/01/2016 12:06:17

Page 145: Libro GENERATIVO-plotter

Manual de diseño generativo 145

La autosimilaridad, la recursividad y los fractales son propiedades y procesos naturales y matemáticos que ofrecen al artista generativo importantes recur-sos y técnicas. Los fractales generan formas complejas, pero son procesos de-terministas; sin embargo, planteando adecuadamente sus parámetros, ofrecen un notable poder generativo con un cierto grado de emergencia.

El objetivo de los ejercicios de este tutorial es brindar al lector los linea-mientos generales de los procesos fractales, así como algunos trucos con va-rias técnicas y herramientas de programación para potenciar su creatividad generativa. Para esto, después de haber delineado los aspectos principales del mundo de los fractales, nos aproximaremos a la generación de estas fi guras, comenzando por diseñar formas autosimilares con los sistemas-L. Luego, para profundizar un poco más en los aspectos matemáticos, se diseñarán fractales en VBasic y un objeto complejo obtenido por sustituciones recursivas en C#.

Al terminar este tutorial, el lector tendrá los conocimientos para:• Comprender las posibilidades estéticas de los fractales.• Programar procesos autosimilares.• Combinar procesos fractales naturales y artifi ciales.• Diseñar procesos recursivos de modo creativo.

3.1 LAS FORMAS FRACTALES

La autosimilaridad es la similitud entre la forma general y la forma de los de-talles de un elemento natural o artifi cial, orgánico o inorgánico.

Esta característica se debe a la repetición y la recursividad que caracterizan ciertos procesos naturales, así como también a la evolución y la adaptación, pues los fractales presentan soluciones espaciales que resuelven muchos pro-blemas demasiado complejos para las geometrías tradicionales. El concepto fractal es una alternativa a la geometría euclidiana, pues, a través de sus prin-

Las formas fractales • El algoritmo del juego del caos • El copo de nieve de Koch con los sistemas-L • El

triángulo de Sierpinski con los sistemas-L • Otras fi guras autosimilares • El conjunto de Mandelbrot en

VBasic • Sustitución recursiva en C#

La autosimilaridady los fractales

Tutorial

3

Libro GENERATIVO-plotter.indb 145Libro GENERATIVO-plotter.indb 145 13/01/2016 12:06:1713/01/2016 12:06:17

Page 146: Libro GENERATIVO-plotter

146 Umberto Roncoroni

cipios, permite estudiar y reproducir la complejidad y la irregularidad (frac-tus). Las formas naturales autosimilares y fractales son muchísimas: plantas y árboles, montañas, ríos, nubes, entre otros (Frame y Mandelbrot, 2002).

Un ejemplo de forma autosimilar es el helecho gigante. La forma de cada rama del helecho es una copia

de la forma del helecho completo. Foto de Umberto Roncoroni, 2013.

Desde el punto de vista artístico, las formas autosimilares se conocen desde la antigüedad; por ejemplo, se encuentran aspectos fractales en el arte decora-tivo o en la arquitectura de culturas de diferentes partes del mundo.

Los sistemas-L son una aplicación que se basa en los IFF. Umberto Roncoroni, GDesign 2.2, 2013.

Libro GENERATIVO-plotter.indb 146Libro GENERATIVO-plotter.indb 146 13/01/2016 12:06:1713/01/2016 12:06:17

Page 147: Libro GENERATIVO-plotter

Manual de diseño generativo 147

Patrón decorativo árabe. Umberto Roncoroni, 2013. Nótese el motivo de la estrella de ocho puntas que se

repite en varias partes del diseño.

Matemáticamente, los fractales son ecuaciones recursivas generalmente compuestas por números complejos; se pueden obtener tanto informática-mente como con procesos a mano alzada, usando lápiz y papel.

Desde el punto de vista científi co, los fractales eran conocidos desde la an-tigüedad, pero requerían demasiados cálculos para un estudio exhaustivo; en efecto, matemáticos como Sierpinski y Koch descubrieron varias fi guras auto-similares ya en los años cuarenta, pero los fractales propiamente dichos fue-ron abordados sistemáticamente en los años sesenta por Benoît Mandelbrot, matemático francés que trabajaba en el gigante informático IBM.

Libro GENERATIVO-plotter.indb 147Libro GENERATIVO-plotter.indb 147 13/01/2016 12:06:1813/01/2016 12:06:18

Page 148: Libro GENERATIVO-plotter

148 Umberto Roncoroni

Construcción de un terreno fractal con un proceso recursivo

Hoy, los fractales han pasado desde el rango de curiosidad matemática a ser una poderosa herramienta para numerosas aplicaciones informáticas y artísticas, como la compresión de datos o la criptografía, y la simulación de fenómenos naturales. Estas aplicaciones son necesarias para los procesos ge-nerativos que se aplican a los efectos especiales en el cine y los videojuegos, como la generación de mundos virtuales, el estudio de plantas y árboles, el diseño de texturas, los efectos de image processing, entre otros.

Los procesos recursivos, entonces, se prestan a la simulación de estas for-mas y son valiosas herramientas para varias aplicaciones. Como se verá en los ejercicios, se implementan fácilmente por medio de cualquier lenguaje de programación y de los sistemas-L.

Libro GENERATIVO-plotter.indb 148Libro GENERATIVO-plotter.indb 148 13/01/2016 12:06:1913/01/2016 12:06:19

Page 149: Libro GENERATIVO-plotter

Manual de diseño generativo 149

Ejercicio 14. El algoritmo del juego del caos

El juego del caos, diseñado por Michael Barnsley en 1988, es un modo intuitivo para generar un fractal por medio de transformaciones afi nes recursivas que se denominan IFF, iterated function systems. En geometría, una transformación afín o aplicación afín consiste en una transformación lineal (escala, rotación, etcétera) seguida de una traslación:

X1 = aX + bY + e; Y1 = cX + dY + f; donde a, b, c, d, e y f son los coefi cientes.En este tutorial, se presenta al lector el algoritmo del juego del caos y sus

principios matemáticos. El proceso se puede generalizar por cualquier con-junto de puntos, aunque no siempre genera formas ordenadas. Quizás al fi nal de este tutorial el lector pueda implementar el proceso por su cuenta.

Difi cultad: bastante fácilObjetivos• Comprender el proceso de las sustituciones afi nes.• Diseñar el algoritmo del juego del caos.Paso a paso1. Primero, se dibuja en el papel tres puntos que forman los vértices de

un triángulo equilátero (pero se puede comenzar de otra forma, como ya se dijo).

2. Luego se dibuja un punto 4 en una posición al azar.3. Después se escoge al azar uno de los primeros tres vértices y se calcula

el punto 5, que es el punto medio entre el vértice escogido al azar y el punto 4.

4. Se elige nuevamente uno de los tres primeros vértices al azar y se calcu-la el punto 6, que es el promedio entre el vértice y el punto 5.

5. Y así sucesivamente. El juego del caos se puede variar si se utiliza, en lugar del punto medio,

un conjunto de cuatro transformaciones, que durante el proceso se va aplicando a todos los puntos que se generan gracias a un azar controla-do por coefi cientes de probabilidad:

Transformaciones Probabilidad X1 = 0X + 0Y + .16 Y1 = 0X + 0Y + 0 .01 X1 = .85X + .04Y + 0 Y1 = -.04X + .85Y + 1.6 .85 X1 = .2X - .26Y + 0 Y1 = .23 X + .22Y + 1.6 .07 X1 = -.15X + .28Y + 0 Y1 = .26X + .24Y + .44 .07

Calculando y trazando el gráfi co, se obtiene la conocidísima hoja dehelecho:

Libro GENERATIVO-plotter.indb 149Libro GENERATIVO-plotter.indb 149 13/01/2016 12:06:2013/01/2016 12:06:20

Page 150: Libro GENERATIVO-plotter

150 Umberto Roncoroni

Gráfi co por computadora Helecho natural

Ejercicio 15. El copo de nieve de Koch con los sistemas-L

Los sistemas-L son aptos para generar las fi guras autosimilares y fractales, pues son procesos de sustitución recursivos. El copo de nieve de Koch es, qui-zás, la forma fractal más conocida y fácil de realizar; además, puede servir como base para elaborar muchas otras formas complejas y atractivas.

Ejemplos de copos de nieve

Libro GENERATIVO-plotter.indb 150Libro GENERATIVO-plotter.indb 150 13/01/2016 12:06:2013/01/2016 12:06:20

Page 151: Libro GENERATIVO-plotter

Manual de diseño generativo 151

Difi cultad: fácilObjetivos • Comprender un proceso recursivo.• Implementar un algoritmo fractal.Paso a paso1. En este ejercicio, se utiliza el siguiente vocabulario: el símbolo no termi-

nal “a”, el símbolo “P” para fi jar el eje de rotación en Z, y los símbolos “+” y “-” para rotar en sentido horario y antihorario. El valor del ángulo es 60 grados.

2. Se grafi ca el proceso a mano alzada para comprender su desarrollo.

3. Axioma = “a” a “aP+a—a+a” 4. Se copia la regla en todas las iteraciones.5. Se asigna al símbolo “a” el objeto línea.6. En la ventana principal se colocan seis iteraciones, el tamaño del objeto

entre 5 y 10, el ángulo a 60 grados.

Análisis a mano alzada del proceso. Se comienza con un solo segmento. Para hacer el hexágono hay que modifi car el

axioma; las reglas son las mismas.

Libro GENERATIVO-plotter.indb 151Libro GENERATIVO-plotter.indb 151 13/01/2016 12:06:2113/01/2016 12:06:21

Page 152: Libro GENERATIVO-plotter

152 Umberto Roncoroni

Axioma y reglas Copo de nieve de Koch con GDesign

Utilizando un símbolo adicional y variando la regla y los parámetros, es posible obtener variantes del diseño de Koch. Dejo esta posibilidad a la investigación del lector.

Ejercicio 16. El triángulo de Sierpinski con los sistemas-L

Este famoso fractal debe su nombre al matemático Waclaw Sierpinski, quien lo describió en 1915. Sin embargo, cabe recordar que esta fi gura autosimilar era conocida desde el Medioevo, como muestran los mosaicos de los Cosmati de la catedral de Anagni en Italia.

Detalle de un mosaico de la catedral de Anagni (1200)

El triángulo de Sierpinski se puede obtener con el principio del juego del caos; su implementación con los sistemas-L requiere un proceso un poco más largo que el anterior.

Libro GENERATIVO-plotter.indb 152Libro GENERATIVO-plotter.indb 152 13/01/2016 12:06:2113/01/2016 12:06:21

Page 153: Libro GENERATIVO-plotter

Manual de diseño generativo 153

Difi cultad: moderadamente difícilObjetivos• Comprender el proceso generativo del triángulo de Sierpinski.• Perfeccionar la técnica de los sistemas-L.Paso a paso1. Para generar el triángulo de Sierpinski, se utilizan dos símbolos: “a” y

“b” (el “b” para evitar que se dupliquen segmentos sobrepuestos), y los símbolos para las rotaciones en Z que se han usado en el ejercicio anterior.

2. Se dividen en dos los lados del triángulo equilátero cada vez. El fractal no se construye por subdivisión interna, sino por multiplicación. Se re-comienda experimentar el proceso a mano alzada.

Prueba a mano alzada del proceso y de las reglas

3. Axioma y reglas. El axioma es un triángulo equilátero: Axioma = “P-aa++aa++aa”. a b[P++a++a]b[P++a++a] b bb

El triángulo de Sierpinski con GDesign

Libro GENERATIVO-plotter.indb 153Libro GENERATIVO-plotter.indb 153 13/01/2016 12:06:2113/01/2016 12:06:21

Page 154: Libro GENERATIVO-plotter

154 Umberto Roncoroni

Ejercicio 17. Figuras autosimilares con los sistemas-L

Se propone en este ejercicio una guía para realizar varias fi guras fractales con los sistemas-L.

Difi cultad: fácilObjetivo• Dibujar fi guras fractales.Paso a paso

Aquí se plantea otra forma de generar el triángulo de Sierpinski como cur-va continua; el ángulo es siempre 60°:1. Axioma y reglas: Axioma = “P<>a” a “b-a-b” b “a+b+a“

Las reglas

El gráfi co del sistema-L después de aplicar la regla 3 y después la regla 5, respectivamente

Libro GENERATIVO-plotter.indb 154Libro GENERATIVO-plotter.indb 154 13/01/2016 12:06:2113/01/2016 12:06:21

Page 155: Libro GENERATIVO-plotter

Manual de diseño generativo 155

2. Y otra fi gura autosimilar muy conocida es el fractal del dragón:

La gramática del sistema-L del dragón El dragón después de la sexta sustitución recursiva

Ejercicio 18. El conjunto de Mandelbrot en VBasic

Matemáticamente, el conjunto de Mandelbrot se genera desarrollando y grafi -cando la iteración de la ecuación compleja:

Zn + 1 = Zn2 + C

Z, C son números complejos; se tiene que Z = Z + Zi, C = C + Ci, la condición inicial es Z = 0 + 0i y a C se le asignan todos los puntos del plano complejo. La parte real e imaginaria de estos números corresponden a las coordenadas X y Y de los puntos que forman el conjunto.

Difi cultad: difícilObjetivos• Comprender el algoritmo para generar el conjunto de Mandelbrot.• Escribir el código en VBasic1 para grafi car el conjunto.Paso a paso1. Para diseñar el conjunto de Mandelbrot en VBasic se debe crear un Form

y un objeto gráfi co sobre el cual dibujar, que puede ser un objeto Pictu-reBox (que denominamos Picture1). También es necesario crear un bo-tón donde colgar el código. Naturalmente, hay que trabar con variables double (doble precisión). Asimismo, revisar cómo se trabaja con los nú-meros complejos, es decir, con parte real y parte imaginaria.

1 El algoritmo se puede traducir fácilmente en C++, Java o en C#. He decidido mantener mi programa original en VBasic 6.0 porque es más simple para explicar.

Libro GENERATIVO-plotter.indb 155Libro GENERATIVO-plotter.indb 155 13/01/2016 12:06:2213/01/2016 12:06:22

Page 156: Libro GENERATIVO-plotter

156 Umberto Roncoroni

2. El gráfi co se genera porque para cada punto de la imagen I, J se determi-na si pertenece o no al conjunto de Mandelbrot; en este caso, se pinta de blanco; si no, de negro (o en tonos de gris o, naturalmente, si se quiere, en colores).

3. En el código C1, C2, X1 y X2 son las partes reales e imaginarias de C y Z. I y J son los contadores que exploran el mapa de bits de 600 x 600 píxeles. El lector debe pegar el código en el método click() del botón.

Private Sub Mandel_Click() Dim C1 As Double, C2 As Double Dim X As Double, Y As Double, X1 As Double, Y1 As Double Dim R As Double For I = 1 To 600 For J = 1 To 600 C1 = -1.95 + 4 * I/1000 C2 = 1.3 - 4 * J/1000 X = C1: Y = C2 For N = 1 To 35 X1 = X * X - Y * Y + C1 Y1 = 2 * X * Y + C2 R = X1 * X1 + Y1 * Y1 If R > 5 Then Red = 0: Green = 0: Blue = 0 N = 35 Else Red = 255: Green = 255: Blue = 255 End If X = X1 Y = Y1 Next N Picture1.PSet (I, J), RGB(Red, Green, Blue) Next J Next IEnd Sub

Libro GENERATIVO-plotter.indb 156Libro GENERATIVO-plotter.indb 156 13/01/2016 12:06:2213/01/2016 12:06:22

Page 157: Libro GENERATIVO-plotter

Manual de diseño generativo 157

Esquema del proyecto Mandelbrot

El conjunto a diferentes escalas. Software e imagen de Umberto Roncoroni.

Libro GENERATIVO-plotter.indb 157Libro GENERATIVO-plotter.indb 157 13/01/2016 12:06:2213/01/2016 12:06:22

Page 158: Libro GENERATIVO-plotter

158 Umberto Roncoroni

Ejercicio 19. Sustitución recursiva en C#

A continuación, se presenta un ejercicio de una variante de los IFS, los proce-sos por sustitución, parecidos a los sistemas-L.

Se comienza por un punto que es el centro de un cubo de lado X. Luego, cada uno de los 8 puntos será el centro de 8 cubos de lado X/2. Y estos 64 vérti-ces serán los centros de otros 64 cubos de lado X/4, y así sucesivamente. El pro-ceso da como resultado un cubo formado por miles de cubos más pequeños. Este es el algoritmo básico; como es obvio, si en lugar de 8 puntos simétricos se varía el esquema de la subdivisión y si se escogen oportunamente los paráme-tros, se pueden obtener variaciones de formas muy complejas. Se trata de un trabajo bastante largo; el lector podría, eventualmente, regresar a este ejercicio después de haber resuelto los demás tutoriales, sobre todo el de la erosión, que se propone en el tutorial 5 de la tercera parte.

La principal difi cultad es el manejo dinámico de los arreglos donde guar-dar los datos geométricos:

• Utilizar dos arreglos: el primero crece por cada generación, el segundo es un arreglo temporal donde se guardan los nuevos vértices; estos se copian al fi nal en el primer arreglo y así sucesivamente.

• Los arreglos contienen para cada punto las coordenadas X, Y, Z y el ta-maño del cubo que decrece en cada generación.

Subdivisión asimétrica con diferentes parámetros. Luego se puede activar la subdivisión aleatoria, es decir, se subdividen ciertos

vértices y otros no. Se asignan diferentes colores a estos cubos, dependiendo de cuántas veces han sido subdivididos, lo que es

un criterio para asignar el color válido como cualquier otro (véase la fi gura de la izquierda). Umberto Roncoroni, agosto de 2013.

Libro GENERATIVO-plotter.indb 158Libro GENERATIVO-plotter.indb 158 13/01/2016 12:06:2313/01/2016 12:06:23

Page 159: Libro GENERATIVO-plotter

Manual de diseño generativo 159

Difi cultad: difícilObjetivos• Implementar un algoritmo generativo.• Perfeccionar la técnica de programación.• Experimentar con el diseño paramétrico.Paso a paso1. En primer lugar, se plantea el algoritmo con precisión:

a. Generar en el primer arreglo un punto en posición 0, 0, 0. b. Alrededor de cada punto del arreglo 1 (por ahora hay un solo punto),

se generan 8 puntos, para formar los 8 vértices de un cubo. Cada nue-vo punto dista, por ejemplo, 25 unidades del punto original.

c. Guardar estos 8 puntos en el arreglo 2 (el arreglo temporal).d. En el arreglo 1, sustituir el punto original con los 8 puntos del arreglo

temporal; el arreglo 1 ahora contiene 8 puntos.e. Regresar al punto b, generando 8 puntos para cada uno de los puntos

del arreglo 1 (que ahora son 8). La distancia será la mitad de la ante-rior, 12.5 unidades.

f. Guardar los 64 puntos que así se han generado en el arreglo 2.g. En el arreglo 1, sustituir los 8 puntos con los respectivos puntos del

arreglo 2; así el arreglo 1 tendrá 64 puntos.h. Regresar al punto b y repetir el proceso.

2. Ahora se muestra la generación del código en C# paso a paso:a. Utilizando el Wizard, generar una aplicación Windows nueva.b. En el Form1, que se crea automáticamente, establecer un botón; den-

tro de su método click(), se escribe el código del proceso de subdivi-sión que se mostrará enseguida.

c. Crear una clase Punto, que es el vértice, con X, Y, Z y su magnitud.

public class Punto {

public double X = new double(); public double Y = new double(); public double Z = new double(); public double Dist = new double(); // constructor public Punto() {

X = 0; Y = 0; Z = 0; Dist = 0;

} }

Libro GENERATIVO-plotter.indb 159Libro GENERATIVO-plotter.indb 159 13/01/2016 12:06:2413/01/2016 12:06:24

Page 160: Libro GENERATIVO-plotter

160 Umberto Roncoroni

d. Se comienza a escribir el código en el método click() del botón, inicia-lizando las variables.

private void button4_Click(object sender, EventArgs e){

//random sudvision with deletePunto[] P; //arreglo principalPunto[] NewP; //arreglo temporaldouble Val; //magnitud de los cubosint NumV; //contador de vérticesint totV; //total de vérticesint C; //contadorRandom rnd; //generador de números aleatoriosP = new Punto[50000];NewP = new Punto[50000];Val = new double();NumV = new int();totV = new int();C = new int();rnd = new Random();Val = 100; //el cubo inicial vale 100NumV = 0;totV = 1;

e. Luego de inicializar los arreglos con objetos de tipo Punto, se asigna el primer vértice al arreglo 1.

//generando el 1 punto P[0].X = 0; P[0].Y = 0; P[0].Z = 0; P[0].Dist = 100;

f. Después, se crea el bucle para recorrer todos los vértices del arreglo 1 y generar para cada uno de ellos 8 puntos nuevos, que se guardan sucesivamente en el arreglo 2. Las instrucciones “if (rnd.Next(0, 6) > 1)” e “if (rnd.Next(0, 5) > 1)” determinan al azar si un cubo se divide o no. Todo esto se inserta en el primer bucle, que repite este proceso cuantas veces se quiera (4 en el ejemplo).

for (int Pr = 0; Pr < 5; Pr++){

//Splittando en 4for (C = 0; C < totV; C++){ Val = P[C].Dist/4; if (rnd.Next(0, 6) > 1) {

NewP[NumV].X = P[C].X + Val; NewP[NumV].Y = P[C].Y - Val; NewP[NumV].Z = P[C].Z; NewP[NumV].Dist = P[C].Dist / 2;NumV += 1;

Libro GENERATIVO-plotter.indb 160Libro GENERATIVO-plotter.indb 160 13/01/2016 12:06:2413/01/2016 12:06:24

Page 161: Libro GENERATIVO-plotter

Manual de diseño generativo 161

NewP[NumV].X = P[C].X + Val; NewP[NumV].Y = P[C].Y + Val; NewP[NumV].Z = P[C].Z; NewP[NumV].Dist = P[C].Dist / 2;NumV += 1;NewP[NumV].X = P[C].X - Val; NewP[NumV].Y = P[C].Y + Val; NewP[NumV].Z = P[C].Z; NewP[NumV].Dist = P[C].Dist / 2;NumV += 1;NewP[NumV].X = P[C].X - Val; NewP[NumV].Y = P[C].Y - Val; NewP[NumV].Z = P[C].Z; NewP[NumV].Dist = P[C].Dist / 2;NumV += 1;//el contador de vértices se incrementa en 1NewP[NumV].X = P[C].X + Val; NewP[NumV].Y = P[C].Y - Val; NewP[NumV].Z = P[C].Z + 2 * Val; NewP[NumV].Dist = P[C].Dist / 2;NumV += 1;NewP[NumV].X = P[C].X + Val; NewP[NumV].Y = P[C].Y + Val; NewP[NumV].Z = P[C].Z + 2 * Val; NewP[NumV].Dist = P[C].Dist / 2;NumV += 1;NewP[NumV].X = P[C].X - Val; NewP[NumV].Y = P[C].Y + Val; NewP[NumV].Z = P[C].Z + 2 * Val; NewP[NumV].Dist = P[C].Dist / 2;NumV += 1;if (rnd.Next(0, 5) > 1){

NewP[NumV].X = P[C].X - Val; NewP[NumV].Y = P[C].Y - Val;NewP[NumV].Z = P[C].Z + 2 * Val; NewP[NumV].Dist = P[C].Dist/2;NumV += 1;

} NotS += 1;

}else{

NewP[NumV].X = P[C].X; NewP[NumV].Y = P[C].Y; NewP[NumV].Z = P[C].Z;

NewP[NumV].Dist = P[C].Dist; NumV += 1;}

}

g. Terminada la subdivisión, todos los vértices del arreglo 2 se co-pian en el arreglo 1, y estos van a ser los nuevos orígenes para otrasubdivisión.

Libro GENERATIVO-plotter.indb 161Libro GENERATIVO-plotter.indb 161 13/01/2016 12:06:2413/01/2016 12:06:24

Page 162: Libro GENERATIVO-plotter

162 Umberto Roncoroni

//copiando en totV el nuevo número de vértices creadostotV = NumV;//reiniciando el contador NumVNumV = 0;//copiando newP in Pfor (C = 0; C < 50000; C++){

P[C].X = NewP[C].X;P[C].Y = NewP[C].Y;P[C].Z = NewP[C].Z;P[C].Dist = NewP[C].Dist;P[C].Stat = NewP[C].Stat;

}//reinicializando NewPfor (C = 0; C < 50000; C++){ NewP[C].X = 0; NewP[C].Y = 0; NewP[C].Z = 0; NewP[C].Dist = 0;}

}

La variable totV guarda el número progresivo de los vértices, 1 al comienzo, luego 8, 64, 512, etcétera.

h. Se crea el archivo MaxScript; para cada vértice se genera un cubo de tamaño correspondiente al dato del vértice.

//generando el archivo maxscriptTextWriter Gr = new StreamWriter(“F:\\Programacion\\SubD2.ms”);String V3 = “”;//for (C = 0; C < totV; C++){

V3 = “B” + C.ToString() + “=box length:” + P[C].Dist.ToString() + “width:” + P[C].Dist.ToString() + “ height:” + P[C].Dist.ToString();Gr.WriteLine(V3);V3 = “move B” + C.ToString() + “ [“ + P[C].X.ToString() +“,” +

P[C].Y.ToString() +“,” + P[C].Z.ToString() + “]”;Gr.WriteLine(V3);

}Gr.Close();

}

Libro GENERATIVO-plotter.indb 162Libro GENERATIVO-plotter.indb 162 13/01/2016 12:06:2413/01/2016 12:06:24

Page 163: Libro GENERATIVO-plotter

Manual de diseño generativo 163

Fractales con el programa Subdivide. Se han creado tres botones adicionales para diferentes versiones del proceso. Umberto

Roncoroni, agosto de 2013. El lector puede descargar el ejemplo de http://www.digitalpoiesis.org/download

Esta es una porción del archivo MaxScript que genera un cubo y lo po-siciona; para cada cubo deben escribirse unas líneas como estas:

B0=box length:12.5 width:12.5 height:12.5 move B0 [43.75,-43.75,0]

Libro GENERATIVO-plotter.indb 163Libro GENERATIVO-plotter.indb 163 13/01/2016 12:06:2413/01/2016 12:06:24

Page 164: Libro GENERATIVO-plotter

Libro GENERATIVO-plotter.indb 164Libro GENERATIVO-plotter.indb 164 13/01/2016 12:06:2513/01/2016 12:06:25

Page 165: Libro GENERATIVO-plotter

Manual de diseño generativo 165

Un patrón es una superfi cie cubierta por una forma modular geométrica, re-gular o irregular, que la rellena como las piezas de un rompecabezas. Una teselación es un patrón especial, pues está formada por distintos módulos que empalman entre sí, de acuerdo con diferentes principios de simetrías, sin so-breponerse ni dejar espacios vacíos.

Las teselaciones y los patrones tienen una gran variedad de aplicaciones. El diseño textil es un ejemplo donde el uso de patrones es fundamental, así como en algunas formas decorativas, en las estructuras modulares para las pavimentaciones y las fachadas en la arquitectura. En el diseño 3D, se utilizan los patrones y texturas procedurales para la simulación de materiales realis-tas. Y, por último, también en la joyería se comienza a utilizar las gramáticas generativas y varias aplicaciones informáticas basadas en estos principios1.

Texturas y patrones procedurales 3D. TornoDigital 1.0, Umberto Roncoroni, 2013.

1 Como Rhino y Grasshopper.

Los patrones de la naturaleza • Teselación con formas irregulares • Teselación fractal con los

sistemas-L • La curva de Peano con los sistemas-L • Celosías con los sistemas-L • Cruces etíopes

con los sistemas-L • Algoritmo y código en C# para teselaciones de Voronoi

Patrones y teselaciones

Tutorial

4

Libro GENERATIVO-plotter.indb 165Libro GENERATIVO-plotter.indb 165 13/01/2016 12:06:2513/01/2016 12:06:25

Page 166: Libro GENERATIVO-plotter

166 Umberto Roncoroni

En este tutorial, se tratará sobre el diseño de patrones y teselaciones a mano alzada, utilizando las gramáticas generativas. Si se parametrizan los princi-pios geométricos de los patrones y se hace un cuidadoso uso del azar, es posi-ble obtener diseños generativos creativos, originales y muy diferentes entre sí.

Al terminar este tutorial, el lector tendrá los conocimientos para:• Reconocer la belleza de los patrones naturales.• Comprender los procesos de autoorganización en la naturaleza.• Sustentar estéticamente los procesos generativos.• Crear procesos generativos personalizados.

4.1 LOS PATRONES DE LA NATURALEZA

La naturaleza presenta infi nitas variedades de patrones orgánicos e inorgá-nicos. Desde el punto de vista del diseño generativo, es preciso señalar que la formación de patrones es fruto de la autoorganización, de acuerdo con las características de la materia, de los accidentes mecánicos, físicos y químicos, y del espacio disponible.

Similitud entre los diseños que forma el viento en la arena y el manto de la cebra

El hecho de que la materia se componga de un número fi nito de elementos y que las leyes de la física sean universales explica por qué se hallan patrones similares en contextos que no tienen relación entre sí, como las ondas que se forman en la arena se asemejan a las rayas de la cebra. Pero, como señala Ball (2001): “Nature artistry may be spontaneous, but it is not arbitrary” (p. 5)2.

2 “La naturaleza puede ser espontánea, pero no es aleatoria” (La traducción es mía).

Libro GENERATIVO-plotter.indb 166Libro GENERATIVO-plotter.indb 166 13/01/2016 12:06:2513/01/2016 12:06:25

Page 167: Libro GENERATIVO-plotter

Manual de diseño generativo 167

El reto del diseño generativo en el tema de los patrones está precisamente en descubrir sus leyes de autoorganización subyacentes3.

Examinando los patrones naturales y su morfogénesis, se encuentra que son estructuras que se basan en principios simples, los cuales, sin embargo, generan resultados complejos4.

Fotografía de una hoja marchita, donde se observa un patrón generativo natural. Se nota la estructura fractal de las ner-

vaduras de la hoja. Foto de Umberto Roncoroni, 2013.

El proceso generativo basado en patrones descubre la correspondencia en-tre el algoritmo y el fenómeno natural, lo que fundamenta el valor artístico y el valor cognoscitivo de las simulaciones.

Los patrones se forman por vía orgánica e inorgánica, como es el caso de la arena y del manto de la cebra. Los patrones orgánicos se pueden simular muy bien utilizando los autómatas celulares, mientras que para los patrones inorgánicos se emplean las gramáticas generativas, el diseño algorítmico o paramétrico, y los algoritmos recursivos, como los fractales, lo que se verá en los ejercicios propuestos en este tutorial.

3 Todas las formas naturales son así, pero en los patrones esto es un principio sorprenden-te, particularmente creativo y que puede aplicarse con mucho provecho pedagógico.

4 Y el uso de patrones conceptuales puede ser un modo para comprender la complejidad de la naturaleza. Posiblemente exista una cierta simetría entre los patrones de la mente y los patrones naturales. Para Bateson (1972), la mente y la naturaleza están reunidas en patrones similares.

Libro GENERATIVO-plotter.indb 167Libro GENERATIVO-plotter.indb 167 13/01/2016 12:06:2613/01/2016 12:06:26

Page 168: Libro GENERATIVO-plotter

168 Umberto Roncoroni

Para profundizar

Sonidos, patrones, climática y curvas de Lissajous

Las ondas sonoras hacen vibrar un platillo metálico cubierto de arena, causando que esta se dis-

ponga según las armónicas del sonido. El principio fue descubierto por Ernst Chladni en el siglo

XVIII, cuando pasó un arco de violín en una placa metálica cubierta de arena fi na haciéndola vibrar.

En la mecánica clásica, la trayectoria de un movimiento armónico complejo bidimensional es una

curva, fenómeno que fue descubierto por el físico francés Jules Antoine Lissajous (1822-1880).

Existen varias formas de las ecuaciones paramétricas para diseñar las curvas de Lissajous, las cuales

se pueden utilizar como generadores de módulos para patrones. Las curvas son los gráfi cos de

estas ecuaciones: x = A * sen(at + D), y = B * sen(bt). A, B, a, b, D son parámetros, t es el valor que

se incrementa. Otra manera de ver las ecuaciones es esta: x = sen(mt), y = sen(nt + F), donde t se

incrementa, m y n son parámetros, y F es la diferencia de fase.

Para profundizar

Coordenadas polares

Se pueden representar los puntos a través de las coordenadas cartesianas o de las coordenadas

polares, mediante un radio r y un ángulo theta (θ).

Coordenadas cartesianas: P = (X, Y); coordenadas polares: P = (r, θ)

Conversiones de un sistema al otro:

r = sqrt(X2 + Y2); θ = atan(X/Y)

X = r * cos(θ); Y = r * sen(θ)

Con las coordenadas polares es muy simple dibujar fi guras y curvas complejas, como las curvas de

Lissajous. Algunas curvas clásicas son:

Rosa de 4 hojas r = sen(2θ)

Rosa de 3 hojas r = 2 * sen(3θ)

Cardioide r = -1 + cos(θ)

Referencias:

Cymatics.org [Página web]. Recuperado de http://www.cymatics.org/

Roncoroni, U. (s. f.). GDesign 2.0 [Página web]. Recuperado de http://www.digitalpoiesis.org

Tonoscopio de Hans Jenny (1960), basado en los principios de Chladni. A la derecha, curvas de Lissajous.

Libro GENERATIVO-plotter.indb 168Libro GENERATIVO-plotter.indb 168 13/01/2016 12:06:2713/01/2016 12:06:27

Page 169: Libro GENERATIVO-plotter

Manual de diseño generativo 169

Ejercicio 20. Teselación con formas irregulares

Una teselación es un patrón especial, donde una forma rellena una superfi cie sin dejar espacios vacíos ni sobreponerse entre sí. Triángulos, cuadrados y rombos son formas que teselan perfectamente. Sin embargo, es posible teselar utilizando formas irregulares con perfi les complejos, siempre que se respeten ciertas reglas de simetría, como se mostrará en este ejercicio.

En efecto, un módulo para una teselación se diseña simplemente mediante sistemas de simetría para obtener el empalme de todos los lados de las fi guras. Con este truco, se pueden utilizar fi guras muy complejas, en forma de objetos, plantas o animales, como aquellas de las célebres teselaciones del artista ho-landés M. C. Escher (1898-1972).

Detalle de una teselación de M. C. Escher, 1951

Difi cultad: fácilObjetivo• Comprender los principios geométricos de las teselaciones.Paso a paso

Se puede utilizar una simetría vertical u horizontal o una simetría radial; esta última da mayor variedad, puesto que los módulos tienen que rotar para conectarse. Se resolverá el ejemplo con una simetría radial.

Libro GENERATIVO-plotter.indb 169Libro GENERATIVO-plotter.indb 169 13/01/2016 12:06:2713/01/2016 12:06:27

Page 170: Libro GENERATIVO-plotter

170 Umberto Roncoroni

Paso 1 Paso 2 Paso 3

4. Se copia el módulo y con la técnica del stencil se realiza la teselación.

Teselación. Nótese la rotación de la forma que hace que el diseño parezca hecho con dos fi guras diferentes.

1. Se dibuja un cuadrado y se defi nen los lados simétricos.

2. Se dibuja el lado y con un papel transparente se lo copia en el lado simé-trico. De este modo, se genera la combinación macho y hembra.

3. Se hace lo mismo con el otro lado.

Libro GENERATIVO-plotter.indb 170Libro GENERATIVO-plotter.indb 170 13/01/2016 12:06:2713/01/2016 12:06:27

Page 171: Libro GENERATIVO-plotter

Manual de diseño generativo 171

Ejercicio 21. Teselación fractal con los sistemas-L

Los fractales generan patrones con fórmulas matemáticas recursivas. Son cur-vas (líneas continuas que no se intersecan) que rellenan el plano de modo regular, exactamente como una teselación. A continuación, se presenta el ejemplo de una curva que se puede hacer con los sistemas-L de manera fácil utilizando dos símbolos y un ángulo de 90 grados.

Difi cultad: fácilObjetivos• Explorar las posibilidades de las teselaciones fractales.• Perfeccionar el dominio de las gramáticas generativas.Paso a paso1. Se utilizarán los símbolos “a, b” y para las rotaciones “P, <, +, -” que ya

conocemos.2. Se emplea el objeto cubo para “a” y para “b”; de hecho, las líneas están

compuestas por fi las de cubos. De esta manera, se puede exportar el modelo a un programa 3D.

3. Los ángulos son 90 grados.4. En la ventana “Grammar” se impostan axiomas y reglas: Axioma = “[P<<a][T<<Pa]” a “ab-b+b-ab+b+ab-b+b-a”5. La regla 5 sirve para que “a, b” generen segmentos de longitud 3. a(5) “aaa” b(5) “bbb”

Axiomas y reglas Visualización de la regla de “a”

Libro GENERATIVO-plotter.indb 171Libro GENERATIVO-plotter.indb 171 13/01/2016 12:06:2813/01/2016 12:06:28

Page 172: Libro GENERATIVO-plotter

172 Umberto Roncoroni

Rendering de la curva

Ejercicio 22. Curva de Peano con los sistemas-L

Un ejemplo clásico de teselación fractal es la curva de Peano, que se muestra a continuación.

Difi cultad: fácilObjetivos• Desarrollar la curva de Peano con los sistemas-L.• Perfeccionar el dominio de las gramáticas generativas.Paso a paso1. Se utilizan los mismos símbolos del ejercicio anterior más el símbolo ter-

minal “p” y “F”. Este sirve para generar un espacio vacío, en la práctica, para mover el cursor sin dibujar nada.

2. Axioma y reglas: Axioma = “P<ap” a “a+bF++bF-Fa--FaFa-bF+” b “-Fa+bFbF++bF+Fa--Fa-b”

Libro GENERATIVO-plotter.indb 172Libro GENERATIVO-plotter.indb 172 13/01/2016 12:06:2813/01/2016 12:06:28

Page 173: Libro GENERATIVO-plotter

Manual de diseño generativo 173

Axioma Regla de “a” Regla de “b”

3. En la ventana principal de GDesign se pone el ángulo a 60 grados y se genera el sistema.

Gramática con GDesign

Curva de Peano

Libro GENERATIVO-plotter.indb 173Libro GENERATIVO-plotter.indb 173 13/01/2016 12:06:2813/01/2016 12:06:28

Page 174: Libro GENERATIVO-plotter

174 Umberto Roncoroni

Ejercicio 23. Celosías con los sistemas-L

Los patrones tienen una infi nidad de aplicaciones en todo tipo de diseño. Por ejemplo, en el diseño textil, en las artes decorativas, en la arquitectura, en pa-vimentaciones o celosías.

En este ejercicio, se realizará un estudio de celosías, y lo interesante es que el modelo podría ser construido mediante fabricación digital, generando módulos prefabricados.

Como se sabe, un verdadero principio generativo debería ser emergente; ahora, se puede obtener un efecto similar en cuanto a impredecibilidad y va-riedad, jugando oportunamente con los parámetros y con las reglas estocásti-cas y de contexto. Queda este aspecto como ejercicio para el lector.

Celosías con GDesign y diseños textiles precolombinos

Libro GENERATIVO-plotter.indb 174Libro GENERATIVO-plotter.indb 174 13/01/2016 12:06:2913/01/2016 12:06:29

Page 175: Libro GENERATIVO-plotter

Manual de diseño generativo 175

Difi cultad: relativamente fácilObjetivos• Comprender la función generativa de los parámetros. • Aplicar un patrón generativo a la arquitectura.• Desarrollar una celosía generativa con los sistemas-L.Paso a paso1. Se utilizarán los símbolos “a, b”, para las rotaciones “P, <, /, @”, “M, F”

para posicionar los elementos y “:” para modifi car el tamaño de las pie-zas. Para las ramas: “[,]”.

2. En primer lugar, se crea la estructura cuadriculada; el axioma genera una secuencia horizontal de símbolos “a” separados por espacios (sím-bolo “M” que vale 5; “F”, para sintetizar); en la regla 1, cada “a” produce una rama de símbolos “a” separados por espacios (siempre el símbolo “M”):

Axioma = “aMaMaMaMaMaMaMaMa” a(1) “[YaMaMaMaMaMa]”

3. En la regla 2 de “a”, que forma un cuadrado, se debe notar que al co-mienzo se produce una rotación con el símbolo “+”, que constituye un primer parámetro para obtener variaciones, y luego el símbolo “b”, que sucesivamente se puede modifi car con una regla para obtener ulteriores combinaciones.

a(2) “[P+aaba<aaba<aaba<aaba]” M = FFFFF

La gramática básica en GDesign y el resultado utilizando cubos

Libro GENERATIVO-plotter.indb 175Libro GENERATIVO-plotter.indb 175 13/01/2016 12:06:2913/01/2016 12:06:29

Page 176: Libro GENERATIVO-plotter

176 Umberto Roncoroni

4. Ahora, se va creando una regla para la etapa 3 del símbolo “b”; al mismo tiempo, se usa un parámetro de rotación más, con el símbolo “/”, cuyas variaciones multiplican las posibilidades de experimentación. También se agrega el símbolo “:” para achicar el tamaño del cubo asignado a “b”.

b(3) “b[::P/bbbbb]”

Variando el parámetro “decay” se obtienen variaciones en el diseño.

5. Se varían parámetros y la regla 3 de “b”. En este caso, el resultado ha empeorado, pero lo importante es observar la variación con respecto al patrón anterior.

Rendering

6. Se pueden obtener patrones más naturales utilizando ángulos al azar con el símbolo “@” y empleando reglas estocásticas tanto para “a” como para “b”. Se obtiene, al fi nal, una gramática que puede generar cientos de patrones diferentes.

Libro GENERATIVO-plotter.indb 176Libro GENERATIVO-plotter.indb 176 13/01/2016 12:06:3013/01/2016 12:06:30

Page 177: Libro GENERATIVO-plotter

Manual de diseño generativo 177

La gramática con reglas estocásticas y los parámetros utilizados para la imagen siguiente:

Rendering de la gramática estocástica

Libro GENERATIVO-plotter.indb 177Libro GENERATIVO-plotter.indb 177 13/01/2016 12:06:3113/01/2016 12:06:31

Page 178: Libro GENERATIVO-plotter

178 Umberto Roncoroni

Ejercicio 24. Cruces etíopes con los sistemas-L

La cruz es un símbolo de la Iglesia cristiana ortodoxa etíope que se utiliza actualmente en las procesiones religiosas. Sus orígenes son antiguos, datan de la segunda mitad del primer milenio antes de Cristo en la ciudad de Axum, en Etiopía.

Cruces procesionales etíopes

Difi cultad: medianamente difícilObjetivos• Generar familias de cruces etíopes con los sistemas-L.• Profundizar en el uso generativo de los parámetros y de las gramáticas.Paso a paso1. Se utiliza “a, P, -, +” para las rotaciones y “[,]” para las ramas. Para ob-

tener un modelo compacto, se empleará el objeto Blob y se exportará el modelo en POV-Ray.

2. Ahora, el axioma. El lector puede copiar las reglas en las casillas de la ventana “Grammar”.

Axioma = “[P+a][P++a][P+++a][a][P-a][P--a][P---a][P----a]” El ángulo es de 45 grados.3. Reglas: a(1) “a[P-a++a]P+a--a+a” a(2) “a[P++a][P--a]a” a(3) “aa[P+a--a--a--a]” a(4) “aa”

Libro GENERATIVO-plotter.indb 178Libro GENERATIVO-plotter.indb 178 13/01/2016 12:06:3113/01/2016 12:06:31

Page 179: Libro GENERATIVO-plotter

Manual de diseño generativo 179

Axioma Aplicando la regla a(1)

Aplicando la regla a(2) Regla a(3)

Cruz etíope con GDesign. Reglas y rendering en POV-Ray. Umberto Roncoroni, 2013.

Libro GENERATIVO-plotter.indb 179Libro GENERATIVO-plotter.indb 179 13/01/2016 12:06:3113/01/2016 12:06:31

Page 180: Libro GENERATIVO-plotter

180 Umberto Roncoroni

Ejercicio 25. Algoritmo y código en C# para teselaciones de Voronoi

Este algoritmo se usa para subdividir una superfi cie en polígonos, de acuerdo con las distancias de un conjunto de puntos dados. Las teselaciones de Voro-noi muestran de modo claro la formación de un patrón emergente, y por eso se las ha utilizado para simular el comportamiento de especies animales o vegetales5.

Es muy interesante por la apariencia orgánica y las posibles variantes que se pueden crear a partir del algoritmo base (Green y Sibson, 1978):

One might think of the points as being the locations of the lairs of competitive predators of equal strength; the region associated with each point is then the area available to the corresponding predator. (p. 168)6

En este ejercicio, se presenta el código en C#.

5 Los diagramas de Voronoi se llaman así por el matemático ruso Georgy Feodosevich Voronoi, a partir del estudio de diseños muy antiguos. Descartes los conocía en 1644.

6 “Se puede pensar que los puntos son la ubicación de las guaridas de los depredadores de igual fuerza que compiten entre sí; la región que se asigna a cada punto es el espa-cio disponible para cada depredador” (La traducción es mía).

Grietas Teselación de Voronoi

Libro GENERATIVO-plotter.indb 180Libro GENERATIVO-plotter.indb 180 13/01/2016 12:06:3213/01/2016 12:06:32

Page 181: Libro GENERATIVO-plotter

Manual de diseño generativo 181

Difi cultad: difícilObjetivos• Comprender e implementar el principio de las teselaciones de Voronoi.• Usar formularios y gráfi cos en C#.Paso a paso1. Algoritmo:

a. Defi nir una superfi cie de nx por ny puntos.b. Colocar dentro de esta superfi cie unos puntos negros (los vértices) al

azar. c. Calcular para cada punto de la superfi cie cuál es el vértice más

cercano.d. Si el píxel está más cerca del primer vértice, pintarlo de rojo; si está

más cerca del segundo, de verde, etcétera.2. Para comenzar, se abre una aplicación Windows utilizando el Wizard.

Insertar un botón. El graphic device es el mismo Form1 que genera el Wi-zard.

3. Para el código en C#7, se necesita un arreglo para siete vértices, así como las variables para calcular y guardar las distancias del píxel de los vérti-ces. Se requiere también un generador de números aleatorios.

4. En la primera parte del código, se inicializa todo y se dibujan los siete vértices. Luego se preparan los bucles donde se inserta el código para barrer la superfi cie.

7 Que no está optimizado, pues tiene que quedar más legible que compacto.

Generando los siete vértices aleatorios

Libro GENERATIVO-plotter.indb 181Libro GENERATIVO-plotter.indb 181 13/01/2016 12:06:3213/01/2016 12:06:32

Page 182: Libro GENERATIVO-plotter

182 Umberto Roncoroni

using System;using System.Drawing;using System.Text;using System.Windows.Forms;

namespace WindowsApplication1{ public partial class Form1 : Form { Graphics g; public Form1() { InitializeComponent(); //control gráfi co, el mismo Form1 g = this.CreateGraphics(); }

private void button1_Click(object sender, EventArgs e) { Random random = new Random(); //arreglo de 7 puntos int[] Px = new int[7]; int[] Py = new int[7]; //variables para guardar las distancias de cada píxel //de los 6 puntos double DistX; //distancia X del punto de los demás double DistY; //distancia Y del punto de los demás double D1, D2, D3, D4, D5, D6, D7; //distancias //se disponen al azar y se dibujan for (int i = 0; i < 7; i++) { Px[i] = random.Next(35, 260); Py[i] = random.Next(35, 260); //dibujar los 7 puntos g.FillEllipse(new SolidBrush(Color.Black), Px[i], Py[i], 3, 3); } //bucle para calcular las distancias del píxel de los 6 puntos... for (int contX = 30; contX < 270; contX++) { for (int contY=30; contY<270; contY++) { //insertar aquí el codigo } } } }}

Libro GENERATIVO-plotter.indb 182Libro GENERATIVO-plotter.indb 182 13/01/2016 12:06:3213/01/2016 12:06:32

Page 183: Libro GENERATIVO-plotter

Manual de diseño generativo 183

5. Para cada píxel de la superfi cie se debe memorizar las distancias de los siete puntos, a fi n de confrontarlas y decidir cuál es la menor y, por lo tanto, a cuál pertenece. La porción de código que sigue en el bucle compara las distancias entre sí y decide cuál es la menor. Dependiendo del punto al que pertenece, se le asigna un color al píxel. Finalmente, se inserta este código en el bucle.

El código puede ser optimizado para utilizar cualquier cantidad de pun-tos y leer los puntos desde una bitmap para hacer image processing (véase el último tutorial).

//calculando la distancia del píxel conx,conty de Px[],Py[] DistX = Math.Abs(Px[0] - contX); DistY = Math.Abs(Py[0] - contY); D1 = Math.Sqrt(DistX * DistX + DistY * DistY); // DistX = Math.Abs(Px[1] - contX); DistY = Math.Abs(Py[1] - contY); D2 = Math.Sqrt(DistX * DistX + DistY * DistY); // DistX = Math.Abs(Px[2] - contX); DistY = Math.Abs(Py[2] - contY); D3 = Math.Sqrt(DistX * DistX + DistY * DistY); // DistX = Math.Abs(Px[3] - contX); DistY = Math.Abs(Py[3] - contY); D4 = Math.Sqrt(DistX * DistX + DistY * DistY); // DistX = Math.Abs(Px[4] - contX); DistY = Math.Abs(Py[4] - contY); D5 = Math.Sqrt(DistX * DistX + DistY * DistY); // DistX = Math.Abs(Px[5] - contX); DistY = Math.Abs(Py[5] - contY); D6 = Math.Sqrt(DistX * DistX + DistY * DistY); // DistX = Math.Abs(Px[6] - contX); DistY = Math.Abs(Py[6] - contY); D7 = Math.Sqrt(DistX * DistX + DistY * DistY); //

//controlando las distancias //dibujando el píxel, se diferencia por color // if (D1 < D2 & D1 < D3 & D1 < D4 & D1 < D5 & D1 < D6 & D1 < D7) { g.FillEllipse(new SolidBrush(Color.Black),contX,contY,2,2); }

Libro GENERATIVO-plotter.indb 183Libro GENERATIVO-plotter.indb 183 13/01/2016 12:06:3213/01/2016 12:06:32

Page 184: Libro GENERATIVO-plotter

184 Umberto Roncoroni

if (D2 < D1 & D2 < D3 & D2 < D4 & D2 < D5 & D2 < D6 & D2 < D7) { g.FillEllipse(new SolidBrush(Color.Beige),contX,contY,2,2); } if (D3 < D1 & D3 < D2 & D3 < D4 & D3 < D5 & D3 < D6 & D3 < D7) { g.FillEllipse(new SolidBrush(Color.Aquamarine),contX,contY,2,2); } if (D4 < D1 & D4 < D2 & D4 < D3 & D4 < D5 & D4 < D6 & D4 < D7) { g.FillEllipse(new SolidBrush(Color.DeepPink),contX,contY,2,2); } if (D5 < D1 & D5 < D2 & D5 < D3 & D5 < D4 & D5 < D6 & D5 < D7) { g.FillEllipse(new SolidBrush(Color.DarkRed),contX,contY,2,2); } if (D6 < D1 & D6 < D2 & D6 < D3 & D6 < D4 & D6 < D5 & D6 < D7) { g.FillEllipse(new SolidBrush(Color.CadetBlue),contX,contY,2,2); } if (D7 < D1 & D7 < D2 & D7 < D3 & D7 < D4 & D7 < D5 & D7 < D6) { g.FillEllipse(new SolidBrush(Color.Green),contX,contY,2,2);

}

Teselación de Voronoi

6. Se pueden escoger diferentes reglas, por ejemplo, las relaciones áureas phi = 1.618. En lugar de determinar si el píxel está más cerca, se puede es-tablecer si es que la distancia está en proporción áurea con otra distancia, por ejemplo, un valor predeterminado. En estas experimentaciones, se encuentra el sentido creativo de la tecnología y del proceso generativo.

Libro GENERATIVO-plotter.indb 184Libro GENERATIVO-plotter.indb 184 13/01/2016 12:06:3213/01/2016 12:06:32

Page 185: Libro GENERATIVO-plotter

Manual de diseño generativo 185

Variantes de Voronoi. VoronoiExplorer 1.0. Umberto Roncoroni, 2013.

Para profundizar

Bolas de jabón

Thomas Kas (2002) sugiere otra manera de imaginar las teselaciones de Voronoi. La idea es

pensar en un conjunto de puntos y hacer que se transformen en bolas de jabón, por ejem-

plo, mediante el diseño de pequeñas circunferencias con el centro en cada punto.

Primero, se hace crecer los puntos de las circunferencias de modo paralelo y uniforme, hasta

que cada punto coincida con un punto de otra circunferencia. Se forma así una perpendicu-

lar a la línea que une el centro de las circunferencias a las que pertenecen los puntos.

Se sigue el crecimiento de las circunferencias hasta que no queden líneas curvas, es decir,

hasta que todos los puntos se hayan encontrado. Estos confi nes rectos formarán una tese-

lación de Voronoi.

Esta aproximación sugiere muchísimas variaciones con notable potencial generativo. Imagí-

nese, por ejemplo, este proceso cuando el crecimiento de cada burbuja no es uniforme, o

cuando se inserta algún parámetro que da un diferente peso a cada burbuja.

Burbujas al microscopio. Nótese en la imagen de la izquierda el parecido con las teselaciones de

Voronoi. Fotografías de Verónica Crousse.

(continúa)

Libro GENERATIVO-plotter.indb 185Libro GENERATIVO-plotter.indb 185 13/01/2016 12:06:3313/01/2016 12:06:33

Page 186: Libro GENERATIVO-plotter

186 Umberto Roncoroni

Las circunferencias se pueden simular utilizando las coordenadas polares:

Xc,Yc = coordenadas del centro de la circunferencia

R = radio de la circunferencia (crece progresivamente)

Y los puntos de la circunferencia: X = Xc + R * cos(ángulo),

Y = Yc + R * sen(ángulo)

Variando el ángulo de primer grado de 0 a 359, se dibujan 360 puntos de la circunferencia.

Para rellenar la circunferencia (los puntos se pueden ver separados entre sí), se incrementa

el ángulo por fracciones de grado. Y no hay que olvidar que usualmente las computadoras

calculan los ángulos en radianes; para convertir, se debe dividir el valor en grados por PIGre-

ca/180.

(continuación)

Libro GENERATIVO-plotter.indb 186Libro GENERATIVO-plotter.indb 186 13/01/2016 12:06:3313/01/2016 12:06:33

Page 187: Libro GENERATIVO-plotter

Manual de diseño generativo 187

Los procesos y las técnicas basados en los principios de la vida artifi cial, como los autómatas celulares (CA, cellular automatas), por la gran variedad de formas y patrones que pueden generar, son herramientas realmente esenciales del arte generativo. El primer dato interesante es que, a través de la vida artifi cial, el diseño se apoya en la simulación de los procesos naturales, es decir, en un modelo científi co de la realidad y en la relación con un contexto determinado, lo que hace de estos diseños algo epistemológicamente coherente y no un ca-pricho creativo sin razón.

El objetivo principal de este tutorial es introducir la relación del proceso artístico generativo con la biología y la geología. Para iniciar al lector en estas técnicas fascinantes se realizará un ejercicio para implementar el Juego de la Vida de Conway, el más clásico de todos los CA; luego se analizará e imple-mentará el proceso denominado diff usion limited aggregation system (muy si-milar en la lógica a un CA); y, por último, se explorarán las posibilidades ge-nerativas de la vida artifi cial mediante dos casos de arquitectura: un edifi cio generativo y una estructura basada en la erosión.

Al terminar este tutorial, el lector tendrá los conocimientos para:• Comprender los procesos de autoorganización en la naturaleza.• Relacionar ciencia y arte en un proceso tecnológico.• Sustentar estéticamente un proyecto generativo.• Aplicar simulaciones científi cas al diseño.

5.1 INTRODUCCIÓN A LOS AUTÓMATAS CELULARES

Los autómatas celulares, que son los algoritmos de vida artifi cial más simples, son sistemas deterministas, aunque imprevisibles. Esta característica se debe a que dan siempre un mismo resultado, pero este no se puede entender hasta el término de su desarrollo, ya que el número de operaciones que el proceso requiere es tan grande que no deja imaginar en qué acabará.

Oportunamente parametrados y con el adecuado grado de interactividad, logran ofrecer un nivel de complejidad y de emergencia seguramente mayor

Introducción a los autómatas celulares • The Game of Life con VBasic • Edifi cio generativo con la vida

artifi cial • Diff usion limited aggregation • Erosión con 3DSMax

Vida artifi cialy autómatas celulares

Tutorial

5

Libro GENERATIVO-plotter.indb 187Libro GENERATIVO-plotter.indb 187 13/01/2016 12:06:3313/01/2016 12:06:33

Page 188: Libro GENERATIVO-plotter

188 Umberto Roncoroni

que los fractales. Otra ventaja es su fl exibilidad: pueden ser bidimensionales o tridimensionales, útiles tanto en las imágenes como en la música. Y, como ya se anotó, tienen la capacidad muy importante de modelar fenómenos reales orgánicos e inorgánicos con buena aproximación.

Aquí se presentan al lector los elementos fundamentales válidos para cual-quier CA, utilizando como ejemplo el Juego de la Vida (The Game of Life), quizás el CA más famoso, que fue inventado por el matemático inglés John Conway en los años sesenta (aunque mucho antes Von Neumann y Turing habían pen-sado en algo similar) (Wolfram, 2002).

5.1.1 Análisis de un autómata celular (CA)

Un autómata celular está constituido por una matriz numérica, usualmente cuadrada (con la misma cantidad de fi las y columnas), en la cual cada elemen-to representa una célula, con un número que indica su estado: viva, muerta o normal (o en estados intermedios, por ejemplo, enferma, como se hace en otros tipos de CA).

La matriz puede ser fácilmente representada por una bitmap, donde los es-tados de las células constituyen los niveles de los píxeles: blanco y negro (0-1, muerta o viva), gris (0-255, 0 muerta, 255 sana, y los valores intermedios repre-sentan diferentes grados de bienestar) o hasta de color RGB.

Ejemplo de la matriz de un CA

5.1.2 Las reglas

La segunda característica importante de un autómata celular es que la matriz numérica se modifi ca en el tiempo, es decir, los valores de las células se actua-lizan un determinado número de veces sobre la base de determinadas reglas. Las reglas establecen si y como, en cada etapa del proceso, se modifi ca cada celda, lo que se decide según el estado (los valores numéricos) de los vecinos (las celdas adyacentes). Así, dependiendo de este estado, la célula puede cam-biar su valor y el píxel correspondiente, su color.

Libro GENERATIVO-plotter.indb 188Libro GENERATIVO-plotter.indb 188 13/01/2016 12:06:3413/01/2016 12:06:34

Page 189: Libro GENERATIVO-plotter

Manual de diseño generativo 189

Los criterios y valores de las reglas constituyen el diseño del autómata y son la razón de su comportamiento. Las reglas pueden simular situaciones reales o ser totalmente arbitrarias y fantasiosas; obviamente, cada artista ge-nerativo puede inventar su autómata celular o modifi car los algoritmos exis-tentes como Life, Brain y Hodge, entre otros.

5.1.3 Vecindad

El tercer elemento de un CA es la vecindad. Por vecindad se entienden las cé-lulas adyacentes a cada célula. Pueden darse diferentes patrones de vecindad, con los que se logra distintos comportamientos y efectos.

Dos tipos de vecindad: la primera de Moore y la segunda de Von

Neumann. Los vecinos están indicados en azul.

5.1.4 Desarrollo y comportamiento de un CA

El proceso es el siguiente: • Inicialización. Se da un valor al azar (o según un patrón) a cada celda

del CA, a esta matriz se le llama Cells. Terminado el proceso, se crea un duplicado del CA, que servirá como buff er temporal; esta matriz se de-nomina NewCells.

• Elaboración. Se hace un barrido de todas las celdas de Cells y se ana-lizan los vecinos de cada celda, utilizando el patrón de vecindad. De acuerdo con el valor de los vecinos y las reglas, se modifi ca el valor de la celda, y este valor se coloca en la celda correspondiente de NewCells.

• Actualización. Una vez concluido el barrido, el NewCells se copia en Cells, y así en adelante.

Libro GENERATIVO-plotter.indb 189Libro GENERATIVO-plotter.indb 189 13/01/2016 12:06:3413/01/2016 12:06:34

Page 190: Libro GENERATIVO-plotter

190 Umberto Roncoroni

Ejemplo de desarrollo de un CA

Inicialización Primera elaboración Segunda elaboración

Con las PC de hoy es muy rápido visualizar estos sistemas y parametrarlos adecuadamente.

Ejercicio 26. The Game of Life con VBasic

En este tutorial, el lector aprenderá a programar y a visualizar The Game of Life utilizando VBasic, según el algoritmo de John Conway (Wolfram, 2002).

Difi cultad: moderadamente difícilObjetivos• Aprender a programar un CA.• Perfeccionar técnicas de gráfi cos por computadora.Paso a paso1. Para empezar, es necesario abrir una aplicación Windows y generar un

formulario; dentro del Form, se declara y se pone un objeto gráfi co de tipo PictureBox (Picture1) y un botón. El código que se creará enseguida se pega en el método click() del botón.

2. Se comienza el programa creando e inicializando las variables: los dos buff ers (matrices o arreglos bidimensionales) para guardar las celdas, 0 muerta, 1 viva; como se vio anteriormente, estos buff ers se denominan Cells y su duplicado NewCells; una variable para calcular la suma de los vecinos, Sum8; y una variable Color para el color (negro, 0, para las celdas vivas y blanco, 255, para las muertas).

3. Luego se forma un bucle en el cual se hace el barrido de las celdas, se calculan y actualizan sus estados como se explicó antes. Las reglas de Life para actualizar el valor de cada celda son las siguientes:• Si la suma de los vecinos es menos de 2, la celda se vuelve 0 (muere).• Si la celda vale 0 y sus vecinos suman 2, la celda se vuelve 1 (nace).• Si la celda vale 1 y sus vecinos suman 3 o 4, la celda queda igual.• Si la celda vale 1 y sus vecinos suman más de 4, la celda se vuelve 0

(sobrepoblada).

Libro GENERATIVO-plotter.indb 190Libro GENERATIVO-plotter.indb 190 13/01/2016 12:06:3413/01/2016 12:06:34

Page 191: Libro GENERATIVO-plotter

Manual de diseño generativo 191

4. Ahora, el código en VBasic. Primero, las variables. Private Sub Command1_Click() Dim Cells(250, 250) As Integer ‘300 x 300 pixels Dim NewCells(250, 250) As Integer Dim Sum8 As Integer Dim Color As Integer

5. Luego se debe inicializar el primer buff er con celdas vivas 1, o muertas 0. El color es al revés, las muertas son blancas y las vivas son negras.

‘Inicializando. Picture1 tiene dimensiones 250 x 250 For cy = 0 To Picture1.Height - 1

For cx = 0 To Picture1.Width - 1 Cells(cx, cy) = Fix(2 * Rnd) ‘devuelve ceros y unos Color = 255 - Cells(cx, cy) * 255 ‘el color es en negativo Picture1.PSet (cx, cy), RGB(Color, Color, Color)Next

Next

6. Después se puede comenzar a aplicar el juego, y se lo hará 70 veces (con-tador). Cada vez se realizará un barrido horizontal y vertical del buff er, y para cada celda se calcula la suma de vecinos, la variable Sum8. A conti-nuación, se calcula el nuevo estado y se lo asigna al buff er NewCells.

7. Una vez terminado el barrido, se copia el nuevo estado de las celdas

NewCells in Cells y se comienza otra vez, hasta llegar a 70.

‘Actualizando Cells y pintando For cy = 0 To Picture1.Height - 1 For cx = 0 To Picture1.Width - 1 Cells(cx, cy) = NewCells(cx, cy) Color = 255 - Cells(cx, cy) * 255 Picture1.PSet (cx, cy), RGB(Color, Color, Color) Next NextNextEnd Sub

Desde el punto de vista generativo y artístico, es claro que hay que per-feccionar y experimentar con el código, ya que cada píxel podría con-vertirse, con una programación adecuada, en una forma más compleja, lo que generaría, por ejemplo, autómatas celulares dentro de autómatas celulares.

Libro GENERATIVO-plotter.indb 191Libro GENERATIVO-plotter.indb 191 13/01/2016 12:06:3513/01/2016 12:06:35

Page 192: Libro GENERATIVO-plotter

192 Umberto Roncoroni

El programa Life luego de 70 ciclos del bucle

Lo importante es que el lector experimente la impresionante dinámica de este sistema y de toda la vida artifi cial en general, pues son infi nitas las reglas de autómatas celulares que se pueden inventar.

‘Jugando el juego de la vida 70 veces For Contador = 0 To 70 For cy = 1 To Picture1.Height - 2 For cx = 1 To Picture1.Width - 2

Sum8 = 0 ‘Calculando vecinos entorno de Moore Sum8 = Sum8 + Cells(cx - 1, cy - 1) ‘upper left, etc. Sum8 = Sum8 + Cells(cx, cy - 1) Sum8 = Sum8 + Cells(cx + 1, cy - 1) Sum8 = Sum8 + Cells(cx - 1, cy) Sum8 = Sum8 + Cells(cx + 1, cy) Sum8 = Sum8 + Cells(cx - 1, cy + 1) Sum8 = Sum8 + Cells(cx, cy + 1) Sum8 = Sum8 + Cells(cx + 1, cy + 1) ‘Aplicando las reglas de Life If Cells(cx, cy) = 0 And Sum8 = 3 Then NewCells(cx, cy) = 1 ‘nace ElseIf Cells(cx, cy) = 1 And Sum8 = 3 Then NewCells(cx, cy) = 1 ‘queda igual ElseIf Cells(cx, cy) = 1 And Sum8 = 2 Then NewCells(cx, cy) = 1 ‘queda igual Else NewCells(cx, cy) = 0 ‘muere End If

Next Next

Libro GENERATIVO-plotter.indb 192Libro GENERATIVO-plotter.indb 192 13/01/2016 12:06:3513/01/2016 12:06:35

Page 193: Libro GENERATIVO-plotter

Manual de diseño generativo 193

Ejercicio 27. Edifi cio generativo con la vida artifi cial

Un ejemplo sencillo de la utilización del principio de los autómatas celulares es el proceso del edifi cio generativo, que se describe a continuación, donde se aplicarán los principios de la vida artifi cial para crear un proceso generativo de un rascacielos modular. Este ejercicio se realizará a través de un proceso entre lo manual y lo computarizado empleando un modelador tridimensional (en este caso, 3DSMax)1.

La idea es considerar al rascacielos como un grupo de módulos (células) que van creciendo y que se autoorganizan en cada piso, de acuerdo con las re-glas establecidas por el arquitecto. Las células arquitectónicas podrían adap-tarse a los diferentes contextos del diseño modifi cando su comportamiento y sus detalles.

Difi cultad: moderadamente difícilObjetivos• Aplicar la vida artifi cial a la arquitectura generativa.• Integrar diferentes técnicas y procesos.

1 Este proceso se puede automatizar integral y fácilmente en VBasic, C# o en el mismoMaxScript.

Para profundizar

Pedagogía

La ventaja del sistema es que integra varias técnicas a la vez, y la programación se intro-

duce paulatinamente, pues todo el proceso se podría desarrollar en un script, utilizando

arreglos y matrices. Pero esto complicaría mucho la programación y los estudiantes se con-

centrarían demasiado en los problemas informáticos y no en los retos creativos y de diseño.

El otro aspecto interesante es que el diseño generativo computarizado permite intercam-

biar funciones y procesos entre los alumnos, pues todos siguen un mismo lenguaje formal.

Esto hace posible la creación de híbridos y combinaciones excepcionales.

Obviamente, el proceso se puede complicar y enriquecer bastante, por ejemplo, con el uso

de algoritmos genéticos, redes neurales, etcétera. Las funciones podrían estar diseñadas

de modo que reaccionen al contexto con inteligencia y se automodifi quen. Los elementos

serían capaces de hacer cálculos estructurales, crear un sistema informativo del edifi cio

que pueda relacionarse con las funciones y, a su vez, poner en relación el sistema con el

contexto, es decir, con el espacio externo, otros edifi cios, condiciones climáticas, etcétera.

Libro GENERATIVO-plotter.indb 193Libro GENERATIVO-plotter.indb 193 13/01/2016 12:06:3513/01/2016 12:06:35

Page 194: Libro GENERATIVO-plotter

194 Umberto Roncoroni

Paso a paso1. Se crea un conjunto inicial de células 8 x 8, 10 x 10, etcétera, con seis tipo-

logías diferentes de células (lo que podría ser, evidentemente, más am-plio). Se visualizan estas células en formas de cubo en 3DSMax, y a cada una se le asigna un color para diferenciarla de las demás. En el ejercicio, se usan seis colores: rojo, verde, azul, cian, amarillo y magenta, más un color adicional (negro o gris) que representa un elemento terminal (es decir que no se modifi ca), y también una forma diferente del cubo para tener mayor variedad de casos. En el ejemplo, las 64 celdas se distribu-yen al azar, pero nada impide diseñar restricciones para establecer una determinada lógica de vecindad entre las células.

Símbolos del sistema

2. Algoritmo:a. Inicializar.b. Duplicar el piso, mover verticalmente la copia y aplicar una rotación

en el eje vertical de 90 grados. c. Procesar cada célula de acuerdo con el estado de su vecino y el con-

junto de reglas.d. Volver al punto 2 y repetir el proceso.

Base al azar Copiar Rotar hasta 90° Modifi car por reglas

3. Reglas. Se trata de establecer la lógica con la cual cada elemento de un piso genera el elemento sucesivo, es decir, el elemento que está sobre él. Esto depende del vecino, como en los autómatas celulares; en el ejerci-

Libro GENERATIVO-plotter.indb 194Libro GENERATIVO-plotter.indb 194 13/01/2016 12:06:3513/01/2016 12:06:35

Page 195: Libro GENERATIVO-plotter

Manual de diseño generativo 195

cio se considera un solo vecino, lo que está abajo (naturalmente, esto se puede variar según el gusto y la necesidad). En otras palabras, el nuevo elemento depende del que está en la misma posición en el piso inferior.

Las reglas establecen cuándo el elemento queda igual, cuándo se modi-fi ca o cuándo desaparece (precisamente, como las celdas de un autómata celular). Las reglas dependen de las duplas de colores, si el vecino tiene color igual, complementario o contiguo, y si es un cubo o un prisma.

Vecino Estado Acción

Cubo/prisma Vacío Borrar

Cubo/prisma Complem. Borrar

Cubo Igual Prisma

Cubo Prisma Prisma

Otros casos Igual

Esquema de complementarios y reglas básicas. Se puede, obviamente, ampliar las combinaciones

(otros casos igual).

Desarrollo hasta la novena iteración. Si el sistema no presenta variaciones y comienza a repetirse, hay que intentar una

nueva inicialización o agregar nuevas reglas.

Libro GENERATIVO-plotter.indb 195Libro GENERATIVO-plotter.indb 195 13/01/2016 12:06:3613/01/2016 12:06:36

Page 196: Libro GENERATIVO-plotter

196 Umberto Roncoroni

4. Una vez terminados unos cuantos ciclos del proceso, se deben sustituir los cubos y los prismas de diferentes colores con los diseños acabados, pues cubos y prismas son, en efecto, solamente símbolos abstractos de la gramática generativa. Para la sustitución, en primer lugar, se necesita di-señar unos módulos arquitectónicos tridimensionales escribiendo una función en MaxScript (o en cualquier otro lenguaje, se podría hacer esto en RhinoScript, por mencionar uno). Cada color tiene una función dife-rente, por ejemplo, el cubo rojo podría representar un departamento, el verde una ofi cina, el amarillo una terraza, etcétera. El tamaño del cubo defi ne el espacio donde se diseñarán los elementos construidos con cada función.

5. El proceso de sustitución consiste en otro script que pasa en reseña los objetos de la escena y, cuando encuentra un cubo de un cierto color, diseña la función correspondiente, que ocupa así su lugar. Por último, se tienen todos los elementos sustituidos y la forma del rascacielos fi nal, como se ve en los ejemplos.

Modelos generativos creados en el curso de Bioarquitectura de la Universidad de San Martín de Porres, 2007

Libro GENERATIVO-plotter.indb 196Libro GENERATIVO-plotter.indb 196 13/01/2016 12:06:3613/01/2016 12:06:36

Page 197: Libro GENERATIVO-plotter

Manual de diseño generativo 197

Ejercicio 28. Diff usion limited aggregation

El mecanismo de los autómatas celulares se presta muy bien a la simulación de cualquier proceso recursivo; un ejemplo de esta posibilidad, conceptual-mente simple, pero con un rico potencial generativo, es la tecnología denomi-nada diff usion limited aggregation. Se trata de un sistema compuesto por algu-nas células o partículas “nómadas”, que se mueven en el espacio, y por otras que están fi jas. Cada partícula nómada tiene la propiedad de agregarse a una fi ja y quedar inmóvil cuando está sufi cientemente cerca de ella. Poco a poco, las partículas nómadas se convierten en fi jas, cuyo número va creciendo hasta que no hay espacio para más movimiento.

En este ejercicio, se propone un simple programa en C#. En este caso, se explican los pasos más importantes del código; el lector puede hacer el pro-grama completo apoyándose en los ejercicios anteriores. De cualquier modo, en C# todo resulta bastante sencillo.

Difi cultad: difícilObjetivos• Implementar un sistema de partículas.• Perfeccionar las técnicas de programación.Paso a paso1. Se abre una aplicación Windows y se inserta un objeto gráfi co PictureBox

y un botón (el lector debe agregar el código correspondiente), donde se pega el método public void diff usion() del ejemplo.

2. Se crea un objeto de la clase bitmap Mybitmap con fondo blanco (utili-zando un constructor que importa un archivo .bmp todo blanco, que el lector tiene que crear previamente); un generador de números aleatorios MiRND; un objeto de tipo Color: newColor; las variables para guardar las posiciones, y el parámetro que determina en qué grado son pegajo-sas las partículas fi jas (stickiness).

3. Se establecen las variables y un bucle para colocar unos puntos al azar. Las primeras partículas fi jas se depositan en la parte inferior de labitmap.

Inicialización de la primera línea de puntos

del sistema de agregación difusa

Libro GENERATIVO-plotter.indb 197Libro GENERATIVO-plotter.indb 197 13/01/2016 12:06:3713/01/2016 12:06:37

Page 198: Libro GENERATIVO-plotter

198 Umberto Roncoroni

public void diffusion() {

//inicializando base de puntosint i;int v;Random MiRND = new Random();Color newColor = Color.FromArgb(0, 0, 0);int lastPosY = Mybitmap.Height - 1;for (i = 0; i < Mybitmap.Width; i++){

v = MiRND.Next(0, 5);if(v >= 3){

Mybitmap.SetPixel(i, Mybitmap.Height-2, newColor);}

}//insertar código aquí…

}

4. Se lanzan 38 900 partículas que parten desde arriba. Para cada partícula se realiza un bucle para calcular el movimiento (de tipo browniano); el bucle se interrumpe cuando la partícula se pega a una partícula fi ja. Para esto, en cada movimiento, hay que controlar los vecinos. Estos pasos están explicados en los comentarios del programa. Insertar el código justo después del comentario: //inser-tar código.

//lanzamos algunas partículasfor (i = 0; i < 38900; i++){

//creamos una partícula que parte desde arribaint posX = MiRND.Next(0, Mybitmap.Width);int posY = 0;int startY = 0;//hacemos el modo aleatorio de la partículastartY = lastPosY - 50;if (startY <= 0) startY = 0;for (posY = startY; posY < Mybitmap.Height-2; posY++){

int v2 = MiRND.Next(-1, 2);posX += v2;if (posX <= 2) posX = 2;if (posX >= Mybitmap.Width-3) posX = Mybitmap.Width-3;//controlamos si se agrega o no, mirando a los vecinos//consideramos O, SO, S, SW, W, pero se puede limitar la agregaciónbool agregar = false;Color pixelColor3 = Mybitmap.GetPixel(posX, posY + 1);

Libro GENERATIVO-plotter.indb 198Libro GENERATIVO-plotter.indb 198 13/01/2016 12:06:3713/01/2016 12:06:37

Page 199: Libro GENERATIVO-plotter

Manual de diseño generativo 199

if (pixelColor3.R == 0) agregar = true;//los primeros dos casos simulan una partícula que acepta//pegarse en las esquinas//hay varias posibilidadesint v3 = MiRND.Next(0, 10);if (v3 >= 3){

Color pixelColor = Mybitmap.GetPixel(posX + 1, posY + 1);Color pixelColor2 = Mybitmap.GetPixel(posX - 1, posY + 1);if (pixelColor.R == 0) agregar = true;if (pixelColor2.R == 0) agregar = true;

}int v4 = MiRND.Next(0, 10);if (v4 >= 3){

Color pixelColor4 = Mybitmap.GetPixel(posX + 1, posY);Color pixelColor5 = Mybitmap.GetPixel(posX - 1, posY);if (pixelColor4.R == 0) agregar = true;if (pixelColor5.R == 0) agregar = true;

}if (agregar == true){

//pegamos la partícula pintando ese píxel de negro//agregamos stickinessint v5 = MiRND.Next(0, 10);if(v5 >= 3){

Mybitmap.SetPixel(posX, posY, newColor);//salimos del bucle para lanzar una nueva partículalastPosY = posY;posY = Mybitmap.Height;

}}

}//cerrando modo partícula}//cerrando 38 900 partículas//asignamos la bitmap a la imagen de PictureBox1pictureBox1.Image = Mybitmap;

Primero, se calcula al azar la posición inicial de la partícula posX y posY. En el bucle que sigue, la partícula cae y se mueve aleatoriamente a la derecha o a la izquierda, con la variable V2, controlando que no salga de los límites de la bitmap. Luego se controla si hay partículas fi jas cercanas, en el ejemplo solo se averiguan las de las esquinas. V3 y V4 son variables que defi nen un cierto stickiness al azar. Si este valor coincide con el límite (que el usuario puede variar), el píxel donde se encuentra la partícula se pinta de negro y así se crea una nueva partícula fi ja. Finalmente, termina-da la secuencia, se asigna la bitmap a la imagen de fondo del PictureBox1.

Libro GENERATIVO-plotter.indb 199Libro GENERATIVO-plotter.indb 199 13/01/2016 12:06:3713/01/2016 12:06:37

Page 200: Libro GENERATIVO-plotter

200 Umberto Roncoroni

Ejemplo del programa

Características del movimiento, stickiness y otras propiedades (por ejem-plo, se podría considerar dos clases o más de partículas con diferentes parámetros) se pueden variar para obtener formas diferentes. También es posible trabajar en el espacio tridimensional, aunque datos y cómputo se vuelvan bastante pesados. ¡Pero la paciencia es una de las virtudes del artista generativo!

Ejercicio 29. Erosión con 3DSMax

La erosión es otro proceso natural que se puede simular con los CA. Se trata de un fenómeno recursivo complejo, donde es importante aplicar el concepto de caos y azar. La erosión es la degradación y el transporte del suelo o roca, que son causados por las lluvias, los vientos y la gravitación en la superfi cie de la Tierra. Este fenómeno implica movimiento, transporte del material, en con-traste con la disgregación de las rocas, proceso conocido como meteorización. La erosión produce el relieve de los valles, gargantas, cañones, cavernas y me-sas, así como interesantes soluciones arquitectónicas que el ser humano ha inventado para proteger sus construcciones de este fenómeno, como los rakaf.

Los efectos de la erosión son variados y dependen de parámetros como el clima, la temperatura, las propiedades bioquímicas de la materia, entre otros. Todos, parámetros con los cuales el artista generativo puede experimentar.

Libro GENERATIVO-plotter.indb 200Libro GENERATIVO-plotter.indb 200 13/01/2016 12:06:3713/01/2016 12:06:37

Page 201: Libro GENERATIVO-plotter

Manual de diseño generativo 201

Rocas en Tarma. Foto de Umberto Roncoroni, 2004.

Palacio de Shadi, en Arabia Saudita. Foto de Martino Wynkler.

Este proceso se desarrollará utilizando MaxScript. Para este último ejer-cicio se presenta el script completo; en este punto, el lector puede deducir la lógica por su cuenta, ayudándose con los comentarios, que en MaxScript se indican con los símbolos “- -”, por ejemplo:

- - ¡este es un comentario!

Libro GENERATIVO-plotter.indb 201Libro GENERATIVO-plotter.indb 201 13/01/2016 12:06:3713/01/2016 12:06:37

Page 202: Libro GENERATIVO-plotter

202 Umberto Roncoroni

La cantidad de elementos en el ejemplo es muy pequeña; una vez que el programa funcione correctamente, el lector puede aumentar la dimensión de los arreglos2.

Difi cultad: difícilObjetivos• Interpretar un programa.• Comprender algunas técnicas de programación en 3D.Paso a paso1. Se abre el MaxScript editor y se crean las variables y el arreglo de los

elementos. Obviamente, a más elementos, mayor resolución y detalle tendrá la simulación.

--creando variablesZ=0 as fl oatnumX=20numY=40erosionArray=#()--inicializando el arreglofor Y=1 to numY do( for X=1 to numX do ( append erosionArray 0 ))

2. Se agrega un bucle que asigna un valor de erosión a cada elemento del arreglo. Esta erosión se propaga a los vecinos del elemento que se está procesando. Repetir el proceso 500 veces.

--generando secuencia de valores aleatorios en la malla--la gota se propaga en los cubos con valor menor, se agrega 2,--los del costado 1for cont=0 to 500 do(

--generando una dupla xy, (posición al azar donde se hace erosión)x=random 1 numXy=random 1 (numY-1)pos=x+y*numX--leyendo el valor de la posición e incrementandoa=erosionArray[pos]a=a+1

2 El ejemplo se puede descargar de htt p://www.digitalpoiesis.org

Libro GENERATIVO-plotter.indb 202Libro GENERATIVO-plotter.indb 202 13/01/2016 12:06:3813/01/2016 12:06:38

Page 203: Libro GENERATIVO-plotter

Manual de diseño generativo 203

--actualizando el valor erosionArray[pos]=a --propagando cubo a la derecha if x<numX then ( --erosionando el elemento del costado pos2=(x+1)+y*numX if erosionArray[pos2]<erosionArray[pos] then ( --leyendo el valor de la posición e incrementando a2=erosionArray[pos2] a2=a2+1 erosionArray[pos2]=a2 ) ) --propagando cubo a la izquierda if x>1 then ( --erosionando el elemento del costado pos2=(x-1)+y*numX if erosionArray[pos2]<erosionArray[pos] then ( --leyendo el valor de la posición e incrementando a2=erosionArray[pos2] a2=a2+1 erosionArray[pos2]=a2 ) ) --propagando cubo abajo if y>1 then ( --erosionando el elemento del costado pos2=x+(y-1)*numX if erosionArray[pos2]<erosionArray[pos] then ( --leyendo el valor de la posición e incrementando a2=erosionArray[pos2] a2=a2+1 erosionArray[pos2]=a2 ) ) --propagando cubo arriba if y<(numY-1) then ( --erosionando el elemento del costado pos2=x+(y+1)*numX if erosionArray[pos2]<erosionArray[pos] then (

Libro GENERATIVO-plotter.indb 203Libro GENERATIVO-plotter.indb 203 13/01/2016 12:06:3813/01/2016 12:06:38

Page 204: Libro GENERATIVO-plotter

204 Umberto Roncoroni

--leyendo el valor de la posición e incrementando a2=erosionArray[pos2] a2=a2+1 erosionArray[pos2]=a2 ) ))

3. Finalmente, se crean otros bucles para generar los cubos, numX x numY.

--creando objetos cubo--posicionando en Z de acuerdo con el valor del buffer erosionArrayfor Y=1 to (numY-1) do( for X=1 to numX do ( mycube=box length:1 width:1 height:1 pos=x+y*numX if erosionArray[pos]==8 then ( mycube.material=meditMaterials[7] Z=erosionArray[pos]/6.0 ) if erosionArray[pos]==7 then ( mycube.material=meditMaterials[6] Z=erosionArray[pos]/6.0 ) else if erosionArray[pos]==6 then ( mycube.material=meditMaterials[5] Z=erosionArray[pos]/6.0 ) if erosionArray[pos]==5 then ( mycube.material=meditMaterials[4] Z=erosionArray[pos]/6.0 ) else if erosionArray[pos]==4 then ( mycube.material=meditMaterials[3] Z=erosionArray[pos]/6.0 ) else if erosionArray[pos]==3 then ( mycube.material=meditMaterials[2] Z=erosionArray[pos]/6.0 )

Libro GENERATIVO-plotter.indb 204Libro GENERATIVO-plotter.indb 204 13/01/2016 12:06:3813/01/2016 12:06:38

Page 205: Libro GENERATIVO-plotter

Manual de diseño generativo 205

else ( mycube.material=meditMaterials[1] Z=erosionArray[pos]/5.0 ) --posicionando mycube.pos=[X,Y,Z] --borrando si es que se ha movido demasiado if erosionArray[pos]>=11 then ( delete mycube ) ))

De acuerdo con el valor correspondiente en el arreglo creado con ante-rioridad, se asignan las propiedades al cubo, posición y color. Si el valor de erosión supera un cierto límite, se borra el cubo. Se generan así de-presiones, hendiduras y huecos.

Tres niveles de erosión con el programa. Umberto Roncoroni, octubre de 2013.

Libro GENERATIVO-plotter.indb 205Libro GENERATIVO-plotter.indb 205 13/01/2016 12:06:3813/01/2016 12:06:38

Page 206: Libro GENERATIVO-plotter

Libro GENERATIVO-plotter.indb 206Libro GENERATIVO-plotter.indb 206 13/01/2016 12:06:3913/01/2016 12:06:39

Page 207: Libro GENERATIVO-plotter

Manual de diseño generativo 207

Las ramifi caciones son las formas naturales más complejas y con más fl exibi-lidad topológica: presentan muchas variedades de formas autosimilares, son fractales y, estructuralmente, consiguen la mejor relación entre la efi ciencia y el consumo de recursos. Por eso son también las formas más comunes de la naturaleza.

Los principios de las estructuras ramifi cadas se pueden aplicar al diseño de muchos artefactos, aparatos o máquinas en campos diferentes. Para compro-barlo, basta con pensar en los elementos en común que tienen un árbol, un río y una estructura de datos, como los árboles de búsqueda binarios, donde se encuentra el equilibrio optimizado entre la cantidad de datos y el número de nodos que hay que recorrer para su acceso.

En este tutorial, se tratará de aplicar las gramáticas generativas para diseñar árboles de varias formas y características. Pero, en primer lugar, hay que enten-der la naturaleza de los árboles, cómo crecen y cuáles son sus características.

Ramifi caciones en la naturaleza Ramifi caciones en las redes informáticas

Anatomía y arquitectura de los árboles • Ramifi cación simpodial con los sistemas-L • Árbol simpodial

con epitonía • Árbol monopodial con hipotonía • Árbol con accidentes naturales • Árbol 3D

Árboles y ramifi caciones

Tutorial

6

Libro GENERATIVO-plotter.indb 207Libro GENERATIVO-plotter.indb 207 13/01/2016 12:06:3913/01/2016 12:06:39

Page 208: Libro GENERATIVO-plotter

208 Umberto Roncoroni

Al terminar este tutorial, el lector tendrá los conocimientos para:• Comprender las estructuras ramifi cadas.• Aplicar las formas ramifi cadas en los procesos de diseño.• Desarrollar ejercicios didácticos utilizando árboles y ramifi caciones.• Sustentar estéticamente un proyecto generativo.• Mejorar sus principios y metodologías generativas.

6.1 ANATOMÍA Y ARQUITECTURA DE LOS ÁRBOLES

La forma de los árboles depende de muchos factores1: en primer lugar, de las condiciones ambientales (el viento, el agua y las características del suelo) y, luego, de la naturaleza biológica de cada especie. Es oportuno conocer, por lo menos sintéticamente, los aspectos esenciales de esta biología.

6.1.1 Principios morfológicos de los árboles

Como explica Stevens (1986), toda forma se debe a la ley del menor esfuerzo, es decir, la forma es el resultado de la adaptación a las necesidades de sobrevi-vencia de cada organismo. Para clasifi car las diferentes formas de los árboles, se toman en cuenta tres parámetros: arquitectura, unidad arquitectural y rei-teración (Hallë, 2001). Todos estos aspectos pueden ser simulados mediante el software o con los sistemas-L.

• Arquitectura. El modelo arquitectural resulta de la combinación de di-ferentes características morfológicas básicas: tipo de crecimiento, tipo de ramifi cación, distribución de las ramas en la entidad portadora, fi lotaxis, orientación de los ejes en el espacio, así como la presencia (o ausencia) y posición de las estructuras sexuales. Existen alrededor de veintitrés modelos en la naturaleza, que se aplican indistintamente a diferentes especies.

• Unidad arquitectural. La unidad arquitectural defi ne la arquitectura típica de cada especie y describe, de manera completa y precisa, la forma de una planta.

• Reiteración. Consiste en que el crecimiento del árbol se realiza a través de formas ya utilizadas en alguna etapa previa de su desarrollo. Esta repetición parcial o total de la arquitectura elemental (unidad arquitec-tural) es el mecanismo esencial por el cual se construye la copa en la mayoría de los árboles y da razón de su naturaleza fractal y autosimilar.

1 La morfología vegetal se comenzó a estudiar a partir de los trabajos de JohannWolfgang Goethe en 1790.

Libro GENERATIVO-plotter.indb 208Libro GENERATIVO-plotter.indb 208 13/01/2016 12:06:4013/01/2016 12:06:40

Page 209: Libro GENERATIVO-plotter

Manual de diseño generativo 209

6.1.2 Crecimiento

Los árboles pueden crecer verticalmente hacia arriba, verticalmente hacia abajo (las raíces) y horizontalmente. No todas las partes del árbol reciben ali-mento y agua en la misma cantidad; algunas ramas resultan favorecidas con respecto a otras (hipotonía). Como consecuencia, el tronco crece con simetría axial (ramas en todas las direcciones hacia arriba), y las ramas con simetría bilateral (con dirección horizontal hacia abajo).

La dominancia apical consiste en la tendencia de las plantas a mostrar un mayor crecimiento en la punta (ápice) de cada rama principal en una medida que depende de la especie, la vitalidad del árbol y el vigor vegetativo del tallo en cuestión.

Dominancia apical

El plagiotropismo es la tendencia de los árboles maduros a desarrollar las ramas más bajas y peor iluminadas de forma perpendicular a la gravedad. Por ello las copas de estos árboles son planas por su cara inferior.

La hipotonía consiste en que la brotación se induce en las yemas peor ilu-minadas, esto es, las situadas en la parte inferior de la rama y que están orien-tadas hacia la periferia de la copa. Estos brotes solo comienzan a desarrollarse cuando la yema terminal de esa rama reduce su dominancia.

La isotonía ocurre cuando las yemas son inducidas a brotar según su ex-posición a la luz y su ubicación sobre el tallo. La epitonía sucede cuando bro-tan las yemas más iluminadas situadas en la parte superior de los tallos, y esos brotes tienden a curvarse hacia la periferia de la copa para conseguir mejor iluminación.

Es importante notar, con respecto a la variedad de formas que caracteriza a los árboles, que en los individuos viejos las ramas se convierten en troncos independientes (donde se observa el aspecto autosimilar del árbol). El árbol

Libro GENERATIVO-plotter.indb 209Libro GENERATIVO-plotter.indb 209 13/01/2016 12:06:4013/01/2016 12:06:40

Page 210: Libro GENERATIVO-plotter

210 Umberto Roncoroni

pierde su unidad y se transforma en un cuerpo constituido por muchos indi-viduos, lo que impide el crecimiento de ramas gruesas en el centro del árbol. Finalmente, cabe señalar que la forma depende también de la edad de la planta.

6.1.3 Ramifi cación

Se denomina crecimiento monopodial cuando la rama se desarrolla sobre la misma yema que llevó a cabo el crecimiento anterior, es decir, en cuya zona apical perdura el crecimiento vegetativo y a cuyos lados crecen ramas secun-darias (como ocurre con las coníferas). El crecimiento simpodial supone que la yema original muere y para el siguiente desarrollo toma su lugar la yema o las yemas laterales más cercanas o disponibles.

Crecimiento simpodial

La orientación de las ramas cambia de acuerdo con la edad de los árboles.

Libro GENERATIVO-plotter.indb 210Libro GENERATIVO-plotter.indb 210 13/01/2016 12:06:4013/01/2016 12:06:40

Page 211: Libro GENERATIVO-plotter

Manual de diseño generativo 211

6.1.4 Aplicaciones

Los árboles y las estructuras ramifi cadas tienen muchas aplicaciones en el di-seño. El ejemplo más conocido de esta colaboración entre naturaleza y arte, en el sentido generativo, es el trabajo del arquitecto catalán Antoni Gaudí.

Los sistemas-L son especialmente utilizados en la generación de modelos de paisajes virtuales, simulando no solo árboles, sino otros fenómenos natura-les ramifi cados, como ríos o rayos, por ejemplo, para los videojuegos.

Gaudí se inspiró en los árboles para diseñar las columnas y la bóveda de la Sagrada Familia.

Cada especie tiene su unidad arquitectónica. Pino, pino italiano y olmo. Ilustraciones de Umberto Roncoroni, 2013.

Libro GENERATIVO-plotter.indb 211Libro GENERATIVO-plotter.indb 211 13/01/2016 12:06:4413/01/2016 12:06:44

Page 212: Libro GENERATIVO-plotter

212 Umberto Roncoroni

Ejercicio 30. Ramifi cación simpodial con los sistemas-L

Diseñar árboles con los sistemas-L es muy fácil: Lindenmayer desarrolló esta técnica generativa precisamente con este fi n. En el primer ejercicio de este tutorial se creará la estructura geométrica de un árbol genérico, lo que ser-virá como base para introducir las variaciones y los accidentes naturales que caracterizan a los árboles reales. Para facilitar el trabajo, se comenzará con un diseño en dos dimensiones.

En el ejercicio, se usará un conjunto de símbolos muy simple: el símbolo no terminal “a”, los símbolos “[,]” para las ramifi caciones y los símbolos “P, +, -” para las rotaciones. Se realizará, entonces, un árbol geométrico y simétrico, lo que en estructura de datos se conoce como árbol binario.

Difi cultad: fácilObjetivos• Comprender la geometría de las estructuras ramifi cadas.• Implementar la gramática generativa con los sistemas-L.Paso a paso1. Se abre la ventana “Grammar” y se comienza con una simple rama

vertical. Axioma: “P>a”2. En la regla del símbolo “a”, se debe abrir dos ramas, una por la derecha

y otra por la izquierda. Para crear las ramas se usan “[” (abre rama) y “]” (cierra rama). Con “P+” y “P-” se habilitan las rotaciones en el eje Z.

a “p[P+a][P-a]” Nótese que el crecimiento es apical, pues el símbolo “a” está sustituido

por el símbolo “p”, que es terminal. Las ramas pueden ser embebidas una dentro de la otra (reproduciendo

así el fenómeno de la repetición).

Árbol binario bidimensional. Gramática y visualización.

Libro GENERATIVO-plotter.indb 212Libro GENERATIVO-plotter.indb 212 13/01/2016 12:06:4513/01/2016 12:06:45

Page 213: Libro GENERATIVO-plotter

Manual de diseño generativo 213

3. Se copian las reglas en todas las iteraciones, se asigna a “a” el objeto línea y en la ventana principal se coloca 4/5 iteraciones, el tamaño de la rama y el valor del ángulo. ¡Y listo!

Ejercicio 31. Árbol simpodial con epitonía

En este ejercicio se va perfeccionando el diseño para acercar al lector a la forma de un árbol real. Por ejemplo, habría que hacer algo para que los ángulos de las nuevas ramas sean menores que las ramas más viejas (epitonía). Asimismo, habría que reducir el tamaño, pues las ramas más jóvenes son más pequeñas.

Se agrega a la gramática anterior el símbolo “:” en cada rama para dismi-nuir el tamaño y, adicionalmente, se puede activar la variación automática de tamaño abriendo la ventana “Options”.

Difi cultad: fácilObjetivo• Perfeccionar el modelo del árbol.Paso a paso1. El axioma es el mismo del ejercicio anterior.2. La regla de “a” se modifi ca así: a “p[P+:a][P-:a]”3. Se continúa como en el ejercicio anterior.

El ángulo es de 36 grados, la gradiente de reducción es 25 %. Y se activó la opción automática de la ventana “Options”.

Libro GENERATIVO-plotter.indb 213Libro GENERATIVO-plotter.indb 213 13/01/2016 12:06:4613/01/2016 12:06:46

Page 214: Libro GENERATIVO-plotter

214 Umberto Roncoroni

Ejercicio 32. Árbol monopodial con hipotonía

Como ya se vio en la introducción al tutorial, la brotación es diferente en el tronco y en las ramas. En este ejercicio se construirá un árbol cuyo tronco ten-ga simetría radial y cuyas ramas presenten simetría bilateral. La novedad es que se deben utilizar necesariamente dos símbolos. El símbolo “a” crece con simetría radial, el símbolo “b” con simetría bilateral.

Difi cultad: moderadamente difícilObjetivo• Perfeccionar el modelo del árbol.Paso a paso1. El axioma es el mismo del ejercicio anterior.2. La regla de “a” se modifi cará agregando un brote después de la rama,

para simular el crecimiento monopodial: a “p[P+:b][P-:b]a”

Gramática y desarrollo de la ramifi cación

3. Para la regla de “b”, se modifi ca la regla de “a” insertando un pedazo de tronco entre las dos ramas, el símbolo “p”, de manera que se varía la simetría: b “p[P+p]p[P-p]b”

Libro GENERATIVO-plotter.indb 214Libro GENERATIVO-plotter.indb 214 13/01/2016 12:06:4613/01/2016 12:06:46

Page 215: Libro GENERATIVO-plotter

Manual de diseño generativo 215

Crecimiento del símbolo “b”, con simetría axial

4. Una vez terminada de impostar la gramática, se sigue como en el ejerci-cio anterior.

Ejercicio 33. Árbol con accidentes naturales

En este ejercicio, se continúa perfeccionando el diseño, considerando que las ramas sufren varios accidentes y no todas se desarrollan de la misma forma; por consiguiente, la simetría del árbol puede mostrar interferencias.

Trabajando bien con los parámetros es posible simular las arquitecturas de los árboles naturales. Con tal fi n, se debe combinar el factor de escala (pará-metro “decay”), el valor aleatorio del ángulo “@” (este es mayor en los árboles viejos, que presentan más variaciones y tipologías de ramas) y el grado de casualidad en el brote de las ramas, variando las reglas.

Para esto se utilizan las reglas estocásticas: en ciertos casos, las ramas bro-tan (regla estándar) y en otros no (reglas estocásticas); para variar los ángulos, se pueden emplear tanto las reglas estocásticas como el símbolo “@”, cuyo va-lor aleatorio se establece en la ventana “Options”.

Difi cultad: moderadamente difícilObjetivos• Comprender la forma de los árboles reales, con sus accidentes.• Perfeccionar el uso de los procesos aleatorios utilizando los sistemas-L

estocásticos. Paso a paso1. Se importa la gramática realizada en el ejercicio 31.

Libro GENERATIVO-plotter.indb 215Libro GENERATIVO-plotter.indb 215 13/01/2016 12:06:4613/01/2016 12:06:46

Page 216: Libro GENERATIVO-plotter

216 Umberto Roncoroni

2. Para simular los accidentes se utilizan las reglas estocásticas, que se ac-tivan en el menú principal. En las reglas estocásticas se modifi ca la re-gla estándar, y el sistema escoge al azar entre las dos. Con esto puede suceder que se eliminan algunas ramas, varía la dirección, el tamaño, etcétera.

Las reglas estocásticas

3. Ángulos al azar. También se puede usar el símbolo “@”, que permite obtener un ángulo de rotación al azar.

Jugando con las reglas estocásticas. Obsérvese las diferencias entre las reglas.

Libro GENERATIVO-plotter.indb 216Libro GENERATIVO-plotter.indb 216 13/01/2016 12:06:4613/01/2016 12:06:46

Page 217: Libro GENERATIVO-plotter

Manual de diseño generativo 217

Jugando con las reglas estocásticas. Gráfi cos.

Ejemplos y render 3D con 3DSMax

Ejercicio 34. Árbol 3D con los sistemas-L

En este ejercicio se muestra cómo implementar las ramifi caciones en 3D, de-jando al lector la tarea de realizar modifi caciones y accidentes, tal como se ha hecho en los ejercicios anteriores.

Para construir un árbol en 3D simplemente hay que agregar un eje de ro-tación, pues, primero, se rota la rama alrededor de la rama principal y luego, con la segunda rotación, se determina su inclinación.

Después, se pueden agregar las hojas colocando un símbolo en la última iteración. En el menú de objetos de GDesign, existe un objeto Hoja; como al-ternativa, se puede asignar un objeto script al símbolo y uno script en 3DSMax, POV-Ray2 o RhinoScript, etcétera.

2 Utilizando la librería de referencia disponible si se descarga el programa GDesign.

Libro GENERATIVO-plotter.indb 217Libro GENERATIVO-plotter.indb 217 13/01/2016 12:06:4713/01/2016 12:06:47

Page 218: Libro GENERATIVO-plotter

218 Umberto Roncoroni

Difi cultad: relativamente difícilObjetivos• Realizar un árbol en 3D.• Perfeccionar la programación de los sistemas-L. Paso a paso1. El axioma es el mismo de los ejercicios anteriores.2. Se crean tres ramas, una cada 120 grados. Se deben utilizar dos ejes de

rotación: “D” y “P”, y dos ángulos diferentes, empleando los símbolos “/, \” (cuyo valor se pone en la ventana “Options”) y los símbolos “+, -”.

a “b[P+a][D/P+a][D//P+a]”

3. Se copia esta regla en todas las iteraciones. Hay que destacar que el nú-mero de ramas crece mucho más que en la ramifi cación 2D, por lo que la memoria se puede saturar muy rápidamente. Se aplica la opción auto-mática (como en el ejercicio anterior) para reducir el tamaño de la rama en cada nueva generación.

El axioma está rotado para poner la línea en vertical (P>).

Libro GENERATIVO-plotter.indb 218Libro GENERATIVO-plotter.indb 218 13/01/2016 12:06:4713/01/2016 12:06:47

Page 219: Libro GENERATIVO-plotter

Manual de diseño generativo 219

4. En la regla de la última generación se utiliza el símbolo “b”, que repre-senta a las hojas. Se las visualiza con una esfera verde (símbolo “p”), achicando el tamaño con una serie de símbolos “::::”.

a(5) “b[P+:::p][D/P+:::p][D//P+:::p]”

En la regla 5, se utiliza el símbolo “p”, al que se ha asignado en la ventana “Options” la esfera verde.

Para reducir ulteriormente el tamaño de las ramas se puede agregar el símbolo “:” y regular el efecto con el parámetro

“decay”.

Libro GENERATIVO-plotter.indb 219Libro GENERATIVO-plotter.indb 219 13/01/2016 12:06:4813/01/2016 12:06:48

Page 220: Libro GENERATIVO-plotter

220 Umberto Roncoroni

5. En 3DSMax, se puede sustituir esta esfera con un diseño apropiado, uti-lizando MaxScript.

Desarrollo del árbol 3D con accidentes y hojas en MaxScript

Libro GENERATIVO-plotter.indb 220Libro GENERATIVO-plotter.indb 220 13/01/2016 12:06:4813/01/2016 12:06:48

Page 221: Libro GENERATIVO-plotter

Manual de diseño generativo 221

El mundo de los microorganismos ofrece al estudioso de la forma y al artista una fuente infi nita de ideas e inspiración que puebla de seres fantásticos las historietas, las películas de ciencia fi cción y los videojuegos, así como mode-los para el diseño industrial y la arquitectura. En este tutorial, se utilizarán los procesos generativos para crear una familia de organismos inspirados en los radiolarios, microorganismos marinos que se caracterizan por formas y estructuras de rara belleza.

Placa de Ernst Haeckel de 1904, Kunstformen der Natur (Arte de la

naturaleza), que muestra radiolarios de la superfamilia Stephoidea

Los radiolarios • Estructura de un radiolario con los sistemas-L • Variaciones y parametrización de la

estructura • Organismos con los sistemas-L genéticos

Organismos

Tutorial

7

Libro GENERATIVO-plotter.indb 221Libro GENERATIVO-plotter.indb 221 13/01/2016 12:06:4913/01/2016 12:06:49

Page 222: Libro GENERATIVO-plotter

222 Umberto Roncoroni

Además, se tratará de perfeccionar el potencial generativo de los sistemas-L para ver de qué manera un esquema rígido, como lo es una gramática, al utili-zar bien los parámetros y el azar, puede desarrollar propiedades emergentes.

En primer lugar, se estudiarán los aspectos biológicos de los radiolarios. Después, se realizará el desarrollo de un radiolario completo con un sistema-L, desde el esquema base hasta la búsqueda de diferentes variedades, incluso utilizando los principios de la genética.

Al terminar este tutorial, el lector tendrá los conocimientos para:• Comprender las relaciones entre las formas naturales y artifi ciales.• Integrar diferentes herramientas en un proyecto generativo complejo.• Perfeccionar sus principios y metodologías generativas.• Realizar modelos generativos avanzados.• Sustentar estéticamente un proyecto generativo.

7.1 LOS RADIOLARIOS

Los radiolarios son microorganismos marinos de menos de 2 mm de diáme-tro, y son parte del plancton. Viven hasta una profundidad de un centenar de metros. Se hacen transportar por las corrientes marinas y presentan grandes diferencias de comportamiento entre sí (Horowitz y Pott er, 1971).

Radiolarios. Imagen de Randolph Femmer.

Libro GENERATIVO-plotter.indb 222Libro GENERATIVO-plotter.indb 222 13/01/2016 12:06:5013/01/2016 12:06:50

Page 223: Libro GENERATIVO-plotter

Manual de diseño generativo 223

Anatomía de un radiolario. Ilustración de Umberto Roncoroni, 2012.

Están compuestos por un esqueleto de silicio, dotado de pseudópodos, a veces utilizados para alimentarse; y por una masa suave denominada endo-plasma, encapsulada dentro del esqueleto. La mayoría de ellos tiene forma esférica, pero abundan también aquellos de otras formas, como cónicas o te-traédricas. Las cápsulas de los radiolarios muertos se depositan en el fondo de los mares, formando capas de rocas sedimentarias.

Para la clasifi cación morfológica de los radiolarios, se toma en cuenta la composición de la concha, su forma, el tamaño y el aspecto de las espículas. Sin embargo, todavía se discute acerca de cómo clasifi carlos.

7.1.1 Los radiolarios en el arte

Los radiolarios son famosos gracias a las ilustraciones del biólogo alemán Ernst Haeckel, quien comenzó a estudiarlos en el siglo XIX1. Posteriormente, el arquitecto catalán Antoni Gaudí se inspiró en estas formas, así como lo han hecho otros arquitectos y diseñadores.

1 Véase Kunstformen der Natur (Art Forms in Nature), y Die Natur als Künstlerin (Nature as Artist). Recuperado de htt p://caliban.mpiz-koeln.mpg.de/haeckel/kunstformen/Haec-kel_Kunstformen.pdf

Corno apical

EncéfaloCápsula Núcleo Espina principal

Espinas

Axópodos

Abdomen

Trípode

Libro GENERATIVO-plotter.indb 223Libro GENERATIVO-plotter.indb 223 13/01/2016 12:06:5013/01/2016 12:06:50

Page 224: Libro GENERATIVO-plotter

224 Umberto Roncoroni

En la actualidad, gracias a los programas de diseño 3D, los artistas tienen la posibilidad de explorar este universo formal como nunca antes, de acuerdo con el crítico de la arquitectura Nikos A. Salingaros (2001), aunque a veces estas formas son utilizadas en sentido puramente decorativo.

Antoni Gaudí, Casa Batlló, 1902-1919

René Binet, ingreso a Paris World Expo, 1900 Constant Roux, candelabro, circa 1907

Antiguas casas en la roca, Turquía

Libro GENERATIVO-plotter.indb 224Libro GENERATIVO-plotter.indb 224 13/01/2016 12:06:5013/01/2016 12:06:50

Page 225: Libro GENERATIVO-plotter

Manual de diseño generativo 225

Ejercicio 35. Estructura de un radiolario con los sistemas-L

La arquitectura de un radiolario es relativamente simple y se puede simular de muchas formas, pero la difi cultad se encuentra en que el verdadero obje-tivo es lograr una gramática que ofrezca un potencial generativo. Este poder generativo de cada gramática depende de cómo se construye y de cómo se plantean las interacciones entre las reglas y los parámetros. Otra difi cultad es determinar la coherencia generativa del modelo, en otras palabras, la capaci-dad de su estructura para adaptarse a estos parámetros. Note el lector que un modelo completo podría estar compuesto por diferentes partes que se ensam-blan sucesivamente entre sí con un programa de diseño 3D.

Primero, se diseñará esta estructura básica, para luego implementar las va-riaciones y funciones adicionales.

Difi cultad: moderadamente difícilObjetivos• Construir el esqueleto de un radiolario.• Perfeccionar el manejo de los sistemas-L.Paso a paso1. Se utilizan el símbolo “a”, un símbolo terminal (“p”) y los símbolos para

las rotaciones, los cambios de dirección y las ramas, que ya son conocidos.2. Se plantea gráfi camente la secuencia del proceso. Una posible solución

es: a) comenzar con unos elementos dispuestos en simetría radial alre-dedor del eje Y; b) estos elementos se clonan en capas dispuestas verti-calmente; c) luego cada elemento (los puntos negros del dibujo) origina ramas de elementos verticales y horizontales que se conectan entre sí, formando una suerte de red.

Absolute Towers (MAD Architects), en Toronto; Central Television HQ (Rem Koolhaas), en Beijing; Museo Guggenheim (Frank Gehry),

en Bilbao. Son ejemplos de diseños en los que prevalece el capricho formal sobre la funcionalidad.

Libro GENERATIVO-plotter.indb 225Libro GENERATIVO-plotter.indb 225 13/01/2016 12:06:5213/01/2016 12:06:52

Page 226: Libro GENERATIVO-plotter

226 Umberto Roncoroni

3. Axioma. Se muestran los elementos dispuestos alrededor del eje Y. El axioma es una cadena bastante larga, y cada elemento es una rama con origen en el centro. Se utiliza el símbolo “M” para sintetizar el posi-cionamiento de cada rama. Así, se puede usar “[P+Ma]”, en lugar de “[P+FFFFFFFFFFa]”.

Visualización del axioma, ejemplo de una rama y uso del símbolo “M”

Entonces, así resulta el axioma: “[FMa][T+Ma][T++Ma][T+++Ma][T++++Ma][T+++++Ma][T-Ma][T--Ma]

[T---Ma][T----Ma][T-----Ma][T------Ma]” El ángulo (el valor de “+” y “-”) es de 30 grados centígrados. “+, -” se pue-

den combinar y sus valores se suman: “+++” = 90 grados.4. Se copia la cadena en la primera regla de “a”. a(1) “[FMa][T+Ma][T++Ma][T+++Ma][T++++Ma][T+++++Ma][T-Ma][T-

-Ma][T---Ma][T----Ma][T-----Ma][T------Ma]”

Esquema del proceso, puntos a, b y c

Libro GENERATIVO-plotter.indb 226Libro GENERATIVO-plotter.indb 226 13/01/2016 12:06:5213/01/2016 12:06:52

Page 227: Libro GENERATIVO-plotter

Manual de diseño generativo 227

5. Luego hay que modifi car el axioma, que será una serie de símbolos “a” dispuestos verticalmente. Se utiliza “Y” para cambiar la dirección, sin ol-vidarse de reponer la dirección horizontal con “X”2. La regla de cada una de estas “a” desarrolla lo que era el axioma en el paso 2.

Axioma = “[a]YFFFFFX[a]YFFFFFX[a]YFFFFFX[a]”

Visualización del axioma. Cada anillo está en una rama.

6. Conexiones. Ahora se debe establecer una nueva regla de “a” en la itera-ción 2, donde se hará desprender de “a” cuatro ramas ortogonales. Las ramas de cada “a” se conectarán entre sí formando una suerte de andamio.

a(2) “a[Yaaaa][T<aa][T>aa]”

Desarrollo con la regla 2, visualizada en el recuadro

2 Si no se vuelve a poner la dirección en el eje X, ¡todo se desarrolla en vertical!

Libro GENERATIVO-plotter.indb 227Libro GENERATIVO-plotter.indb 227 13/01/2016 12:06:5313/01/2016 12:06:53

Page 228: Libro GENERATIVO-plotter

228 Umberto Roncoroni

Para crear el anillo horizontal que irá en la tapa superior, de modo que no queden los últimos elementos verticales de la estructura, se necesita utilizar el símbolo “b”, modifi cando también el axioma. Dejo al lector comprobar los cambios de la gramática.

Axioma = “[a]YFFFFFX[a]YFFFFFX[a]YFFFFFX[b]” b(1) “[Mb][T+Mb][T++Mb][T+++Mb][T++++Mb][T+++++Mb][T-Mb]

[T--Mb][T---Mb][T----Mb][T-----Mb][T------Mb]” b(2) “b[T<bb][T>b”

Las reglas para crear la tapa superior con el símbolo “b”

Ejercicio 36. Variaciones y parametrización de la estructura

Esta estructura básica, analizada en el ejercicio anterior, se puede modifi car y parametrizar. Una buena solución es fragmentar las reglas, es decir, separar el proceso en varias etapas y controlar la producción de los símbolos mediante bloqueos con el símbolo “=”. Así que el símbolo “b” de la primera regla de “a”, seguido de 5 “=”, se activará solo al llegar a la regla 73.

Difi cultad: difícilObjetivos• Simular la forma de un microorganismo del tipo radiolario.• Profundizar en las técnicas de los sistemas-L.Paso a paso1. Primero, hay que experimentar manualmente diferentes procesos.

3 Las gramáticas de los ejercicios se pueden descargar de htt p://www.digitalpoiesis.org/download

Libro GENERATIVO-plotter.indb 228Libro GENERATIVO-plotter.indb 228 13/01/2016 12:06:5413/01/2016 12:06:54

Page 229: Libro GENERATIVO-plotter

Manual de diseño generativo 229

2. Como el lector puede notar, también la secuencia de las operaciones es diferente del caso anterior.

La estructura es una simetría radial de 8 partes con incremento de 45 grados. Umberto Roncoroni, 2012.

Para obtener distintas especies se requiere desarrollar diferentes arquitecturas.

Las reglas del primer y del cuarto modelo

Libro GENERATIVO-plotter.indb 229Libro GENERATIVO-plotter.indb 229 13/01/2016 12:06:5413/01/2016 12:06:54

Page 230: Libro GENERATIVO-plotter

230 Umberto Roncoroni

3. Ahora, se realiza un modelo más complejo, con más divisiones. Se agre-ga también otras características morfológicas, como cuernos y fl agelos. Aquí será necesario bloquear algunos de ellos por turnos.

Con solo dos símbolos, en ciertas etapas se tienen que desactivar algu-nos de ellos con “=”.

4. Para generar modelos acabados, se pueden utilizar subsistemas4; es po-sible elaborar el rendering del modelo empleando fi ltros digitales, como en la imagen siguiente. Para generar la ilustración, se recurrió a técnicas de image processing de las que se tratará en el último tutorial.

4 Un susbsistema es un sistema-L que en GDesign se puede utilizar como elemento de otro sistema-L. Los subsistemas tienen una gramática y parámetros independientes, pero también símbolos sensibles al contexto del sistema principal. Véase el manual de GDesign descargable de htt p://www.digitalpoiesis.org/download

Con más elementos el diseño se vuelve más natural y orgánico. Render con POV-Ray. Umberto Roncoroni, 2012.

Libro GENERATIVO-plotter.indb 230Libro GENERATIVO-plotter.indb 230 13/01/2016 12:06:5613/01/2016 12:06:56

Page 231: Libro GENERATIVO-plotter

Manual de diseño generativo 231

Ejercicio 37. Organismos con los sistemas-L genéticos

Un sistema-L, como aquellos desarrollados anteriormente, es una cadena de caracteres alfanuméricos que se puede comparar a una secuencia de ADN, donde cada símbolo es una suerte de gen digital. De acuerdo con esta metá-fora (pues se trata de una interpretación artística, no de una aplicación cientí-fi ca), es posible mezclar dos sistemas-L entre sí, extraer algunas de sus partes e insertarlas en otros sistemas, como hacen los ingenieros genéticos. Los re-sultados pueden ser caóticos u ordenados, solamente hay que experimentar, porque la programación es simple: se trata de manipular caracteres ASCII.

Ingeniería genética generativa

Este proceso se puede implementar fácilmente utilizando cadenas de símbo-los que se combinan entre sí. Imitando estas posibilidades de la genética, se obtiene una complejidad más grande que la que permite la permutación de los símbolos. Puede ser arbitraria o respetar una lógica más científi ca.

Por ejemplo, mezclando dos cadenas de símbolos, se logra jugar con varias combinaciones:

Cadena 1 = “ab”; Cadena 2 = “cd”Diferentes posibilidades de reglas y permutaciones: C1 & C2 “abcd”; “acbd”; “cadb”; “cdab” C1 + C2 a + c = e; b + d = f; ab + cd = ef

Umberto Roncoroni, Zoo, 2013. Desde una gramática con pocos cambios se generan organismos muy diversos.

Muchas veces, en el trabajo se cometen errores que, sin embargo, resultan ser más interesantes que el planteamiento

correcto. El organismo tentacular de la derecha y sus variantes de la esquina izquierda se obtuvieron por una regla

equivocada en la misma gramática que generó los demás.

Libro GENERATIVO-plotter.indb 231Libro GENERATIVO-plotter.indb 231 13/01/2016 12:06:5713/01/2016 12:06:57

Page 232: Libro GENERATIVO-plotter

232 Umberto Roncoroni

Ingeniería genética aplicada a los sistemas-L. A la izquierda, los padres; a la derecha, el producto

del cruce genético. Los símbolos del primer sistema se mezclan con el segundo de modo orde-

nado: primero, un grupo del sistema 1; luego un grupo del sistema 2, hasta terminar la secuencia.

Software de Umberto Roncoroni, Artware5, Lima, 2009.

Difi cultad: difícilObjetivos• Experimentar con las gramáticas generativas genéticas.• Crear nuevas formas orgánicas.Paso a paso1. Se genera un organismo con GDesign, como se realizó anteriormente, y

se copia la cadena seleccionando los caracteres desde la ventana “Show info”. Otra posibilidad es grabar la cadena con el menú “File” de GDe-sign, luego abrir el archivo de texto y copiar la cadena.

La cadena se puede guardar en un archivo de texto.

Libro GENERATIVO-plotter.indb 232Libro GENERATIVO-plotter.indb 232 13/01/2016 12:06:5713/01/2016 12:06:57

Page 233: Libro GENERATIVO-plotter

Manual de diseño generativo 233

2. Se abre la utilidad “BreedLSystems”5 y se pega la cadena en la casilla “LSystem A” de la ventana “BreedLSystems”.

3. Se genera el segundo sistema (no es necesario que tenga el mismo núme-ro de elementos) y se copia o guarda la cadena.

4. Se pega la segunda cadena en la casilla “LSystem B” de “BreedLSystems”.5. Pulsar el botón “Merge LSystems” (Breed A+B).6. El resultado aparece en la casilla “LSystem C”. Se lo copia y pega en el

axioma de la ventana “Grammar” de GDesign. Luego se visualiza el sis-tema como se hace siempre. Claro está, es posible también trabajar ulte-riormente el resultado aplicando nuevas reglas e iterando el sistema.

Ejemplo de mezcla genética entre un LSystem A y un LSystem B

7. Los resultados, a veces, son impredecibles. Existen sistemas compatibles e incompatibles, lo que dependerá de las diferentes funciones utilizadas en las gramáticas.

Arquitecturas incompatibles. Híbridos con los ejemplos anteriores.

5 El lector puede descargar la utilidad y el código fuente de htt p://www.digitalpoiesis.org

Libro GENERATIVO-plotter.indb 233Libro GENERATIVO-plotter.indb 233 13/01/2016 12:06:5813/01/2016 12:06:58

Page 234: Libro GENERATIVO-plotter

234 Umberto Roncoroni

Arquitecturas compatibles: híbridos. Umberto Roncoroni, Artware5, 2009.

Libro GENERATIVO-plotter.indb 234Libro GENERATIVO-plotter.indb 234 13/01/2016 12:06:5813/01/2016 12:06:58

Page 235: Libro GENERATIVO-plotter

Manual de diseño generativo 235

El procesamiento de imágenes digitales es una aplicación muy interesante para un artista generativo, ya que se presta para experimentar muchos de sus principios y algoritmos, como los fractales o los autómatas celulares. Por ejemplo, se pueden diseñar simples autómatas que procesan los píxeles de las imágenes como si fuesen sus celdas, y manejando los mismos conceptos de ve-cindad y de reglas para el cambio de estado, se obtienen efectos más creativos que los que permiten los fi ltros digitales “normales”.

Estas técnicas se implementan, ya sea programando con VBasic, C# u otro lenguaje estructurado o a objetos (lo que, en todo caso, necesita una cierta base de matemática y de programación para manipular archivos digitales o calcu-lar las fórmulas para los efectos), o bien aprovechando las funciones y carac-terísticas de los principales paquetes comerciales para el retoque fotográfi co.

En el primer ejercicio, se sientan las bases para programar los fi ltros digita-les y explorar sus posibilidades creativas. El segundo está dedicado a generar una textura marmorizada utilizando fi ltros digitales y las propiedades de las capas de Photoshop.

Al terminar este tutorial, el lector tendrá los conocimientos para:• Comprender las relaciones entre las formas naturales y artifi ciales.• Realizar modelos generativos avanzados.• Integrar diferentes herramientas en un proyecto generativo complejo.• Sustentar estéticamente un proyecto generativo.• Perfeccionar principios y metodologías generativas.

8.1 LA ELABORACIÓN DE IMÁGENES

Se podría decir que el afán de elaborar las imágenes fotográfi cas nació por una suerte de antagonismo entre los pintores y los fotógrafos, generalmente menospreciados artísticamente, porque sus imágenes estaban hechas a má-quina. Algunos fotógrafos, que pertenecían a las escuelas pictorialista y al movimiento de photo-secession, trataron de elaborar una serie de técnicas en el cuarto oscuro para dar una apariencia artesanal y matérica a sus fotografías. Famosas son las obras de Alfred Stieglitz y Edward Steichen, entre otros.

La elaboración de imágenes • Filtros digitales personalizados con Photoshop • Filtro blur en C# •

Crear un mármol generativo con Photoshop

Image processing generativo

Tutorial

8

Libro GENERATIVO-plotter.indb 235Libro GENERATIVO-plotter.indb 235 13/01/2016 12:06:5913/01/2016 12:06:59

Page 236: Libro GENERATIVO-plotter

236 Umberto Roncoroni

Por lo que se refi ere a las imágenes digitales, esta tecnología comenzó a desarrollarse para mejorar las imágenes enviadas por los satélites científi cos y militares. Estas tecnologías se usan intensamente en la ciencia, en la publi-cidad, en la moda y en el arte. Luego se han difundido gracias a las máquinas digitales para el off set y la impresión en general.

Foto pictorialista de Constant Puyo (1857-1933)

Rendering non fotorealistico tipo ilustración o anime. Captura de una pantalla del videojuego Borderland.

Libro GENERATIVO-plotter.indb 236Libro GENERATIVO-plotter.indb 236 13/01/2016 12:07:0013/01/2016 12:07:00

Page 237: Libro GENERATIVO-plotter

Manual de diseño generativo 237

Ejercicio 38. Filtros digitales personalizados con Photoshop

Elaborar una imagen digital signifi ca tomar sus píxeles y transformar sus va-lores de acuerdo con diferentes criterios: color, contraste, posición, entre otros. Por ejemplo, se podría eliminar los colores demasiado brillantes (fi ltro pasa alto) o destacar la nitidez y los contornos (fi ltro sharpen o fi ltro emboss).

Los fi ltros digitales se diferencian en dos categorías: puntiformes y locales. El fi ltro puntiforme modifi ca el valor de un píxel directamente según su valor, como el fi ltro pasa alto. En cambio, los fi ltros locales modifi can el valor del píxel de acuerdo con un conjunto más o menos amplio de píxeles vecinos, los cuales pueden ser los inmediatamente colindantes o también los más lejanos (precisamente como se vio en los autómatas celulares); el patrón de vecinos puede, incluso, ser no simétrico, por ejemplo, cuando se consideran solo los píxeles de la izquierda, de arriba o de abajo.

Photoshop permite crear fi ltros digitales con un menú para escoger una fórmula y el patrón de vecindad. Así, se realizarán los fi ltros locales más co-munes: blur, sharpen, emboss y motion blur. En todos los casos, se considera un patrón de vecindad de 9 píxeles, con el píxel que se quiere transformar ubica-do al centro. A cada píxel se le asigna un peso, y luego se saca un promedio ponderado; es decir, se suma cada píxel multiplicado por su peso y después se divide el resultado por la suma de los pesos de dichos píxeles.

Difi cultad: fácilObjetivos• Comprender el mecanismo de los fi ltros digitales básicos.• Manejar los fi ltros personalizados de Photoshop.Paso a paso1. Se abre la ventana de fi ltros de Photoshop, haciendo click en el menú

“Filtros”, “Otros”, “Personalizar”.

El menú de fi ltros personalizados de Photoshop

Libro GENERATIVO-plotter.indb 237Libro GENERATIVO-plotter.indb 237 13/01/2016 12:07:0113/01/2016 12:07:01

Page 238: Libro GENERATIVO-plotter

238 Umberto Roncoroni

Como ya se dijo, se utilizarán solo 9 casillas (Photoshop permite hasta 25 vecinos). En ellas se colocarán los valores que se muestran enseguida.

2. Pesos y fórmula para el efecto desenfoque (blur). Al píxel central se le asigna la suma de los valores RGB de los vecinos y del mismo píxel por el peso correspondiente, dividida por la suma de los pesos (en este caso, 16). Se toma el caso del valor de R (red), comenzando con el primer píxel de arriba a la izquierda, en posición (-1, -1), mientras que el píxel por elaborar está en (0, 0).

newR = (R(-1, -1) * 1 + R(0, -1) * 2 + R(1, -1) * 1 + R(-1, 0) * 2 + R(0, 0) * 4 + R(1, 0) * 2 + R(-1, 1) * 1 + R(0, 1) * 2 + R(1, 1) * 1)/16

3. Pesos y fórmula para el efecto sharpen.

4. Pesos y fórmula para el efecto altorrelieve (emboss).

(Suma ponderada píxeles)/16

(Suma ponderada píxeles)/3

(Suma ponderada píxeles)/1

Libro GENERATIVO-plotter.indb 238Libro GENERATIVO-plotter.indb 238 13/01/2016 12:07:0213/01/2016 12:07:02

Page 239: Libro GENERATIVO-plotter

Manual de diseño generativo 239

5. Filtro motion blur. Los fi ltros pueden ser adaptados creativamente, como, por ejemplo, el fi ltro motion blur; si se utiliza una matriz que no es simé-trica, el efecto presenta interesantes propiedades. Se requiere una vecin-dad mucho más amplia.

Cambiando la posición de los vecinos se logran diferentes efectos.

6. Filtros creativos. Evidentemente, los fi ltros pueden operar no solo sobre el valor del píxel, luminosidad o colores, sino también variar su posición para hacer deformaciones como los efectos tipo twist, twirl o similares. Para esto, se utilizan coordenadas polares y transformaciones afi nes. Photoshop ofrece un menú dedicado a estas posibilidades.

Filtros que distorsionan la imagen modifi cando la posición de los píxeles

(Suma ponderada píxeles)/21

Imagen original y ejemplos de fi ltros en Photoshop twirl y wave

Libro GENERATIVO-plotter.indb 239Libro GENERATIVO-plotter.indb 239 13/01/2016 12:07:0413/01/2016 12:07:04

Page 240: Libro GENERATIVO-plotter

240 Umberto Roncoroni

7. Los efectos más complejos pueden lograrse combinando diferentes imá-genes fi ltradas entre sí y utilizando máscaras.

Aunque los efectos anteriores, que apenas se han mostrado, se pueden realizar con los fi ltros y las capas de Photoshop para lograr efectos más creativos y complejos, es necesario investigar técnicas originales y pro-gramar los fi ltros personalmente, con cualquier lenguaje de programa-ción. El siguiente ejercicio brindará al lector las bases para desarrollar estos fi ltros avanzados.

Software e imágenes de Umberto Roncoroni, Artware1, 2001

Libro GENERATIVO-plotter.indb 240Libro GENERATIVO-plotter.indb 240 13/01/2016 12:07:0513/01/2016 12:07:05

Page 241: Libro GENERATIVO-plotter

Manual de diseño generativo 241

Ejercicio 39. Crear un mármol generativo con Photoshop

El paradigma generativo enseña un modo de aproximarse creativamente a un proyecto, y es benefi cioso en cuanto amplía el rango de uso del software para el diseño, e incluso mejora la performance de los paquetes de diseño comerciales.

Aun considerando que lo ideal sería la producción directa de tecnología, es decir, el desarrollo de software personalizado, es interesante ver cómo se puede implementar un proceso generativo utilizando una solución comercial como Photoshop. En este ejercicio se mostrará cómo, a través de este tipo de proceso, se puede crear un mármol generativo. Señalo al lector las técnicas similares que se usan para hacer las texturas procedurales1.

Diferentes tipos de mármoles: ¿cuál es el generativo?

Difi cultad: moderadamente difícilObjetivos• Desarrollar un mármol generativo. • Explorar las posibilidades y los usos alternativos de Photoshop.Paso a pasoPara comenzar, hay que tomar en cuenta algunos datos científi cos. Las ro-cas ornamentales se dividen en piedras y mármoles. Los mármoles se origi-nan por procesos de metamorfi smo (elevadas temperaturas y presiones) de rocas ricas en carbonato cálcico. Son muy duros y compactos, a veces tras-lúcidos, y se dividen en blancos y coloreados. El mármol se utiliza princi-palmente en la construcción, decoración y escultura y tiene la característica de que puede ser pulido con relativa facilidad. Es evidente que la impresio-nante variedad del diseño y de la morfogénesis de los mármoles es fruto de un proceso generativo, pues es el resultado de una serie de acontecimientos mecánicos, físicos y químicos. Ahora bien, estos pueden ser simulados apli-cando fi ltros digitales y las propiedades de la mezcla de imágenes.

1 Son aquellas que se calculan punto por punto al momento del rendering, contraria-mente a las texture normales, las cuales son imágenes bitmap que se proyectan sobre la superfi cie de los objetos.

Libro GENERATIVO-plotter.indb 241Libro GENERATIVO-plotter.indb 241 13/01/2016 12:07:0613/01/2016 12:07:06

Page 242: Libro GENERATIVO-plotter

242 Umberto Roncoroni

1. Se requiere usar las capas. Estas, gracias a sus parámetros, pueden,en cierto sentido, reaccionar entre sí como elementos de una reacción química.

Se pueden aprovechar los parámetros “modo” y “opacidad”.

2. Se muestra a continuación la secuencia generativa con Photoshop.

En primer lugar, se genera una bitmap con fondo blanco en

modo RGB y luego se aplica un fi ltro ruido gaussiano.

Se duplica la capa y se aplica un fi ltro desenfoque gaussiano.

Después, se aumenta el contraste de la imagen.

Libro GENERATIVO-plotter.indb 242Libro GENERATIVO-plotter.indb 242 13/01/2016 12:07:0713/01/2016 12:07:07

Page 243: Libro GENERATIVO-plotter

Manual de diseño generativo 243

Se duplica la capa y se aplica otra vez un fi ltro desenfoque

gaussiano, luego se alteran los niveles con la herramienta curva.

Se duplica la capa y se cambian los colores con tono y saturación.

Luego se altera cada canal RGB con la herramienta curva. Final-

mente, se pone la capa en el modo color.

Se duplica la capa y se aplica el fi ltro hallar bordes. Después, se alte-

ran los niveles con la herramienta curva y se utiliza el fi ltro cristalizar

para dar una textura “pedrosa”.

Se duplica la capa, se ecualiza a cuatro colores y después se hallan los

bordes. Desde la capa anterior se crea una máscara de las zonas más

claras de la imagen. Luego se borra esta capa, de modo que el efecto

quede solo en algunas zonas. Finamente, se pone la capa en modo

exclusión al 80 %.

Se duplica la capa, se ecualiza una vez más a cuatro colores y se hace el

negativo de la imagen. Se utiliza la máscara anterior y se borran algu-

nas partes de la imagen. Luego se pone la capa en modo mezcla de-

fi nida. Como ya se sabe, todos estos parámetros se pueden modifi car

para obtener texturas diferentes. En cualquier caso, ahora se terminará

la imagen trabajando sobre el color.

Libro GENERATIVO-plotter.indb 243Libro GENERATIVO-plotter.indb 243 13/01/2016 12:07:0813/01/2016 12:07:08

Page 244: Libro GENERATIVO-plotter

244 Umberto Roncoroni

3. Por último, se utiliza la imagen resultante para crear otro archivo y co-menzar una nueva mezcla. Ahora, con solo dos capas y alterando los colores y la modalidad de mezcla de las capas, se puede obtener rápida-mente una familia entera de mármoles.

Ejercicio 40. Filtro blur en C#

Como se explicó en el tutorial básico 3, se puede considerar una imagen digital como una matriz de bytes (imágenes en grayscale) o de arreglos de 3 bytes (imá-genes RGB, 1 byte por canal). La mayoría de los lenguajes de programación permite acceder a los píxeles de una imagen digital en formato BMP o de otro tipo, proporcionando funciones para abrir el archivo y acceder a sus píxeles. En este ejercicio, se desarrollará el código C# para elaborar una imagen digital. Se deja al lector la sucesiva implementación en el lenguaje de su preferencia.

Difi cultad: moderadamente difícilObjetivos• Implementar el fi ltro blur.• Mejorar las técnicas de image processing.Paso a paso1. Se abre una aplicación Windows y se crea un PictureBox y un botón. Se

necesita una imagen original y una imagen para guardar el resultado del fi ltro. Se pega el código del ejemplo en el botón.

2. En el caso de una imagen en escala de grises, si es en RGB, hay que calcular el promedio de cada canal R, G y B.

Se acopla la ima-

gen, se duplica la

capa y se juega

con mezclas de

la misma imagen

para obtener va-

riaciones.

Libro GENERATIVO-plotter.indb 244Libro GENERATIVO-plotter.indb 244 13/01/2016 12:07:1013/01/2016 12:07:10

Page 245: Libro GENERATIVO-plotter

Manual de diseño generativo 245

private void button1_Click(object sender, EventArgs e){

int x, y;int gray;//barriendo la imagen y fi ltrandofor (y = 1; y < Mbp.Height-1; y++){

for (x = 1; x < Mbp.Width - 1; x++){

//valor luminosidad del píxelgray=(Mbp.GetPixel(x,y).R+Mbp.GetPixel(x,y).G+Mbp. GetPixel(x,y).B)/3;//calculando valores 8 vecinosgray += (Mbp.GetPixel(x-1,y-1).R+Mbmp.GetPixel(x-1,y-1).G+Mbp. GetPixel(x-1,y-1).B)/3;gray += (Mbp.GetPixel (x,y-1).R+Mbp.GetPixel(x,y-1).G+Mbp. GetPixel (x, y-1).B)/3;gray += (Mbp.GetPixel (x+1,y-1).R+Mbp.GetPixel(x+1,y-1).G+Mbp. GetPixel (x+1, y-1).B)/3;gray += (Mbp.GetPixel (x-1,y).R+Mbp.GetPixel(x-1,y).G+Mbp. GetPixel(x-1, y).B)/3;gray += (Mbp.GetPixel (x+1,y).R+Mbp.GetPixel(x+1,y).G+Mbp. GetPixel (x+1, y).B)/3;gray += (Mbp.GetPixel (x-1,y+1).R+Mbp.GetPixel(x-1,y+1).G+Mbp. GetPixel (x-1, y+1).B)/3;gray += (Mbp.GetPixel (x,y+1).R+Mbp.GetPixel(x,y+1).G+Mbp. GetPixel(x,y+1).B)/3;gray += (Mbp.GetPixel(x+1,y+1).R+Mbp.GetPixel(x+1,y+1).G+Mbp. GetPixel(x+1,y+1).B)/3;//calculando promediogray = gray/9;//asignando a la bitmapMybmap2.SetPixel(x,y, Color.FromArgb(gray,gray,gray));

}}pictureBox1.Image = Mybmap2;

}

3. En el ejemplo, se leen los valores de Red, Green y Blue de cada píxel; se saca el promedio Gray y se lo guarda en los parámetros R, G, B del mis-mo píxel; por lo tanto, la imagen fi ltrada se volverá gris. Como la línea:

Mybmap2.SetPixel(x,y, Color.FromArgb(gray,gray,gray));

Libro GENERATIVO-plotter.indb 245Libro GENERATIVO-plotter.indb 245 13/01/2016 12:07:1213/01/2016 12:07:12

Page 246: Libro GENERATIVO-plotter

246 Umberto Roncoroni

Imagen inicial Imagen fi ltrada con blur

Libro GENERATIVO-plotter.indb 246Libro GENERATIVO-plotter.indb 246 13/01/2016 12:07:1213/01/2016 12:07:12

Page 247: Libro GENERATIVO-plotter

Manual de diseño generativo 247

En este último tutorial, se estudiarán dos procesos de diseño generativo que el autor ha desarrollado en los últimos años, para mostrar al lector las técnicas y la metodología utilizadas. Me concentraré más en los aspectos teóricos y metodológicos de estos diseños generativos, enfatizando la relación con los conceptos teóricos discutidos en la primera parte del manual. En estos casos, no se incluirá el desarrollo paso a paso del software, porque es bastante largo; sin embargo, el lector podrá leer y modifi car el código bajando los archivos correspondientes desde la página web: htt p://digitalpoiesis.org.

Al terminar el desarrollo de los procesos propuestos, el lector tendrá algu-nos de los elementos necesarios para:

• Relacionar y comparar conocimientos interdisciplinarios.• Desarrollar una metodología interdisciplinaria.• Diseñar y desarrollar un proceso generativo complejo.• Analizar, evaluar, criticar y corregir un proceso artístico generativo.

Ejercicio 41. Estructuras de ladrillos generativas

Las construcciones en ladrillos son quizás las más antiguas de la humanidad. Para fabricarlos se ha utilizado, y todavía se lo sigue haciendo, todo tipo de materiales locales, como la arcilla y el barro. Los diseños para la construcción en ladrillos son uno de los legados más conocidos de la arquitectura de la an-tigua Roma. Estos esquemas se utilizan todavía hoy.

Ahora, el uso de modernas ingenierías y nuevos materiales tecnológicos o reciclados, así como el diseño por computadora y las máquinas para la construcción computarizada, como las impresoras 3D o los brazos robóticos, han permitido llevar la construcción en ladrillos a soluciones audaces e inno-vadoras.

Estructuras de ladrillos generativas • Experimentos de image processing generativo

Procesos generativos avanzados

Tutorial

9

Libro GENERATIVO-plotter.indb 247Libro GENERATIVO-plotter.indb 247 13/01/2016 12:07:1213/01/2016 12:07:12

Page 248: Libro GENERATIVO-plotter

248 Umberto Roncoroni

En este tutorial, se seguirá el proceso de desarrollo de una escultura de ladrillos diseñada con un software generativo, cuya maqueta se puede elabo-rar con una impresora 3D y la construcción con un brazo robótico, pues los ladrillos están dispuestos en posiciones y con rotaciones que requieren altos grados de precisión1.

Difi cultad: difícilObjetivos• Experimentar nuevas técnicas de diseño y construcción.• Desarrollar funciones generativas en C#.• Integrar diferentes herramientas y procesos tecnológicos.Paso a paso1. El dibujo a mano alzada es esencial para investigar los patrones y las

transformaciones geométricas involucradas en los desplazamientos. 2. Se aconseja al lector utilizar los modeladores 3D para entender los

problemas geométricos involucrados. Es fácil desarrollar un script en MaxScript, por ejemplo, para estudiar las proporciones entre los ladri-llos, así como el juego entre los ladrillos y los espacios vacíos.

1 Los modernos brazos robóticos pueden alcanzar una precisión de fracciones de milí-metros.

Los constructores romanos desarrollaron los principales patrones de construcción en ladrillos, como el opus spica-

tum, arriba a la izquierda; el opus latericium, a la derecha; el opus reticulatum, abajo a la izquierda, y el opus incertum,

a la derecha.

Libro GENERATIVO-plotter.indb 248Libro GENERATIVO-plotter.indb 248 13/01/2016 12:07:1213/01/2016 12:07:12

Page 249: Libro GENERATIVO-plotter

Manual de diseño generativo 249

Aquí se estudia una combinación de opus reticulatum y opus spicatum.

3. El proceso puede ser parametrizado de manera que varíe la distancia entre los ladrillos, el tamaño, la alineación con los demás, la rotación. La forma del muro puede ser cualquiera, no necesariamente circular. Para la construcción, se requiere de cálculos estructurales y brazos robóticos.

Estos esquemas pueden elaborarse fácilmente con las gramáticas generativas y GDesign. El uso de los

espacios vacíos permite crear celosías.

4. Después de experimentar simples patrones en superfi cies lineales, es posible pasar a desarrollar estructuras irregulares y curvas. Para esto el lector puede bajar el software que se muestra a continuación.

Libro GENERATIVO-plotter.indb 249Libro GENERATIVO-plotter.indb 249 13/01/2016 12:07:1313/01/2016 12:07:13

Page 250: Libro GENERATIVO-plotter

250 Umberto Roncoroni

Interfaz del software para modelar los muros de ladrillos. Todos los menús y los botones necesarios para el proceso están diagramados en se-

cuencia de izquierda a derecha, según el fl ujo del trabajo.

a. Primero, se importa un perfi l para el muro, es decir, la forma que va a tener la sección de la estructura. Este perfi l también se puede dibujar interactivamente.

b. Se genera una superfi cie de tracción a partir del perfi l cargado en la memoria, y se pueden aplicar diferentes funciones para modifi car la superfi cie. Cada función genera su output, es decir, un modelo 3D completo.

c. En tercer lugar, se importan, si fuera necesario, imágenes y máscaras, que se utilizarán como mapas para modifi car la posición y las rota-ciones de los ladrillos. Las imágenes pueden ser fi ltradas leyendo los canales RGB y utilizando fi ltros digitales parametrizados, de acuerdo con la construcción y la dimensión de los ladrillos.

d. Luego se aplica una función mixer que permite interpolar los modelos generados por cada función, elaborando recetas diferentes cada vez.

e. Se pueden aplicar funciones aleatorias o crear una interfaz con un sistema externo que transmite sensores y aparatos, como Arduino. Esto haría posible integrar el diseño con el ambiente. Las gramáticas generativas y los sistemas-L son aquí de mucha ayuda, pues permi-ten convertir en algoritmos las estructuras formales del entorno.

5. Experimentar. Un error de diseño se convierte en una posibilidad ex-presiva, pues genera efectos y patrones inesperados. Lo generativo, a veces, se encuentra por casualidad…, si es que se plantea el proceso con exactitud, lo que es aparentemente contradictorio.

Libro GENERATIVO-plotter.indb 250Libro GENERATIVO-plotter.indb 250 13/01/2016 12:07:1413/01/2016 12:07:14

Page 251: Libro GENERATIVO-plotter

Manual de diseño generativo 251

Los ladrillos de este muro no están correctamente alineados. Como se puede notar en el detalle de la imagen de la izquierda, los

ladrillos no están alineados con precisión a la curva del muro. Sin embargo, el efecto que se genera resulta más interesante que en

la imagen grande de abajo, donde la curvatura es precisa, pero el efecto es menos evidente.

Estas composiciones de ladrillos se han generado con un software que permite disponer los ladrillos alrededor de perímetros cur-

vos, aplicando rotaciones precisas a cada ladrillo. Los ángulos de rotación se pueden importar desde archivos de datos, inclusive

desde una imagen, lo que permite generar efectos de altorrelieve que pueden reproducir fi guras o patrones decorativos.

Paleta para defi nir la imagen que se usa como guía para orientar los ladrillos

Libro GENERATIVO-plotter.indb 251Libro GENERATIVO-plotter.indb 251 13/01/2016 12:07:1613/01/2016 12:07:16

Page 252: Libro GENERATIVO-plotter

252 Umberto Roncoroni

Ejercicio 42. Experimentos de image processing generativo

En este ejercicio, se estudiará un proceso generativo basado en los principios de las redes, de las telarañas y de las grietas. Sucesivamente se aplicará este al-goritmo al procesamiento de imágenes. El lector puede descargar la aplicación en C# de htt p://www.digitalpoiesis.org

Telaraña y grietas

Difi cultad: difícilObjetivos• Comprender las relaciones de los parámetros en un proceso generativo.• Aplicar los procesos generativos a la elaboración de imágenes.• Analizar el comportamiento de un proceso generativo.• Modifi car y personalizar el algoritmo y el código de un proceso

generativo.Paso a paso1. Analizar las posibilidades de los patrones a mano alzada para defi nir el

esquema de líneas que se quiere utilizar y sus reglas de diseño.2. Hacer diseños para probar diferentes topologías, una posibilidad es uti-

lizar los sistemas-L.3. Se descarga el software y se estudian los parámetros de la aplicación. El

software diseña líneas rectas a través de un proceso de ramifi cación re-cursiva, siguiendo estas simples reglas: a. Toda línea comienza de una línea existente. b. Las líneas terminan en un punto al azar, o bien escogiendo un punto

en las líneas ya trazadas.c. Las líneas no se pueden cruzar. Cuando una línea cruza otra, se

interrumpe.

Libro GENERATIVO-plotter.indb 252Libro GENERATIVO-plotter.indb 252 13/01/2016 12:07:1713/01/2016 12:07:17

Page 253: Libro GENERATIVO-plotter

Manual de diseño generativo 253

Lo generativo surge porque la interacción entre los parámetros se vuel-ve rápidamente compleja y “ordenadamente caótica”. Dos parámetros son sufi cientes para generar complejidad, pero en este proceso es posible manipular el tiempo, la posición, la edad de las líneas (es decir, el orden en el cual fueron trazadas), la longitud, entre otros. El lector puede indi-viduar y aplicar nuevos parámetros para personalizar el proceso.

Pantalla del software Linewebs. Umberto Roncoroni, 2013.

4. Se estudian los parámetros. Se han agregado varias opciones: cada línea nace de una cierta parte de una línea existente (un buff er especial alma-cena los orígenes válidos) y se dirige a otro origen. La longitud de las líneas disminuye con el tiempo. Las líneas no se pueden cruzar. Estos mecanismos generan un diseño que se retroalimenta y se desarrolla de modo recursivo.

Libro GENERATIVO-plotter.indb 253Libro GENERATIVO-plotter.indb 253 13/01/2016 12:07:1813/01/2016 12:07:18

Page 254: Libro GENERATIVO-plotter

254 Umberto Roncoroni

Variando la longitud mínima de la línea, se hacen diseños muy diferentes. Otra posibilidad es generar teselaciones

similares a las de Voronoi vistas en el tutorial 4 de la tercera parte.

La imagen está en alta resolución, 2800 x 2800 píxeles. Los detalles de la imagen se pueden utilizar para hacer

celosías y patrones decorativos, entre otros.

Libro GENERATIVO-plotter.indb 254Libro GENERATIVO-plotter.indb 254 13/01/2016 12:07:1913/01/2016 12:07:19

Page 255: Libro GENERATIVO-plotter

Manual de diseño generativo 255

5. Se aplica el proceso a la elaboración de imágenes. A tal fi n, es posible seleccionar una imagen bitmap, que se utiliza como

referencia. Las líneas pueden modifi car sus características de acuerdo con la información de la bitmap, como color, luminosidad, contraste. Es importante explorar y parametrizar todas las variables del proceso; esta parte del trabajo requiere mucha paciencia. En las siguientes imágenes se muestran los pasos para calibrar el proceso.

Se ha comenzado con líneas sin conexión entre sí (imagen de la izquierda). Luego se han revisado los algorit-

mos y los parámetros a través de un proceso de prueba y error; así se ha obtenido la imagen de la derecha, con

las líneas que interactúan entre sí.

El objetivo es obtener una telara-

ña más densa en corresponden-

cia de las sombras de la imagen

que se quiere elaborar. Para esta

imagen se ha dotado cada línea

con tres sensores para determi-

nar el tono del punto inicial, del

punto fi nal y de las zonas que se

atraviesan. De esta forma se res-

peta más el claro oscuro original.

Libro GENERATIVO-plotter.indb 255Libro GENERATIVO-plotter.indb 255 13/01/2016 12:07:1913/01/2016 12:07:19

Page 256: Libro GENERATIVO-plotter

256 Umberto Roncoroni

6. Finalmente, para personalizar el proceso, se sugieren al lector estas po-sibilidades: a. Probar con diferentes tipos de trazos, por ejemplo, curvos.b. Usar diferentes tonalidades de gris.c. Grosor dinámico, dependiendo de la luminosidad de una cierta parte

de la imagen.d. Data visualization. Se toma como input una base de datos. Estos datos

pueden ser leídos directamente o digitalizados en una bitmap que se usa como máscara.

Libro GENERATIVO-plotter.indb 256Libro GENERATIVO-plotter.indb 256 13/01/2016 12:07:2013/01/2016 12:07:20

Page 257: Libro GENERATIVO-plotter

Manual de diseño generativo 257

AADNÁcido que contiene instrucciones genéticas para el desarrollo y funcionamiento de todos los organismos vivos y de algunos virus, y es responsable de la transmisión hereditaria.

algoritmoProceso o estrategia para resolver una determinada clase de problemas o tareas.

alphaDato de un píxel que representa su transparencia o valor de máscara. En este caso, el píxel es igual a 32 bits.

analógicoSistema cuyas variables tienen valores continuos y no discretos; en sentido fi gurado, se dice de todo lo que no es digital.

antialiasingEfecto que se aplica para suavizar los píxeles al borde de zonas de diferente lumino-sidad o color.

árbol binarioEn ciencias de la computación, estructura de datos en la cual cada nodo siempre tiene una rama izquierda y una derecha.

argumentoVariable que puede ser recibida por una rutina o subrutina.

arregloEstructura de datos dispuestos en secuencia, a los que se accede con un índice que da la posición de cada dato en la secuencia.

ASCIICódigos numéricos que representan los caracteres alfanuméricos del teclado.

auraEl valor de originalidad, novedad y unicidad que caracteriza a una obra de arte.

Glosario

Libro GENERATIVO-plotter.indb 257Libro GENERATIVO-plotter.indb 257 13/01/2016 12:07:2013/01/2016 12:07:20

Page 258: Libro GENERATIVO-plotter

258 Umberto Roncoroni

autoorganizaciónPropiedad de un sistema que genera sus propias estructuras sin ayuda externa. || Orden que resulta de la organización espontánea de los elementos de un sistema di-námico complejo, sin intervención de un agente externo.

autopoiesisNeologismo que designa un sistema capaz de reproducirse y mantenerse por sí mis-mo. || Clase de dinámica de organización o, más exactamente, dinámica de autoor-ganización molecular.

axonometríaVista tridimensional con perspectiva paralela, sin puntos de fuga.

azarCasualidad presente, teóricamente, en diversos fenómenos que se caracterizan por causas complejas y no lineales.

BbarridoAcción de recorrer y leer los valores de todos los píxeles de una línea de una bitmap.

binarioSistema que representa los números en base 2, mediante 0 y 1.

biomimética, bioingenieríaDisciplinas de la ingeniería que estudian nuevas tecnologías basadas en las propieda-des de los procesos naturales.

bitmapImagen formada por un mosaico de puntos de color (píxeles) que se memoriza con combinaciones de bits.

brainstormingLluvia de ideas.

brecha digitalDiferencial de saber tecnológico con respecto a una sociedad informáticamente de-sarrollada.

brocha gordaTécnica de pintura decorativa poco sofi sticada que los decoradores usaban para simu-lar el efecto mármol.

brotaciónAparición de brotes nuevos en la planta.

bucleSerie de comandos que se ejecutan hasta que se encuentra una condición especifi cada.

Libro GENERATIVO-plotter.indb 258Libro GENERATIVO-plotter.indb 258 13/01/2016 12:07:2013/01/2016 12:07:20

Page 259: Libro GENERATIVO-plotter

Manual de diseño generativo 259

buff erEspacio en la memoria de la computadora para almacenar datos temporales durante la ejecución de un programa. Evita que un programa se quede sin datos durante una operación cualquiera.

CcadenaEn informática, una secuencia de símbolos alfanuméricos.

caosPalabra que deriva del idioma griego, se refi ere a lo impredecible.

capaNivel operativo de una tecnología que cumple una función particular, por ejemplo, en la tecnología de redes se habla de capa física, de capa de enlace de datos, etcétera.

capa, capasSecciones de una bitmap que se manejan de modo independiente, pero que forman una misma imagen.

caraSuperfi cie de un objeto 3D. Por ejemplo, un cubo se forma por seis cuadrados, pero tiene doce caras, pues cada cuadrado se compone de dos caras triangulares.

celosíaEstructura de madera u otros materiales que sirve para esconder parcialmente el in-terior de un edifi cio o generar zonas de sol y sombra.

cibernéticaCiencia que se ocupa de las analogías entre los sistemas de control y de comunicación de las personas y los de las máquinas.

claseEn programación a objetos, plantilla que defi ne las propiedades y métodos de un cierto tipo de objeto.

clienteComputadora local que hace peticiones al servidor, el cual procesa dicho requeri-miento y retorna los resultados.

comentarioParte de código que sirve para titular o describir una sección de un programa, pero que no se ejecuta. Sirve al programador como etiquetas, títulos o promemoria.

commodityMateria prima no procesada o bienes de primera necesidad.

Libro GENERATIVO-plotter.indb 259Libro GENERATIVO-plotter.indb 259 13/01/2016 12:07:2013/01/2016 12:07:20

Page 260: Libro GENERATIVO-plotter

260 Umberto Roncoroni

compiladorPrograma capaz de traducir un código escrito en un lenguaje de alto nivel a un código objeto escrito en lenguaje de máquina, que la computadora puede ejecutar.

complejidadCualidad de un sistema compuesto de partes interrelacionadas que exhiben propie-dades y comportamientos no evidentes a partir de la suma de las partes individuales.

compresión de datosTécnicas para guardar datos en el modo más compacto posible. Algunos algoritmos de compresión se basan en fractales.

constructivismoTeoría del aprendizaje que destaca la importancia del proceder activo del sujeto en el proceso de aprendizaje. Consiste en dar al alumno herramientas que le permitan crear sus propios procedimientos.

contextoLos símbolos anteriores y posteriores de un cierto símbolo de una cadena.

criptografíaTécnica que permite cifrar mensajes o hacerlos ininteligibles a receptores no autori-zados.

DdebuggingProceso de detección y corrección de los errores de un programa informático.

determinismoTeoría que sostiene que no existen sucesos aleatorios o azarosos, y que el futuro es potencialmente predecible a partir del presente.

deterministaProceso del que se determina con exactitud el comportamiento y el resultado.

dibujo algorítmicoDiseño de estructuras o sólidos de acuerdo con una determinada secuencia de opera-ciones. El dibujo algorítmico puede también ser parametrizado.

dibujo paramétricoProcesos de diseño de estructuras o sólidos geométricos que pueden variar su forma de acuerdo con los valores de sus parámetros.

dinámicoPropiedad de un sistema físico cuyo estado evoluciona con el tiempo.

discretoEn el contexto informático, forma particular de codifi cación que toma un símbolo o un paquete de información. Función, variable o sistema divisibles un número fi nito de veces.

Libro GENERATIVO-plotter.indb 260Libro GENERATIVO-plotter.indb 260 13/01/2016 12:07:2013/01/2016 12:07:20

Page 261: Libro GENERATIVO-plotter

Manual de diseño generativo 261

doubleTipo de dato numérico con 16 decimales.

drippingTécnica de los expresionistas abstractos que consiste en dejar que el color gotee por el lienzo de manera casual.

duplaDos datos que pertenecen a un mismo elemento.

EejecutableArchivo que contiene las instrucciones necesarias para que un determinado progra-ma se ponga en marcha; tiene extensión “.exe”.

emergenciaNovedad, sorpresa e impredecibilidad de un sistema que no se puede deducir desde su estado previo.

emergenteFenómeno o propiedad de un sistema que resulta de un proceso de autoorganización y que no es predeterminado de antemano.

entropíaSignifi ca que todo empeora o se arruina irremisiblemente.

epistemologíaTeoría del conocimiento.

espículaUnidad esquelética calcárea o silícea que forma parte del esqueleto de los radiolarios.

estalagmitaRoca calcárea en forma de cono con la punta hacia arriba, que se forma en el suelo de una caverna cuando gotea desde una estalactita agua con carbonato cálcico.

estocásticoAleatorio, casual.

extreme programmingAdopción de las mejores metodologías de desarrollo de acuerdo con lo que se preten-de llevar a cabo con el proyecto, y aplicarlas de manera dinámica durante el ciclo de vida del software.

Ffabricación digitalConstrucción de prototipos desde modelos digitales mediante impresoras 3D, corta-doras láser, etcétera.

Libro GENERATIVO-plotter.indb 261Libro GENERATIVO-plotter.indb 261 13/01/2016 12:07:2013/01/2016 12:07:20

Page 262: Libro GENERATIVO-plotter

262 Umberto Roncoroni

familiaUna serie de objetos diferentes producidos sobre la base de un mismo principio.

fi lotaxisDisposición que presentan las hojas en el tallo.

fi ltroUn pequeño programa o una función que permite transformar los valores de color o luminosidad de una imagen bitmap.

fotorrealismoImagen 3D, generada por computadora, cuyos efectos de color, texturas, luces y som-bras son tan buenos como en una fotografía.

fractalFunciones matemáticas recursivas con números complejos, que pueden generar grá-fi cos autosimilares.

GgenioAquel que produce los objetos bellos sin tener en cuenta regla alguna, sino guiándose libremente por las ideas de su propia imaginación o mente.

graphic deviceObjeto que se utiliza para pintar o visualizar las imágenes, como Canvas, PictureBox, etcétera.

HheaderParte del archivo de una imagen bitmap que contiene datos como autor, versión, di-mensiones, tipo de color y miniatura, entre otros.

hermenéuticaTeoría de la interpretación.

heurísticaCapacidad de un sistema para realizar de forma inmediata innovaciones positivas para sus fi nes.

híbridoOrganismo vivo, animal o vegetal, procedente del cruce de dos organismos de razas, especies o subespecies distintas.

hiperrealismoRepresentación o modelo más real que lo real, o imagen extremadamente detallada y precisa.

holismoPostura fi losófi ca que considera que la realidad es un todo inseparable.

Libro GENERATIVO-plotter.indb 262Libro GENERATIVO-plotter.indb 262 13/01/2016 12:07:2013/01/2016 12:07:20

Page 263: Libro GENERATIVO-plotter

Manual de diseño generativo 263

Iimage processingProcesamiento de las imágenes digitales mediante funciones matemáticas, para me-jorar el contraste o la nitidez de una imagen, entre otros efectos posibles.

interdisciplinariedadUn campo de estudio que cruza los límites tradicionales entre varias disciplinas aca-démicas.

interpolaciónConsiste en hallar un dato dentro de un intervalo en el que se conocen los valores en los extremos.

intérpretePrograma que permite ejecutar directamente el programa fuente en memoria. El in-térprete traduce las instrucciones del programa fuente una por una y las ejecuta in-mediatamente.

Jjusticia epistémicaJusta distribución de conocimientos en un proceso intercultural.

KkernelUn software que constituye una parte fundamental del sistema operativo.

LlibreríaUna colección de funciones y datos que se puede utilizar en varios programas.

logaritmoEl logaritmo de un número es el exponente al cual hay que elevar la base para obtener dicho número.

lógica booleanaTécnicas algebraicas para tratar expresiones de la lógica proposicional.

MmacroAgrupación de comandos que se utiliza para acortar las largas secuencias de menú, o para crear programas pequeños dentro de una aplicación.

matrizUn tipo de dato que contiene datos dispuestos en fi las y columnas, a los que se accede con dos índices.

mayéuticaDel griego “dar a luz”. Método fi losófi co que consiste en realizar preguntas a una persona hasta que esta descubra ideas o habilidades que tenía latentes u ocultas.

Libro GENERATIVO-plotter.indb 263Libro GENERATIVO-plotter.indb 263 13/01/2016 12:07:2013/01/2016 12:07:20

Page 264: Libro GENERATIVO-plotter

264 Umberto Roncoroni

meiosisDivisión celular que permite la reproducción sexual.

meshMalla de vértices y polígonos.

metamorfi smoCambio de la estructura o de la composición química o mineral de una roca sometida a diferentes condiciones de temperatura o presión.

métodoEn programación, una función específi ca de un objeto de una cierta clase, o una ope-ración que un objeto puede hacer.

método MontecarloTécnica numérica para calcular probabilidades y otras cantidades relacionadas, utilizando secuencias de números aleatorios.

mímesisImitación; en el arte, imitación de la naturaleza.

modeloRepresentación abstracta, conceptual, gráfi ca o física de fenómenos, sistemas o pro-cesos, a fi n de analizar, explicar, controlar y predecir dichos fenómenos o procesos.

morfologíaRama de la biología que estudia la forma o estructura de los seres vivos.

multitaskingMultiprocesamiento o multiproceso, que consiste en el uso de múltiples procesos con-currentes. || Modo en que el sistema operativo ejecuta más de un programa a la vez.

música serialMétodo compositivo cuyo principal objetivo es la total desaparición de la jerarquía de los sonidos entre sí.

Nnúmero complejoEntidad matemática que viene dada por un número real y un número imaginario. Se representa por un par de números entre paréntesis (x, y), como los puntos del plano, o bien en la forma usual de x + yi, i se denomina la unidad imaginaria, la raíz cuadrada de menos uno.

Ooff setMétodo de impresión de alta calidad y velocidad basado en la reacción química entre agua y grasa, que usa fotolitos y placas de aluminio armadas en cilindros.

Libro GENERATIVO-plotter.indb 264Libro GENERATIVO-plotter.indb 264 13/01/2016 12:07:2013/01/2016 12:07:20

Page 265: Libro GENERATIVO-plotter

Manual de diseño generativo 265

objetoUn tipo de dato complejo que tiene varias variables (propiedades) y que puede hacer cosas a través de funciones internas (métodos).

operadorElemento de un lenguaje de programación que realiza las operaciones aritméticas y lógicas.

PparadigmaMarco teórico o conjunto de teorías.

paralelismoArquitectura informática que permite procesar diferentes tareas al mismo tiempo.

paraleloProceso empleado para acelerar el tiempo de ejecución de un programa dividiéndolo en múltiples partes. Es posible si se dispone de varias unidades de proceso, general-mente núcleos o procesadores.

parámetroVariable cuyos valores regulan algún aspecto del proceso.

pasticheObra que combina libremente muchos elementos heterogéneos.

peer to peerModelo de red en el que cada nodo o peer tiene las mismas capacidades y puede co-menzar una sesión de comunicación.

pensamiento complejo Capacidad de interconectar distintas dimensiones de lo real.

phiSímbolo que indica la proporción áurea: 1.618.

physical computingAparatos electrónicos o electromecánicos que usan sensores y microcontroladores para introducir y digitalizar datos del mundo real en un sistema software.

píxelAcrónimo de picture element, la unidad más pequeña que forma el mosaico de la ima-gen digital.

planctonConjunto de organismos, principalmente microscópicos, que fl otan en aguas saladas.

poiesisTérmino griego que signifi ca creación o producción. Se entiende por poiesis todo pro-ceso creativo. || Capacidad de generación creativa.

Libro GENERATIVO-plotter.indb 265Libro GENERATIVO-plotter.indb 265 13/01/2016 12:07:2113/01/2016 12:07:21

Page 266: Libro GENERATIVO-plotter

266 Umberto Roncoroni

posmodernoEn general, se puede defi nir así a todo pensamiento fi losófi co crítico de la moderni-dad, caracterizado por ser nihilista, antimetafísico, individualista y centrado en el lenguaje.

POV-RayPrograma de dominio público para renderizar modelos 3D usando raytracing.

propiedadVariable de un objeto de una cierta clase.

protoplasmaMaterial viviente de la célula.

prototipado rápidoProceso tecnológico para producir objetos 3D en un corto período de tiempo median-te impresoras 3D.

pseudópodoProlongación de un microorganismo para desplazarse o alimentarse.

RradiánUn radián son 180/π grados, aproximadamente 57.296°. Los ángulos se pueden medir en grados o radianes.

raízNodo o vértice del dibujo donde comienza una rama.

rakafCobertura de muros en altorrelieve de arcilla o adobe para prevenir la erosión.

ramaBifurcación en un dibujo.

rasterOtra manera de denominar una imagen bitmap.

recursivoAlgoritmo que expresa la solución de un problema en términos de una llamada a sí mismo. Forma en la cual se especifi ca un proceso basado en su propia defi nición.

reduccionismoEnfoque fi losófi co según el cual la reducción es necesaria y sufi ciente para resolver diversos problemas de conocimiento.

relativismoPosición fi losófi ca que sostiene que todos los puntos de vista son igualmente válidos, y que toda la verdad es relativa al individuo.

Libro GENERATIVO-plotter.indb 266Libro GENERATIVO-plotter.indb 266 13/01/2016 12:07:2113/01/2016 12:07:21

Page 267: Libro GENERATIVO-plotter

Manual de diseño generativo 267

render, renderingVisualización de una imagen 3D con colores, texturas, luces y sombras realistas en pantallas o impresoras.

ruidoToda señal no deseada que se mezcla con la señal útil que se quiere transmitir. En una imagen digital, son valores de color que dependen de interferencias electrónicas en sensores, scanner o CCD.

SscriptPrograma escrito por el usuario utilizando un lenguaje proporcionado por un pro-grama aplicativo, por ejemplo, 3DSMax.

seedNúmero que se escoge como semilla en la secuencia de números aleatorios. A cada semilla sigue siempre la misma secuencia.

seudocódigoPrograma de computadora escrito de modo literario; no funciona, pero permite en-tender la lógica del programa.

símboloElemento de una gramática generativa.

simetría lateral o bilateralCuando se encuentran formas iguales a igual distancia a ambos lados de un eje de simetría.

simetría radialCuando se puede girar la forma y esta sigue siendo igual.

simulaciónRepresentación de un proceso natural complejo mediante un sistema más simple que permite analizar sus características.

simulacroPara Baudrillard, mucho de lo que se denomina real no es sino un simulacro levan-tado con intereses específi cos por personas o entidades que trazan cuidadosamente determinada simulación.

sintaxisEn programación, conjunto de normas que regulan y coordinan las distintas varia-bles y su asociación. || Reglas lingüísticas y gramaticales que gobiernan un lenguaje de programación.

stencilTécnica para la pintura decorativa que usa unas máscaras para crear patrones.

Libro GENERATIVO-plotter.indb 267Libro GENERATIVO-plotter.indb 267 13/01/2016 12:07:2113/01/2016 12:07:21

Page 268: Libro GENERATIVO-plotter

268 Umberto Roncoroni

sublimeCategoría estética que consiste en una grandeza o belleza extrema, que lleva al es-pectador a un éxtasis más allá de su racionalidad, o incluso puede provocar dolor espiritual por ser imposible de asimilar.

TtalloParte de la planta que crece en sentido contrario a la raíz y es el órgano que sostiene a las hojas, fl ores y frutos.

technéAcción a partir de la cual el ser humano produce una realidad que antes no existía. Conjunto de arte, creatividad, conocimiento y técnica.

télosPropósito o fi n en la naturaleza. Explicación de algo por medio de las causas fi nales. Meta hacia la que se dirige un proceso o hacia la que tiende algo que evoluciona. || Finalidad, objetivo general al que tiende un individuo o una sociedad.

textura proceduralTextura obtenida mediante algoritmos que pueden adaptarse perfectamente a formas 3D complejas e irregulares. Se genera durante el rendering de un objeto por medio de un pequeño programa. Son siempre diferentes y se adaptan a geometrías complejas (como volúmenes irregulares) mejor que las texturas hechas proyectando imágenes sobre las superfi cies de los objetos.

topologíaRama de las matemáticas dedicada al estudio de aquellas propiedades de los cuerpos geométricos que permanecen inalteradas.

transformaciónCualquier modifi cación a las propiedades y posición de un objeto.

turtle graphicsModo de dibujar dirigiendo el cursor (la tortuga) en la pantalla, mediante una se-cuencia de pasos en los que se da orientación y longitud del recorrido.

VvariableDato que se puede modifi car durante la ejecución de un programa.

vectorTodo segmento de recta dirigido en el espacio. Cada vector se defi ne por su origen, longitud, dirección y sentido.

Libro GENERATIVO-plotter.indb 268Libro GENERATIVO-plotter.indb 268 13/01/2016 12:07:2113/01/2016 12:07:21

Page 269: Libro GENERATIVO-plotter

Manual de diseño generativo 269

Parte 1Lección 1. El paradigma generativoAlexander, C. (1964). Notes on the Synthesis of Form. Cambridge, MA, EE. UU.:

Harvard University Press.Cox, G., McLean A., y Ward, A. (2000). The Aesthetics of Generative Code.

En International Conference on Generative Art. Milán, Italia: Generative Design Lab.

Galanter, P. (2001). Foundations of Generative Art Systems – A Hybrid Survey and Studio Class for Graduate Students. En International Conference on Generative Art. Milán, Italia: Generative Design Lab.

Galanter, P. (2003). What is Generative Art? Complexity Theory as a Context for Art Theory. En International Conference on Generative Art. Milán, Ita-lia: Generative Design Lab.

Generative Art International Conference and Exhibitions [Página web]. (1998-2014). Recuperado de htt p://www.generativeart.com/

Johnson, S. (2001). Emergence: The Connected Lives of Ants, Brains, Cities and Software. Londres, Reino Unido: Penguin Books.

Roncoroni, U. (2009). Arte y estética digital. Notas y críticas desde Latinoamérica. Lima, Perú: Fondo Editorial de la Universidad de San Martín de Porres.

Roncoroni, U. (2007). La forma emergente. Arte y pedagogía en el medio digital. Universidad de Lima, Fondo Editorial.

Runme.org. Say it with software art! [Página web]. Recuperado de htt p://runme.org

Soddu, C. (1998). Argenia, a Natural Generative Design. En International Con-ference on Generative Art. Milán, Italia: Generative Design Lab.

Stiny, G., y Gips, J. (1972). Shape Grammars and the Generative Specifi cation of Painting and Sculpture. En O.R. Petrocelli (Ed.), The Best Computer Papers of 1971. Filadelfi a, PA, EE. UU.: Auerbach.

Todd, S., y Latham, W. (1992). Evolutionary Art and Computers. Londres, Reino Unido; San Diego, CA, EE. UU.: Academic Press.

Wilson, S. (2002). Information Arts: Intersections of Art, Science and Technology. Cambridge, MA, EE. UU.: MIT Press.

Xenakis, I. (1976). Musique. Architecture. París, Francia: Casterman.

Bibliografía

Libro GENERATIVO-plotter.indb 269Libro GENERATIVO-plotter.indb 269 13/01/2016 12:07:2113/01/2016 12:07:21

Page 270: Libro GENERATIVO-plotter

270 Umberto Roncoroni

Lección 2. El arte generativo y sus fundamentos conceptualesArnheim, R. (1993). Consideraciones sobre la educación artística. Barcelona, Espa-

ña: Paidós.Baudrillard, J. (1999). Il complott o dell’arte & inserviste sul “complott o dell’arte”.

Milán, Italia: Matt eo Bianchi. Benjamin, W. (1969). The Work of Art in the Age of Mechanical Reproduction. Nue-

va York, NY, EE. UU.: Schocken.Bergson, H. (2007). La evolución creadora. Buenos Aires, Argentina: Cactus.Chomsky, N. (1957). Syntactic Structures. La Haya, Países Bajos: Mouton & Co.Costa, M. (2005). Interview with Mario Costa. En Soddu (Ed.), GA2005 Confe-

rence Proceedings. Milán, Italia: Alea Design.Derrida, J. (2004). Eyes of the University. Right to Philosophy 2. Stanford, CA, EE.

UU.: Stanford University Press.Dewey, J. (2005). Art as Experience. Nueva York, NY, EE. UU.: Penguin Group.Eco, U. (2000). Opera aperta. Forma e indeterminazione nelle poetiche contempora-

nee. Milán, Italia: Bompiani. Flusser, V. (2000). Towards a Philosophy of Photography. Londres, Reino Unido:

Reaktion Books.Gadamer, H. G. (2000). Veritá e metodo. Milán, Italia: Bompiani. Gell-Mann, M. (2003). El quark y el jaguar. Barcelona, España: Tusquets.Habermas, J. (1990). Moral Consciousness and Communicative Action. Cam-

bridge, MA, EE. UU.: MIT Press.Heidegger, M. (2000). L’origine dell’opera d’arte. Milán, Italia: Marinott i Edizioni.Heidegger, M. (1977). The Question Concerning Technology. Nueva York, NY,

EE. UU.: Harper & Row.Roncoroni, U. (2007). La forma emergente. Arte y educación en el medio digital.

Universidad de Lima, Fondo Editorial.Snow, C. P. (1993). The Two Cultures. Canto Edition. Cambridge, Reino Unido:

Cambridge University Press.Sokal, A., y Brickmont, J. (1999). Imposturas intelectuales. Barcelona, España:

Paidós.Wagensberg, J. (1985). Ideas sobre la complejidad del mundo. Barcelona, España:

Tusquets.Witt genstein, L. (1999). Ricerche fi losófi che. Turín, Italia: Einaudi.

Lección 3. Los aspectos científi cos del arte generativoAshton, A. (2005). El armonógrafo. Las matemáticas de la música. Barcelona, Es-

paña: Paidós.Bailey, J. (1996). Afterthought. Nueva York, NY, EE. UU.: Basic Books.

Libro GENERATIVO-plotter.indb 270Libro GENERATIVO-plotter.indb 270 13/01/2016 12:07:2113/01/2016 12:07:21

Page 271: Libro GENERATIVO-plotter

Manual de diseño generativo 271

Ball, P. (2001). The Self-Made Tapestry. Patt ern Formation in Nature. Nueva York, NY, EE. UU.: Oxford University Press.

Bertalanff y, L. (1976). Teoría general de los sistemas. México D. F., México: Fondo de Cultura Económica.

Cézanne, P. (1937). Correspondence (J. Rewald, Ed.). París, Francia: Grasset.Flake, G. W. (1998). The Computational Beauty of Nature. Cambridge, MA, EE.

UU.: MIT Press.Leyton, M. (2001). A Generative Theory of Shape. Berlín, Alemania: Springer-

Verlag.Maturana, H. (1980). Biology of Cognition. Dordrecht, Países Bajos: D. Reidel.Prigogine, I. (1977). Las leyes del caos. Barcelona, España: Crítica.Salingaros, N. A. (2002). Charles Jencks y el nuevo paradigma en arquitectura.

San Antonio, TX, EE. UU.: Departamento de Matemáticas Aplicadas, Universidad de Texas.

Suárez, E. (Ed.). (2007). Variedad infi nita. Ciencia y representación. Un enfoque histórico y fi losófi co. México, D. F., México: Limusa.

Taylor, M. (2001). The Moment of Complexity. Emerging Network Culture. Chica-go, IL, EE. UU.: University of Chicago Press.

Thompson, D. W. (1992). On Growth and Form. The Complete Revised Edition. Nueva York, NY, EE. UU.: Dover.

Wolfram, S. (2002). A New Kind of Science. Champaign, IL, EE. UU.: Wolfram Media.

Lección 4. El paradigma generativo y la tecnologíaBaudrillard, J. (1996). Il delitt o perfett o. La televisione ha ucciso la realtà? Milán,

Italia: Raff aello Cortina Editore.Benjamin, W. (1969). The Work of Art in the Age of Mechanical Reproduction. Nue-

va York, NY, EE. UU.: Schocken.Flusser, V. (2007). Towards a Philosophy of Photography. Londres, Reino Unido:

Reaktion Books.Heidegger, M. (1977). The Question Concerning Technology. Nueva York, NY,

EE. UU.: Harper & Row.Kurzweil, R. (2005). The Singularity is Near. Nueva York, NY, EE. UU.: Viking

Books.Maldonado, T. (1997). Critica della ragione informatica. Milán, Italia: Feltrinelli.McKenzie, W. (2004). A Hacker Manifesto. Cambridge, MA, EE. UU.: Harvard

University Press.Oppenheimer, T. (1997). The Computer Delusion. Atlantic Monthly, 280(1),

45-62.

Libro GENERATIVO-plotter.indb 271Libro GENERATIVO-plotter.indb 271 13/01/2016 12:07:2113/01/2016 12:07:21

Page 272: Libro GENERATIVO-plotter

272 Umberto Roncoroni

Papert, S. (1990). Computer Criticism vs. Technocentric Thinking. MIT Media-Lab Epistemology and Learning Memo No. 1. Cambridge, MA, EE. UU.: MIT Press.

Roncoroni, U. (2007). La forma emergente. Arte y pedagogía en el medio digital. Universidad de Lima, Fondo Editorial.

Turkle, S. (1995). Life on the Screen. Nueva York, NY, EE. UU.: Touchstone.Virilio, P. (2000). La bomba informatica. Milán, Italia: Raff aello Cortina Editore.

Lección 5. Aprender y enseñar el arte generativo

Burry, M. (2011). Scripting Cultures. Chichester, Reino Unido: John Wiley & Sons.

Bateson, G. (1972). Steps to an Ecology of Mind. Nueva York, NY, EE. UU.: Ba-llantine Books.

Greenberg, I. (2007). Processing. Creative Coding and Computational Art. Nueva York, NY, EE. UU.: Springer-Verlag.

Hiwel. (2013). Hole in the wall. Lightning the spark of learning. Recuperado de htt p://www.hole-in-the-wall.com/

Kernighan, B., y Ritchie, D. (1989). The C programming language. Englewood Cliff s, NJ, EE. UU.: Prentice Hall.

Malaguzzi, L. (1995). I cento linguaggi dei bambini. Bérgamo, Italia: Edizioni Junior.

Mitra, S. (2007). Kids Can Teach Themselves. Recuperado de htt p://www.ted.com

Munari, B. (1997). Artista e designer. Roma, Italia: Universale Laterza.Nocchi Croccolo, M. (2005). Un progett o a lungo termine. I laboratori di Bruno

Munari. Pisa, Italia: Edizioni ETS.Papert, S. (1990). Computer Criticism vs. Technocentric Thinking. MIT Media-

Lab Epistemology and Learning Memo No. 1. Cambridge, MA, EE. UU.: MIT Press.

Quiroz, M. T. (2001). Aprendiendo en la era digital. Universidad de Lima, Fondo Editorial.

Reas, C., y McWilliams C. (2010). Form + Code. In design, art and architecture. Nueva York, NY, EE. UU.: Princeton Architectural Press.

Terzidis, K. (2009). Algorithms for Visual Design. Using the Processing Language. Indianápolis, IN, EE. UU.: Wiley.

Tovar, R. (2009). Constructivismo práctico en el aula. México, D. F., México: Trillas.

Libro GENERATIVO-plotter.indb 272Libro GENERATIVO-plotter.indb 272 13/01/2016 12:07:2113/01/2016 12:07:21

Page 273: Libro GENERATIVO-plotter

Manual de diseño generativo 273

Parte 2Tutorial básico 1. Los principios básicos de la programaciónHofstadter, D. (1979). Gödel, Escher, Bach: una eterna trenza dorada. México

D. F., México: CONACYT.Joyanes, L. (2008). Fundamentos de la programación. Algoritmos y estructura de

datos. Madrid, España: McGraw-Hill.Kernighan, B., y Ritchie, D. (1989). The C programming language. Englewood

Cliff s, NJ, EE. UU.: Prentice Hall.Knuth, D. (1997). The Art of Computer Programming. Reading, MA, EE. UU.:

Addison-Wesley.Moreno, M. C., y Campos, M. (2003). Manual de lenguaje C++. Universidad de

Lima, Fondo Editorial.

Tutorial básico 2. Introducción a los sistemas-LFlake, G. W. (2000). The Computational Beauty of Nature. Cambridge, MA, EE.

UU.: MIT Press.Prusinkiewicz, P. y Hanan, J. (1989). Lindenmayer Systems, Fractals and Plants.

Nueva York, NY, EE. UU.: Springer-Verlag. Prusinkiewicz, P., y Lindenmayer, A. (1990). The Algorithmic Beauty of Plants.

Nueva York, NY, EE. UU.: Springer-Verlag. Roncoroni, U. (2007). Arte y estética digital. Notas y críticas desde Latinoamérica.

Lima, Perú: Fondo Editorial de la Universidad de San Martín de Porres.Stevens, R. T. (1989). Fractal Programming in C. Nueva York, NY, EE. UU.:

Henry Holt. Stiny, G., y Gips, J. (1972). Shape Grammars and the Generative Specifi cation

of Painting and Sculpture. En O. R. Petrocelli (Ed.), The Best Computer Papers of 1971. Filadelfi a, PA, EE. UU.: Auerbach.

Tutorial básico 3. Imágenes bitmap y gráfi cos vectorialesDe Spinadel, V. (Ed.). (2007). Geometría fractal. Buenos Aires, Argentina: Nue-

va Librería.Flake, G. W. (1998). The Computational Beauty of Nature. Cambridge, MA, EE.

UU.: MIT Press.Hearn, D., y Baker, M. P. (2008). Gráfi cos por computadora con OpenGL. Madrid,

España: Pearson.Monroy Olivares, C. (2002). Curvas fractales. México D. F., México: Alfaomega.Pajares, G. (Ed.). (2004). Imágenes digitales. Procesamiento práctico con Java. Mé-

xico D. F., México: Alfaomega.Terzidis, K. (2009). Algorithms for Visual Design. Using the Processing Language.

Indianápolis, IN, EE. UU.: Wiley.

Libro GENERATIVO-plotter.indb 273Libro GENERATIVO-plotter.indb 273 13/01/2016 12:07:2113/01/2016 12:07:21

Page 274: Libro GENERATIVO-plotter

274 Umberto Roncoroni

Parte 3Tutorial 1. La espiral, geometría de la naturalezaBall, P. (2001). The Self-Made Tapestry. Patt ern Formation in Nature. Nueva York,

NY, EE. UU.: Oxford University Press.Pizzi, D. (2006). Conchiglie ai raggi X. Mantua, Italia: Edizioni Corraini.Seba, A. (2004). Shells and Corals. Colonia, Alemania: Taschen.Stevens, P. (1986). Patrones y pautas de la naturaleza. Barcelona, España: Salvat.Thompson, D. W. (1980). Sobre el crecimiento y la forma. Madrid, España: Blu-

me.Wagensberg, J. (2002). Apunts sobre la intuïció científi ca de Gaudí. La Revue

des Arts et Métiers 35. Wagensberg, J. (2007). La rebelión de las formas. Barcelona, España: Tusquets.

Tutorial 2. Azar y ruidoBall, P. (2001). The Self-Made Tapestry. Patt ern Formation in Nature. Nueva York,

NY, EE. UU.: Oxford University Press.Ebert, D. S. (Ed.). (1994). Texturing and Modeling. A Procedural Approach. Cam-

bridge, MA, EE. UU.: Academic Press Professional.Schildt, H. (2002). C#. The Complete Reference. Nueva York, NY, EE. UU.: Mc-

Graw-Hill.Pajares, G. (Ed.). (2004). Imágenes digitales. Procesamiento práctico con Java. Mé-

xico D. F., México: Alfaomega.

Tutorial 3. La autosimilaridad y los fractalesBarnsley, M. (1993). Fractals Everywhere. Boston, MA, EE. UU.: Academic Press

Professional. Devaney, R. (1990). Chaos, Fractals and Dynamics. Computer Experiments in

Mathematics. Menlo Park, CA, EE. UU.: Addison-Wesley.Frame, M., y Mandelbrot, B. (2002). Fractals, Graphics and Mathematics Educa-

tion. Washington D. C.: Mathematical Association of America.Monroy Olivares, C. (2002). Curvas fractales. México, D. F., México: Alfaomega.

Tutorial 4. Patrones y teselacionesBall, P. (2001). The Self-Made Tapestry. Patt ern Formation in Nature. Nueva York,

NY, EE. UU.: Oxford University Press.Borras, E. (Ed.). (2002). Ritmos. Matemáticas e imágenes. Tres Cantos, España:

Nivola Ediciones.Ebert, D. S. (Ed.) (1994). Texturing and Modeling. A Procedural Approach. Cam-

bridge, MA, EE. UU.: Academic Press Professional.

Libro GENERATIVO-plotter.indb 274Libro GENERATIVO-plotter.indb 274 13/01/2016 12:07:2113/01/2016 12:07:21

Page 275: Libro GENERATIVO-plotter

Manual de diseño generativo 275

Eglash, R. (1999). African Fractals. Nuevo Brunswick, NJ, EE. UU.: RutgersUniversity Press.

Green, P., y Sibson, R. (1978). Computing Dirichlet Tessellations in the Plane. Computer Journal 21.

Kas, T. (2010). Voronoi Tessellation in Real Time. Recuperado de htt p://assert-true.blogspot.com/2010/02/

Moussavi, F., y Kubo, M. (Eds.). (2000). The Function of Ornament. Barcelona, Madrid: Harvard School of Design.

Reynoso, C. (2008). Diseño artístico y arquitectónico con gramáticas complejas. Re-cuperado de htt p://carlosreynoso.com.ar

Tutorial 5. Vida artifi cial y autómatas celularesFlake, G. W. (1998). The Computational Beauty of Nature. Cambridge, MA, EE.

UU.: MIT Press.Wilson, S. (2002). Information Arts: Intersections of Art, Science and Technology.

Cambridge, MA, EE. UU.: MIT Press. Wolfram, S. (2002). A New Kind of Science. Champaign, IL, EE. UU.: Wolfram

Media.

Tutorial 6. Árboles y ramifi cacionesCole, R. V. (1965). The Artistic Anatomy of Trees. Their Structure & Treatment in

Painting. Nueva York, NY, EE. UU.: Dover.Hallë, F. (2009). Arquitectura de los árboles. En XXXII Jornadas Argentinas de

Botánica. Córdoba, Argentina: Huerta Grande.Munari, B. (2004). Disegnare un albero. Mantua, Italia: Corraini Editore.Nocchi Croccolo, M. (2005). Un progett o a lungo termine. I laboratori di Bruno

Munari. Pisa, Italia: Edizioni ETS.Stevens, P. (1986). Patrones y pautas de la naturaleza. Barcelona, España: Salvat.Suárez, E. (Ed.). (2007). Variedad infi nita. Ciencia y representación. Un enfoque

histórico y fi losófi co. México, D. F., México: Limusa.

Tutorial 7. OrganismosAdam, H. C. (2001). Karl Blossfeldt. Nueva York, NY, EE. UU.: Taschen.Bonet i Armengol, J. (2004). The essential Gaudí. Barcelona, España: Pórtic.Haeckel, E. (2005). Art Forms from the Ocean. Nueva York, NY, EE. UU.: Prestel

Verlag.Horowitz , A., y Pott er, P. (1971). Introductory Petrography of Fossils. Berlín, Ale-

mania: Springer-Verlag.Roncoroni, U. (Ed.). (2005). Artware5. Catálogo de la exposición. Lima, Perú:

ICPNA.

Libro GENERATIVO-plotter.indb 275Libro GENERATIVO-plotter.indb 275 13/01/2016 12:07:2113/01/2016 12:07:21

Page 276: Libro GENERATIVO-plotter

276 Umberto Roncoroni

Roncoroni, U. (2012). GDesign manual. Recuperado de htt p://www.digital-poiesis.org

Salingaros, N. A. (2001). A Theory of Architecture. Recuperado de htt p://sphere.math.utsa.edu/sphere/salingar/architecture.html

Thompson, D. W. (1992). On Growth and Form. The Complete Revised Edition. Nueva York, NY, EE. UU.: Dover.

Tutorial 8. Image processing generativoEbert, D. S. (Ed.). (1994). Texturing and Modeling. A Procedural Approach. Cam-

bridge, MA, EE. UU.: Academic Press Professional.Hanke, R. (1978). La fascinación de los fi ltros. Monheim, Alemania: Hama.Marangoni, R., y Geddo, M. (2000). Le immagini digitali. Milán, Italia: Hoepli.Pajares, G. (Ed.). (2004). Imágenes digitales. Procesamiento práctico con Java. Mé-

xico D. F., México: Alfaomega.

Libro GENERATIVO-plotter.indb 276Libro GENERATIVO-plotter.indb 276 13/01/2016 12:07:2113/01/2016 12:07:21

Page 277: Libro GENERATIVO-plotter

Libro GENERATIVO-plotter.indb 277Libro GENERATIVO-plotter.indb 277 13/01/2016 12:07:2113/01/2016 12:07:21

Page 278: Libro GENERATIVO-plotter

Este libro se terminó de imprimir en diciembre de 2015en Finising S.A.C.,

Jr. La Maquinaria 160 Urb. La Villa, Chorrillos,Lima, Perú

Teléfono: 251-7191www.fi nishingsac.com

Libro GENERATIVO-plotter.indb 278Libro GENERATIVO-plotter.indb 278 13/01/2016 12:07:2113/01/2016 12:07:21

Page 279: Libro GENERATIVO-plotter