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 juguetear con fractales. Algunos programadores crean software fractal por 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 importantes 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 única imagen fractal de alta resolución . Se generan imágenes tanto para simulación (modelado) como para fractales aleatorios para arte . La generación de fractales utilizada para modelar es parte del realismo en los gráficos por computadora. [2] El software de generación de fractales se puede utilizar para imitar paisajes naturales con paisajes fractales y programas de generación de paisajes . 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 , salvapantallas y generadores de fondos de pantalla . Este software presenta al usuario una gama más limitada de configuraciones y funciones, a veces basándose en una serie de variables preprogramadas. Debido a que se pueden generar imágenes complejas a partir de fórmulas simples, los fractales se utilizan 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 utiliza a menudo en dispositivos de evaluación comparativa . [5]
La generación de fractales mediante cálculo sin asistencia informática fue realizada 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 nombraran los fractales 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 de generación 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 mediante iteración . Él y los programadores que trabajaban en IBM generaron las primeras impresiones fractales rudimentarias. [7] Esto marcó el primer caso de generación de fractales mediante leyes de creación no lineales o 'fractal de escape del tiempo'. [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] La edición de octubre de 1983 de la revista Acorn User incluía una lista BBC BASIC para generar formas fractales de Susan Stepney, ahora Profesor de Ciencias de la Computación en la Universidad de York . [11] [12] Siguió esto en Acorn User de marzo de 1984 con “Copos de nieve y otros monstruos fractales”. [13] ¡Los fractales se representaron en juegos de computadora ya en 1984 con la creación de Rescue on Fractalus! . Desde principios de la década de 1980 hasta aproximadamente 1995 se formularon cientos de tipos fractales diferentes. [14]
La generación de imágenes fractales creció en popularidad a medida que se adoptó a lo largo de la década de 1990 la distribución de computadoras con un coprocesador matemático o una unidad de punto flotante en la unidad central de procesamiento. En este momento, la renderización de imágenes estándar VGA de alta resolución podía tardar 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 utilizar procesamiento multiproceso . Posteriormente, la adopción de unidades de procesamiento de gráficos en las computadoras aumentó considerablemente la velocidad de renderizado y permitió cambios en tiempo real de parámetros que antes eran imposibles debido al retraso en el renderizado. [15] La generación de fractales 3D surgió alrededor de 2009. Se compiló una lista temprana de software de generación de fractales para el libro titulado Fractals: The Patterns of Chaos de John Briggs publicado en 1992. [16] Los principales escritores en el campo incluyen a Dietmar Saupe , Heinz -Otto Peitgen y Clifford A. Pickover .
Hay dos métodos principales de generación de fractales bidimensionales. Una es aplicar un proceso iterativo a ecuaciones simples mediante recursividad generativa . [6] Los sistemas dinámicos producen una serie de valores. En el software fractal, los valores para un conjunto de puntos en el plano complejo se calculan y luego se representan como píxeles . Esta generación de objetos fractales basada en computadora es un proceso interminable. 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 utilizó 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, en ocasiones, 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 del tiempo de escape. [14] Es posible que aparezcan bandas de color en las imágenes dependiendo del método de coloración utilizado, así como de la densidad del color del degradado.
Algunos programas generan fractales geométricos autosemejantes o deterministas como la curva de Koch . Estos programas utilizan un iniciador seguido de un generador que se repite siguiendo un patrón . Estos fractales simples se originan a partir de una técnica propuesta por primera vez en 1904 por Koch. [18]
El otro método principal es con sistemas de funciones iterativas 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 recursividad permitió a los programadores crear imágenes complejas mediante una dirección simple . [20]
Los fractales tridimensionales se generan de diversas formas, incluido el uso del álgebra de cuaterniones . [21] Los fractales emergen de 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 necesaria ] El método Buddhabrot se introdujo en 1993. Los programas pueden utilizar 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 .
Se incluyen muchas características diferentes en los paquetes de software de generación de fractales. Por tanto, es posible una diversidad correspondiente en las imágenes generadas. La mayoría presenta alguna forma de selección de algoritmo , un zoom de imagen interactivo 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 más adelante. modificación o exploración. La fórmula, los parámetros, las variables y los algoritmos de coloración de 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 algebraicos es una configuración de iteración máxima. Es necesario aumentar el recuento de iteraciones si la imagen se amplía para no perder detalles finos. Limitar el máximo de iteraciones es importante cuando la potencia de procesamiento de un dispositivo es baja. Las opciones de coloración a menudo permiten que los colores sean aleatorios . Las opciones para la densidad del color son comunes porque algunos gradientes generan magnitudes enormemente variables, lo que da como resultado bandas muy repetitivas 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 otros programas de gráficos. Se pueden incluir efectos de renderizado 2D y 3D, como efecto de plasma e 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 reproducción cromática, junto con el uso de filtros y otras técnicas de manipulación de imágenes. Algunos paquetes de software fractales permiten la creación de películas a partir de una secuencia de imágenes fractales. Otros muestran el tiempo de renderizado y permiten algún tipo 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 pueden usarse para la generación de fractales. Blender contiene un modificador fractal (o aleatorio). Muchos programas independientes de generación de fractales se pueden utilizar 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 utilizar scripts en 3ds Max y Autodesk Maya . Varias interfaces basadas en web para la generación de fractales están disponibles gratuitamente, incluido Turtle Graphics Renderer. [22] Fractal Lab puede generar fractales 2D y 3D y está disponible en la web usando 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 Lindenmayer (sistemas L). [26]
Debido al efecto mariposa , generar 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 ventajoso comprender la teoría del caos . Esto incluye las características de dimensión fractal , recursividad y autosemejanza exhibidas por todos los fractales.
Hay muchos programas de generación de fractales disponibles, tanto gratuitos como comerciales. Los programas generadores de fractales notables incluyen:
La mayoría de los programas anteriores crean fractales bidimensionales, y algunos crean objetos fractales tridimensionales, como mandelbulbs y mandelboxes . Mandelbulber es un programa experimental de código abierto multiplataforma que genera imágenes fractales tridimensionales. [27] Mandelbulber es experto en producir 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 en 3D.
El GnoFract 4D de código abierto está disponible. [31] ChaosPro es un programa gratuito de creación de fractales. [32] Fraqtive es un generador fractal 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.