El software de generación de fractales es cualquier tipo de software de gráficos que genera imágenes de fractales . Hay muchos programas de generación de fractales disponibles, tanto gratuitos como comerciales. Hay aplicaciones móviles disponibles para jugar o experimentar con fractales. Algunos programadores crean software de fractales para sí mismos debido a la novedad y al desafío de comprender las matemáticas relacionadas. La generación de fractales ha dado lugar a algunos problemas muy grandes para las matemáticas puras . [1]
El software de generación de fractales crea belleza matemática a través de la visualización . Las computadoras modernas pueden tardar segundos o minutos en completar una sola imagen fractal de alta resolución . Las imágenes se generan tanto para simulación (modelado) como para fractales aleatorios para arte . La generación de fractales utilizada para modelado es parte del realismo en gráficos de computadora. [2] El software de generación de fractales se puede utilizar para imitar paisajes naturales con programas de generación de paisajes y escenarios fractales . Las imágenes fractales se pueden utilizar para introducir irregularidades en un entorno generado por computadora que de otro modo sería estéril. [3]
Los fractales se generan en software de visualización de música , protectores de pantalla y generadores de fondos de pantalla . Este software presenta al usuario un rango más limitado de configuraciones y funciones, a veces dependiendo de una serie de variables preprogramadas. Debido a que se pueden generar imágenes complejas a partir de fórmulas simples, los fractales se usan a menudo en la escena de demostración . [4] La generación de fractales como el conjunto de Mandelbrot requiere mucho tiempo y muchos cálculos, por lo que se usa a menudo en dispositivos de evaluación comparativa . [5]
La generación de fractales mediante cálculo sin ayuda de ordenador fue emprendida por el matemático alemán Georg Cantor en 1883 para crear el conjunto de Cantor . [6] A lo largo de los años siguientes, los matemáticos han postulado la existencia de numerosos fractales. Algunos fueron concebidos antes de que se les diera nombre en 1975, por ejemplo, el árbol de Pitágoras del profesor de matemáticas holandés Albert E. Bosman en 1942.
El desarrollo del primer software generador de fractales se originó en la búsqueda de Benoit Mandelbrot de una función generalizada para una clase de formas conocidas como conjuntos de Julia . En 1979, Mandelbrot descubrió que se podía crear una imagen del plano complejo por iteración . Él y los programadores que trabajaban en IBM generaron las primeras impresiones fractales rudimentarias. [7] Esto marcó el primer ejemplo de la generación de fractales por leyes de creaciones no lineales o 'fractal de tiempo de escape'. [8] [9] Loren Carpenter creó una película en color de dos minutos llamada Vol Libre para su presentación en SIGGRAPH en 1980. [10] El número de octubre de 1983 de la revista Acorn User contenía una lista de BBC BASIC para generar formas fractales de Susan Stepney, ahora profesora de Ciencias de la Computación en la Universidad de York . [11] [12] Continuó esto en el Acorn User de marzo de 1984 con "Copos de nieve y otros monstruos fractales". [13] Los fractales se utilizaron en los juegos de ordenador en 1984, con la creación de Rescue en Fractalus!. Desde principios de los años 1980 hasta aproximadamente 1995, se formularon cientos de tipos de fractales diferentes. [14]
La generación de imágenes fractales creció en popularidad a medida que se adoptaron la distribución de computadoras con un coprocesador matemático o una unidad de punto flotante en la unidad central de procesamiento durante la década de 1990. En ese momento, la renderización de imágenes estándar VGA de alta resolución podía llevar muchas horas. [ cita requerida ] Los algoritmos de generación de fractales muestran una paralelización extrema . El software de generación de fractales se reescribió para hacer uso del procesamiento multiproceso . Posteriormente, la adopción de unidades de procesamiento gráfico en las computadoras aumentó en gran medida la velocidad de renderización y permitió cambios en tiempo real de parámetros que antes eran imposibles debido al retraso de renderización. [15] La generación de fractales en 3D surgió alrededor de 2009. Una lista temprana de software de generación de fractales fue compilada para el libro titulado Fractals: The Patterns of Chaos de John Briggs publicado en 1992. [16] Los escritores líderes en el campo incluyen a Dietmar Saupe , Heinz-Otto Peitgen y Clifford A. Pickover .
Existen dos métodos principales de generación de fractales bidimensionales. Uno es aplicar un proceso iterativo a ecuaciones simples mediante recursión generativa . [6] Los sistemas dinámicos producen una serie de valores. En el software fractal, se calculan los valores de un conjunto de puntos en el plano complejo y luego se representan como píxeles . Esta generación de objetos fractales basada en computadora es un proceso sin fin. En teoría, las imágenes se pueden calcular infinitamente, pero en la práctica se aproximan a un cierto nivel de detalle . [17] Mandelbrot usó fórmulas cuadráticas descritas por el matemático francés Gaston Julia . [14] La dimensión fractal máxima que se puede producir varía según el tipo y, a veces, está limitada según el método implementado. Existen numerosos métodos de coloración que se pueden aplicar. Uno de los primeros fue el algoritmo de tiempo de escape. [14] Las bandas de color pueden aparecer en las imágenes según el método de coloración utilizado, así como la densidad del color del gradiente.
Algunos programas generan fractales geométricos autosimilares o deterministas, como la curva de Koch . Estos programas utilizan un iniciador seguido de un generador que se repite en un patrón . Estos fractales simples se originaron a partir de una técnica propuesta por primera vez en 1904 por Koch. [18]
El otro método principal es el de los sistemas de funciones iteradas, que consisten en una serie de transformaciones afines . [19] En el primer método, cada píxel de una imagen fractal se evalúa según una función y luego se colorea, antes de aplicar el mismo proceso al siguiente píxel. El primer método representa el enfoque estocástico clásico, mientras que el segundo implementa un modelo fractal lineal. [3] El uso de la recursión permitió a los programadores crear imágenes complejas a través de una dirección simple . [20]
Los fractales tridimensionales se generan de diversas maneras, incluso mediante el uso del álgebra de cuaterniones . [21] Los fractales emergen de las simulaciones de modelado de dinámica de fluidos como turbulencia cuando se utiliza la advección de contorno para estudiar la mezcla caótica . [ cita requerida ] El método Buddhabrot se introdujo en 1993. Los programas pueden usar mapas de altura fractales para generar terreno. Los fractales se han generado en computadoras utilizando los siguientes métodos: esponja de Menger , variedad hipercompleja , árbol browniano , movimiento browniano , descomposición , sistemas L , fractales de Lyapunov , fractales de Newton , tallos de Pickover y atractores extraños .
Los paquetes de software de generación de fractales incluyen muchas características diferentes, por lo que es posible obtener una diversidad correspondiente de imágenes. La mayoría incluye algún tipo de selección de algoritmos , un zoom interactivo de imágenes y la capacidad de guardar archivos en formato JPEG , TIFF o PNG , así como la capacidad de guardar archivos de parámetros, lo que permite al usuario volver fácilmente a imágenes creadas previamente para modificarlas o explorarlas más tarde. La fórmula, los parámetros, las variables y los algoritmos de coloración de las imágenes fractales se pueden intercambiar entre usuarios del mismo programa. No existe un formato de archivo fractal estándar adoptado universalmente .
Una característica de la mayoría de los programas fractales de tiempo de escape o fractales basados en álgebra es una configuración de iteración máxima. Se requiere aumentar el recuento de iteraciones si se amplía la imagen para que no se pierdan los detalles finos. Limitar las iteraciones máximas es importante cuando la potencia de procesamiento de un dispositivo es baja. Las opciones de coloración a menudo permiten aleatorizar los colores . Las opciones para la densidad del color son comunes porque algunos gradientes generan magnitudes muy variables que dan como resultado bandas repetitivas intensas o grandes áreas del mismo color. Debido a la conveniente capacidad de agregar efectos de posprocesamiento , se han incluido funciones de composición alfa y capas que se encuentran en otro software de gráficos. Se pueden incluir efectos de renderizado tanto 2D como 3D, como el efecto de plasma y la iluminación . Muchos paquetes también permiten al usuario ingresar su propia fórmula, para permitir un mayor control de los fractales, así como una opción de renderizado de color, junto con el uso de filtros y otras técnicas de manipulación de imágenes. Algunos paquetes de software fractal permiten la creación de películas a partir de una secuencia de imágenes fractales. Otros muestran el tiempo de renderizado y permiten alguna forma de ciclo de color y herramientas de creación de paletas de colores .
El software de gráficos estándar (como GIMP ) contiene filtros o complementos que se pueden usar para la generación de fractales. Blender contiene un modificador fractal (o aleatorio). Muchos programas independientes de generación de fractales se pueden usar junto con otros programas de gráficos (como Photoshop ) para crear imágenes más complejas. POV-Ray es un programa de trazado de rayos que genera imágenes a partir de una descripción de escena basada en texto que puede generar fractales. Se pueden usar scripts en 3ds Max y Autodesk Maya . Hay varias interfaces basadas en web para la generación de fractales disponibles de forma gratuita, incluido Turtle Graphics Renderer. [22] Fractal Lab puede generar fractales tanto 2D como 3D y está disponible en la web mediante WebGL . [23] JWildfire es un generador de llamas fractales de código abierto basado en Java . [24] Mandelbrot Fractal es un explorador de fractales escrito en JavaScript . [25] Fractal Grower es un software escrito en Java para generar fractales de sustitución de Lindenmayer (sistemas L). [26]
Debido al efecto mariposa , la generación de fractales puede resultar difícil de dominar. Un pequeño cambio en una sola variable puede tener un efecto impredecible . Algunos programas presentan al usuario una curva de aprendizaje pronunciada y es conveniente comprender la teoría del caos . Esto incluye las características de dimensión fractal , recursión y autosimilitud que presentan todos los fractales.
Hay muchos programas de generación de fractales disponibles, tanto gratuitos como comerciales. Entre los programas de generación de fractales más destacados se incluyen:
La mayoría de los programas anteriores crean fractales bidimensionales, y unos pocos crean objetos fractales tridimensionales, como mandelbulbs y mandelboxes . Mandelbulber es un programa experimental, multiplataforma y de código abierto que genera imágenes fractales tridimensionales. [27] Mandelbulber es experto en la producción de animaciones 3D . [28] Mandelbulb 3D es un software gratuito para crear imágenes 3D que presentan muchos efectos que se encuentran en entornos de renderizado 3D. [29] Incendia es un programa fractal 3D que utiliza sistemas de funciones iteradas (IFS) para la generación de fractales. [30] Visions of Chaos, Boxplorer y Fragmentarium también renderizan imágenes 3D.
Está disponible el programa de código abierto GnoFract 4D. [31] ChaosPro es un programa gratuito de creación de fractales. [32] Fraqtive es un generador de fractales multiplataforma de código abierto. [33] MandelX es un programa gratuito para renderizar imágenes fractales en Windows. [34] WinCIG, Chaoscope, Tierazon, Fractal Forge y Malsys también generan imágenes fractales.