Incredible BorderLife
Incredible BorderLife (La Increible Frontera de la Vida)
Basado en una creacion de Gene Kogan, decidí explorar en una idea que tuve: Crear Células Matemáticas que formaran parte de un complejo Sistema de Partículas capaz de crear la propia configuración de su aspecto.
La visualización inicial de la adaptación de esta idea a partir de una creacion de Gene Kogan se muestra en la parte superior.
Después decidí convertir las funciones básicas que permitían formar dicha célula en una única clase CreaturesCL.
A dicha clase le di unos atributos parametrizables con el fin de poder conseguir, con el mínimo esfuerzo, formas totalmente diferentes y de diferentes comportamientos. La idea fundamental era proyectar la misma sensación que la que tenemos cuando vemos los organismos de una gota de agua, por primera vez, al microscopio.
El problema principal al que me enfrente era el de la generación de las características que conformarían cada uno de las partículas. Teniendo en cuenta que Gene Kogan dibujaba su elemento ayudándose de un recorrido a lo largo de los 365 grados de la circunferencia, me enfrentaba al problema de un excesivo numero de cálculos que ralentizaba la ejecución y, en consecuencia, la visualización de las partículas.
En otras ocasiones había optado en crear un método de la clase (o función dentro de la clase) que condicionara por un código los diferentes movimientos o comportamientos. La principal desventaja de hacer esto era que ello habría supuesto acotar las posibilidades de las formas que podría visualizar, por no hablar de que hubiera incrementado en gran medida el código y su mantenimiento en posteriores versiones.
Yo no quería visualizar solamente cinco o veinte formas diferentes entremezcladas entre si y programadas y conocidas por mi. Esto hubiera restado el valor de la impredecibilidad que yo quería obtener. Lo que yo quería era generar un gran numero de figuras que fueran distintas tanto para una sola ejecución como para el resto de las ejecuciones siguientes. Algo parecido a un NFT donde cada ejecucion da una imagen diferente. De este modo, ese “Déjá vu” (que crea el final del interés y la curiosidad) en un “Jamais revu” (un concepto que cree intentando plasmar que siempre habrá curiosidad por conocer que visualizara la siguiente visualización o ejecución).
Para lograr tanto optimizar el código como conseguir esa impredecibilidad con la que intentaba encontrar mi “Jamais Revu” opte por crear nuevas variables globales que fueran una replica de los atributos de la clase que me permitían controlar cada una de las instancias o elementos creados de dicha clase.
La idea era que en la fase de creacion del Sistema de Partículas (un array de un número determinado de Partículas) antes de instanciar la clase a cada uno de sus elementos, llamaría a una función publica que crearía la configuración aleatoria y la almacenaría en las variables globales que se enviarían al constructor de la clase cuando, en la siguiente línea, se creara un nuevo objeto de la clase. De ese modo, la clase tan sólo trabajaría con el mismo código obedeciendo a los atributos que, con sus diferentes valores, visualizarían un numero impredecible de resultados.
Aún así, no estaba completamente de acuerdo con el trabajo obtenido.
Si. Era interesante pero no cumplía todas mis expectativas en cuanto a lo que yo había deseado. Fue entonces cuando cree la Versión 2.0.
Para ello cree un array global cargado de números áureos barajados entre si y con múltiplos de dichos nummeros áureos. Lo que no todo el mundo sabe es que si una secuencia es multiplicada por un numero se obtiene la misma proporción ya que lo obtenido es una proporción equivalente a la original.
Acto seguido modifique la función de la generación de configuraciones aplicando números aleatorios de ese array. Incluso pude utilizar moduladores para agrandar o empequeñecer sus resultados.
El tercer trabajo visualizado es el objetivo que había pensado originalmente. O al menos se le acerca en gran medida.
Comentarios
Publicar un comentario