“La filosofía está escrita en ese (…) libro que tenemos (…) ante los ojos, (…) el universo, pero no se puede entender si antes no se aprende (…) el lenguaje, a conocer los carácteres en lo que está escrito. Está escrito en lenguaje matemático y sus carácteres son (…) figuras geométricas, sin las cuales es imposible entender ni una palabra (…)”.
Galileo Galilei. Il Saggiatore.
En este post te explicaremos que es el diseño procedural , si aún no has leído el artículo sobre cocreación, te sugerimos lo hagas, para que puedas entender a mayor profundidad la “Co-Creación Procedural” , que es el motivo de la existencia de este post. También saltar directamente a leer en el blog de SEED el artículo del concepto “Co-Creación Procedural” y posteriormente regresar a este post para adentrarte más.
Introducción
Hay tres elementos que, si bien conocemos de forma individual, están íntimamente relacionados. Estoy queriendo decir lo mismo de lo que habla Galileo en la cita anterior: la matemática, la naturaleza y la filosofía son partes de un todo. Por supuesto que Galilei habla de filosofía en un modo amplio, quizás queriendo significar conocimiento o sabiduría, lo cual nos hace pensar en los orígenes del área. Los filósofos griegos titulaban sus tratados como physis, palabra que se transcribe como “física” pero cuyo significado apunta a la naturaleza.
Mientras que la relación entre filosofía y matemática quizás resulta más evidente: Tales de Mileto y Pitágoras no sólo hicieron contribuciones fundamentales a la matemática, sino que también fueron filósofos. Mientras que en la modernidad las contribuciones de Descartes y Leibniz a ambas áreas fueron fundamentales. Sin embargo, el tema que más nos interesa en SEED y GOW es la relación entre matemáticas y naturaleza, y un buen ejemplo inevitable es pensar en el número áureo, el cual está presente en la arquitectura, la naturaleza, el diseño, el arte y la tecnología.
Contexto
Es en este punto donde debemos abandonar nuestro solipsismo cartesiano para pensar en una relación más productiva. Para escribir el post de cocreación, uno de los artículos que nos sirvió de inspiración fue el artículo: “Necesidad de metodologías co-creativas”, donde Rodrigo Carbajal habla de la necesidad de una “metodología emergente de diseño, que mezcla los procesos cognitivos creativos conscientes con los procesos iterativos informáticos del paradigma orientado a objetos, mezclados con las secuencias matemáticas que aparecen en la naturaleza”.
Esto quiere decir que no sólo la matemática y la naturaleza están entrelazadas, sino que también podemos aprender sobre su relación y utilizar su sabiduría en el diseño usando el paradigma informático de la orientación a objetos. El objetivo de este artículo es tratar de pensar estos temas de forma unificada, a través del concepto de diseño procedural, para advertir a los nuevos creativos, profesionales y PYMES que la guerra de los algoritmos en el ámbito 3D creativo ya es una realidad, y la tendencia será generar más inteligencia en cada uno de ellos, donde los supervivientes serán aquellas empresas y profesionales que transformen sus perfiles a STEAM (Science, Technology, Engineering, Art, Maths),
¿El diseño en si mismo es procedural?
El concepto de diseño es algo que solemos tener incorporado sin demasiada reflexión. Es más fácil pensar en ejemplos o en escuelas de diseño que en una definición específica. De hecho, la RAE no nos ayuda demasiado para pensar qué es el diseño: se habla de, en el caso de un edificio, de una “traza o delineación”. La segunda acepción es un poco más clara pero sigue siendo vaga: sería un “proyecto o plan”. Recién la tercera acepción se vuelve más específica: el diseño sería una “Concepción original de un objeto u obra destinados a la producción en serie”. Aquí tenemos algunos elementos destacados, como la idea de concepción (algo premeditado) y de originalidad (algo diferente, nuevo, único).
También se evidencia una idea moderna: el objetivo del diseño sería la producción en serie. Gracias a la RAE tenemos una idea aproximada del concepto a definir: está vinculado a ideas abstractas como proyecto, plan, concepción o delimitación. Sin embargo, hay algo que nos perdemos aquí. La idea de diseño como producto, es decir como algo ya terminado. De esto hablamos cuando nos referimos al diseño de un objeto. Otra idea que se pierde es la idea del diseño como solución a un problema o como facilitamiento de una actividad o función. También se podría pensar como oculta en estas definiciones, pero insinuada, la idea de diseño como un proceso, es decir, el seguimiento de un determinado número de especificaciones. De todos modos, la idea era simplemente plantear una definición tentativa de diseño y, habiendo satisfecho ese criterio, debemos pensar en el concepto de procedural.
Cuando pensamos en diseño, probablemente sea inevitable dirigir nuestro pensamiento -consciente o inconscientemente- hacia la Bauhaus. Descrita como una “cofradía,” sirvió como escuela de diseño, arquitectura, artesanía y arte. Muchos de los diseños producidos por la escuela siguen siendo parte de nuestro día a día, por lo que considerar la historia de la Bauhaus es considerar la idea de diseño como solución a problemas.
En principio, procedural puede pensarse como sinónimo de procedimental, y se puede entender como el desarrollo de un método o un conjunto de pasos para obtener un resultado. Esta es una definición amplia, por lo que está asociada a diversas actividades. Sin embargo, en SEED y GOW nos interesa su vertiente vinculada a la programación y el diseño. Dentro de este marco, lo podemos ver encontrar como procedural generation o “generación por procedimientos”. Si bien es un concepto relativamente fácil de entender, debemos establecer una definición. Para esto me fue bastante útil el artículo “Procedural Generation – A Comprehensive Guide Put in Simple Words”, donde se define la generación por procedimientos/procedural como: la creación de “data o contenido” mediante “algoritmos o una cierta lógica”.
Aquí “cierta lógica” significa que hablamos de la generación de un contenido no aleatorio. Como un algoritmo se puede entender como “una herramienta para resolver un cálculo computacional bien especificado”, también podemos entender que la generación por procedimientos viene a resolver un problema o facilitar una actividad: lo que antes se generaba manualmente ahora se automatiza. La literatura respecto a la generación por procedimientos, o más bien sus ejemplos, suelen estar asociados al diseño de videojuegos, sin embargo, este método tiene aplicaciones diversas, tanto en el campo de la matemática, la animación, y el modelado 3D, entre otros. La guerra de los algoritmos en el ámbito 3D ya es una realidad, la tendencia será generar más inteligencia en cada uno de ellos.
El Diseño Procedural
Ya teniendo medianamente clara la definición de procedural, probablemente resulte menos elusiva la de diseño procedural. Es importante señalar en este punto que, no hay tanta literatura sobre diseño procedural como si hay sobre generación procedural. Sin embargo, hay algunas definiciones simples que nos pueden ayudar. La primera definición está pensada desde el software engineering, por lo que se parte de un software con “data y estructuras de programa ya establecidos”.
Aquí, el diseño procedural tendría como objetivo “transformar componentes estructurales en una descripción procedural del software” (traducción propia). Otra definición posible, quizás un poco más completa y complementaria, es aquella que considera al diseño procedural como un “paradigma de diseño”. En Paradigmas: Diseño atómico, diseño procedural y DRY, se habla del procedural como “la construcción de objetos variados para (…) construir sistemas a partir de estos elementos (…) En vez de construir todos los objetos de nuestro sistema, vamos a trabajar los elementos y reglas que se resolverán después”.
Generación Procedural
Ambas definiciones coinciden en lo siguiente: se parte de elementos y estructuras para generar o una descripción o un sistema. Por lo tanto, a partir de las partes se va construyendo un todo, y lo que se vislumbra en ambas es la automatización de un proceso que, como vimos en la sección de generación procedural, antes era manual. La idea de trabajar con “reglas” nos hace pensar en un código, pero también en la definición de algoritmo que ya utilizamos.
Habíamos dicho que un algoritmo es “una herramienta para resolver un cálculo (…) bien especificado”, por lo tanto se puede pensar en un algoritmo como un conjunto de operaciones determinadas por reglas. Y eso nos clarifica un poco lo que podría ser ese “elemento” del que se habla en la segunda definición: es un algoritmo. También hablamos de la generación procedural como la creación de data o contenido mediante algoritmos, por lo que creación y construcción parecerían intercambiables en este caso.
De esta forma
podríamos pensar en el diseño procedural como la generación de “contenido” o data mediante algoritmos que parten de elementos o estructuras de un software con el fin de automatizar un proceso que antes era manual. Desde SEED y GOW nos parece fundamental el desarrollo y utilización de nuevas metodologías de diseño. Por eso aquí hablamos sobre el diseño procedural, y en el anterior artículo sobre cocreación. Ambas metodologías no sólo ahorran tiempo y dinero, sino también multiplican las posibilidades de creación. La utilización de nuevas metodologías es también un llamado a la adaptación a los tiempos que corren: quien no se adapte no sobrevivirá.
Agradecemos el apoyo del Ayuntamiento de Barcelona por apoyar al proyecto “Co-Creación Procedural” , sin esta ayuda no podríamos estar profundizando de esa manera.
Este post escrito esta registrado dentro del libro en creación sobre el Concepto y Metodología de Co-Creación Procedural de GOWinstute y SEEDinterfaces con número: 2204030851894