Structure Synth y Sunflow, diseño en 3D

Hoy traigo un par de herramientas, de las que supe por un mail, son Structure Synth y Sunflow.

Structure Synth se encarga de la parte del diseño, con una peculiaridad, en vez de hacer las figuras a mano, se las "describe" a través de una gramatica... para entendernos, se programan, pero a diferencia de la mayoria de los lenguajes, no hay variables (hay parámetros, pero solo unos predefinidos) ni condiciones, todo está definido como un conjunto de figuras ("rules", reglas), que son algunas figuras básicas (cubos, esferas, lineas...). El truco suele estar en usar la recursividad de las reglas (que una misma regla se llame a si misma, lo que lo hace ideal para generar fractales) y , aunque menos, las repeticiones, como repetir muchos cubos para hacer una especie de aro.

Solo un comentario, si usas GNU/Linux, probablemente el paquete del repositorio falle, así como la compilación desde el código, a falta de otra solución mejor, se puede usar Wine con el paquete de Windows, que sorprendentemete va muy bien es usable aún emulado, supongo que porque no usa ninguna librería única de Windows (¿?) Página web: http://structuresynth.sourceforge.net/ Descarga: http://structuresynth.sourceforge.net/download.php

Sunflow se encarga de la parte del renderizado, si exportamos las imágenes de Structure Synth, (F6) y se las pasamos a Sunflow, el resultado será mucho mejor que el propio de Structure Synth.

Este funciona perfectamente con GNU/Linux (está en java). Página web: http://sunflow.sourceforge.net/ Descarga: http://sunflow.sourceforge.net/index.php?pg=down (o el sistema de paquetes de tu SO)

En los próximos post intentaré hacer un tutorial sobre Structure Synth (el uso básico de Sunflow, a partir de archivos ya generados, es fácil), ya que no hay ninguno por la red.

Sin más dilación algunas muestras de lo que se puede hacer con estos dos programas:

La primera es obra de Vishkey, responsable de que haya encontrado estos programas, es un triángulo_fractal:

[http://2.bp.blogspot.com/_26RJWnubh-w/TD41Jvc5L4I/AAAAAAAAAL0/W0K-B7ml2UA/ s320/sierpinski_2d.png] =============================================================================== set maxobjects 1000000

R1

rule r1 maxdepth 5 > c2 { //El 5 hace referencia a la profundidad del fractal    {s 0.5 hue 5}  R1    {s 0.5 x 1 hue 5} R1    {s 0.5 y 0.865  x 0.5 hue 5} R1 }

rule c2 {   linea   {rz 60 x 0.25 y 0.433} linea   {rz -60 x -0.25 y 0.433} linea }

rule linea {  {s 1 0.1 0.1} box }

===============================================================================

Otro código del mismo autor (con este me tome la libertad de bajar el maxdepth a 50 porque sino, con Wine, el renderizado no era posible):

[http://1.bp.blogspot.com/_26RJWnubh-w/TD5BVCvnFaI/AAAAAAAAAL4/LrkYoI3pjpU/ s320/estrella.png] =============================================================================== r2

rule r2 maxdepth 100 {   4 * {rz 90 hue 4} r1   { s 0.75 z 1 rz 30 a 39} r2 }

rule r1 maxdepth 100{   box   {s 0.9 y 0.3 rz 5} r1 } ===============================================================================

Un ejemplo de la web, que también tiene su interes:

[http://1.bp.blogspot.com/_26RJWnubh-w/TD5HMbWqShI/AAAAAAAAAMA/kd_cNe8UdGI/ s320/toro_example.png] =============================================================================== / Sample Torus. /

set maxdepth 100 r1

36 * { x -2 ry 10   } r1

rule r1 maxdepth 10 {    2 * { y -1 } 3 * { rz 15 x 1 b 0.9 h -20 } r2    { y 1 h 12 a 0.9 rx 36 } r1 }

rule r2 {    { s 0.9 0.1 1.1 hue 10 } box // a comment }

rule r2 w 2 {    { hue 113 sat 19 a 23 s 0.1 0.9 1.1 } box } ===============================================================================

Y por último, un aporte propio:

[http://2.bp.blogspot.com/_26RJWnubh-w/TD5Guu5Ud1I/AAAAAAAAAL8/b6I5-JhBxDs/ s320/trisquel_3d_light.png] =============================================================================== /*

Trisquel Structure Synth figure. */

set maxdepth 75

{ color #195EB9 } base

rule spiral_base {   { x 1 rz 6 ry 6 s 0.975 } spiral_base   { s 1 } box }

rule arm1 {   { rx 140 } spiral_base }

rule arm2 {   { rx 60 ry 36 rz 120 } spiral_base }

rule arm3 {   { ry -60 rz 180 }  spiral_base }

rule base {     arm1     arm2     arm3     { s 2} sphere } ===============================================================================

Hasta la próxima.

untagged

jGuess: Reconociendo tipos de archivos por los números mágicos » « Introducción a Structure Synth ( I )