Inicio > Geometría, Programación > Explorando la recursividad en el espacio

Explorando la recursividad en el espacio

Lunes, 10 de septiembre de 2012
Citar este artículo 11.864 visitas
Explorando la recursividad en el espacio

Desde hace ya un par de años que vengo experimentando con el arte generativo, como Context Free y Structure Synth, lo que motivó a armar un curso el año pasado en el Penta UC que ya hemos realizado en tres ocasiones.

En este post mostraré algunos nuevos experimentos que he venido realizando con estructuras recursivas, al hacer variar progresivamente un parámetro asociado a alguna rotación, como una ilustración de formas creativas y desafiantes de explorar la recursividad en el espacio.

En varios post anteriores, todos parte de la categoría Programación, he mostrado los programas que he venido utilizando en el curso de arte generativo. Particularmente, partí mostrando las principales características de Context Free, el cual corresponde a un entorno 2D, y posteriormente a Structure Synth, uno muy similar, pero 3D.

Fractales en movimiento

Más allá de la posibilidad de construir estructuras 3D que involucran recursividad y muchas veces aleatoriedad, una característica interesante es la de poder automatizar la creación de muchas estrucuras, asociadas a un código en el que alguna variable cambia según cierto patrón.

Tómese el siguiente código como ejemplo:

Ejemplo de árbol recursivo en Structure Synth

rule arbol
{
box
{x -0.5 y 0.5 z 0.5 rz α s 0.707 } arbol
{x 0.5 y 0.5 z 0.5 rz –α s 0.707 } arbol
}

Según este código, los valores de x, y, z, corresponden a traslaciones respecto a los ejes respectivos; rz, corresponde a rotaciones en torno al eje Z, y s corresponde a un factor de homotecia. Si se asignan distintos valores al ángulo α, se obtienen distintas variedades de una misma estructura, como se muestra en las siguientes imágenes.

 

De esta forma, si se automatiza este proceso, es posible crear animaciones continuas de estas variaciones, como se ilustra en el post del blog original de Structure Synth: http://blog.hvidtfeldts.net/, lo que hace uso de Javascript.

A continuación dejo cinco ejemplos de variaciones, con algunos códigos ilustrativos:

Videos: 1 | 2 | 3 | 4 | 5

1. Sólido de revolución

Código de Structure synth

Estos videos están compuestos por 360 cuadros, generados haciendo variar de 1 a 360 el ángulo marcado en rojo.

Los códigos asociados a colores se han omitido (h: tinte, b: brillo y sat: saturación).

    {rx -90} 72 * {ry 5 } solido
    rule solido
    {

  • { 90 * {rz 18 ry –0 x 0.5 y 0.7 s 0.9} box }
  • }

2. Moledora (Ejemplo incluido en Structure Synth)

Código de Structure synth

Estos videos están compuestos por 360 cuadros, generados haciendo variar de 1 a 360 el ángulo marcado en rojo.

Los códigos asociados a colores se han omitido (h: tinte, b: brillo y sat: saturación).

    grinder
    rule grinder

  • { 36 * { ry 10 z 1.2 }
    1 * { ry 0 rx 0 } arm }
  • rule arm{ box

  • { rz 2 rx 3 z 0.22 x 0.3 ry 10 s 0.999 x 0.5 } arm }

3. Planta de cubos

Código de Structure synth

Estos videos están compuestos por 360 cuadros, generados haciendo variar de 1 a 360 el ángulo marcado en rojo.

Los códigos asociados a colores se han omitido (h: tinte, b: brillo y sat: saturación).

    planta
    rule planta
    {

  • box
  • {x -0.34 y 0.09 z 0.6 rz -25 s 0.8} planta
  • {x 0.69 y 0.84 rz –0 s 0.7 h 10} planta
  • }

4. Planta de esferas

Código de Structure synth

Estos videos están compuestos por 360 cuadros, generados haciendo variar de 1 a 360 el ángulo marcado en rojo.

Los códigos asociados a colores se han omitido (h: tinte, b: brillo y sat: saturación).

    planta
    rule planta
    {

  • sphere
  • {x 0.25 y -0.7 fx fz rx 4 s 0.7} planta
  • {x -0.5 y 0.5 fz ry 0 s 0.9} planta
  • }

5. Árbol 3D (3 vistas)

Código de Structure synth

Estos videos están compuestos por 360 cuadros, generados haciendo variar de 1 a 360 el ángulo marcado en rojo.

Los códigos asociados a colores se han omitido (h: tinte, b: brillo y sat: saturación).

    arbol
    rule arbol
    {

  • {s 1 1 0.1} box
  • {x -0.5 y 0.5 z 0.5 rz 0 s 0.707 } arbol
  • {x 0.5 y 0.5 z 0.5 rz –0 s 0.707 } arbol}
  • }

Geometría, Programación , , , , , ,

  1. Sin comentarios aún.
  1. Sin trackbacks aún.

Artículo publicado en http://www.geometriadinamica.cl/2012/09/explorando-la-recursividad-en-el-espacio/.