FractalPark
Burning ShipFácil

Burning Ship

Un fractal cuadrático de tiempo de escape: pliega ambas coordenadas con valores absolutos antes de elevar al cuadrado y las bandas de color forman una silueta asimétrica de barco.

Abrir en Explorar
Fractal Burning Ship: casco principal oscuro, bandas de escape color llama
El Burning Ship: un casco en forma de cuña, crestas tipo llama sobre el eje real y bandas de tiempo de escape en capas.

Resumen

El Burning Ship está muy cerca del conjunto de Mandelbrot, pero un solo movimiento lo cambia todo. Antes de cada cuadrado, reemplaza la parte real y la imaginaria de z por sus valores absolutos. La órbita se pliega hacia los ejes y el mapa cuadrático pierde su simetría rotacional. El mapa ya no es analítico —no satisface las ecuaciones de Cauchy–Riemann— y aparecen esquinas duras a lo largo de su borde.

Usa la convención de visualización habitual, con el eje real horizontal y el eje imaginario invertido, y el pliegue sugiere un barco en llamas. Un casco en forma de cuña se asienta debajo de crestas tipo llama. A lo largo de la recta real hacia la izquierda, barcos más pequeños repiten el mismo perfil dentado.

La prueba habitual del radio de escape sigue funcionando: una vez que |z| supera 2, la divergencia es segura. Pero esta órbita no analítica ya no se comporta como una función complejo-analítica. Sus bandas de tiempo de escape se apilan en capas de bordes duros y fronteras rectangulares anidadas, en lugar de los gradientes radiales suaves del conjunto de Mandelbrot.

Las matemáticas

Fold, then square

z(n+1) = (absolute real z(n) + i times absolute imaginary z(n))^2 + c

Both real and imaginary components are reflected to nonnegative values, combined into a complex number, then squared. In expanded form, the real part is xₙ₊₁ = xₙ² − yₙ² + Re(c) and the imaginary part is yₙ₊₁ = 2|xₙ||yₙ| + Im(c). At every iteration, the absolute values fold the orbit back toward the axes: if xₙ or yₙ is negative, it is mirrored to positive before the squaring step. That fold produces the sharp, rectangular boundaries that set the Burning Ship apart from the Mandelbrot set’s smooth contours.

Try c = −1. For the Mandelbrot set, the orbit z₀=0, z₁=−1, z₂=0, z₃=−1, … stays bounded (period 2). For the Burning Ship, z₁ = (|0| + i|0|)² − 1 = −1, then z₂ = (|−1| + i|0|)² − 1 = 0, and the orbit settles into the same 2-cycle. Now take a point such as c = i: the fold redirects its orbit where the Mandelbrot iteration would not, producing a different escape decision.

Historia

In 1992, Michael Michelitsch and Otto E. Rössler first described and rendered the Burning Ship in a Computers & Graphics paper. Both were then researchers at the University of Tübingen (Eberhard Karls Universität Tübingen). Their paper gave the iteration and showed that the absolute-value fold produces what they called a “quasi-Julia set”: it resembles a classical Julia set, but arises from a non-analytic map.

The name “Burning Ship” comes from a close view near the real axis: a dark hull below, flame-like ridges above. Paul Bourke independently implemented the fractal in October 1993, crediting Michelitsch and Rössler; his page became an early online reference.

Because it is a non-analytic alteration of the Mandelbrot recurrence, the formula falls outside the classical complex-dynamics theory Fatou and Julia developed for analytic functions. It has since become one of the most widely explored non-analytic escape-time fractals. Buffalo, Airship, Celtic, and Perpendicular variants rearrange which coordinates are folded and when.

Características visuales

Dark hulls, flame-like masts, and chimney shapes rise through folded layers. Set beside the Mandelbrot set, the asymmetry is immediate.

Remix y ejemplos

Empieza desde el Documento canónico

Abre el mismo estado de fórmula aprobado que usa esta guía y luego cambia la vista, la coloración, las transformaciones o la animación en el Explorar interactivo.

Preguntas frecuentes

What changed from the Mandelbrot set?

Taking absolute values component by component breaks the Mandelbrot set’s rotational symmetry and makes the map non-analytic. Rounded boundaries become angled edges and nested rectangles; escape-time color settles into bands rather than smooth radial gradients.

Why is the ship sometimes upside down?

The canonical formula puts the ship upside down because absolute values turn negative imaginary coordinates positive before squaring. Most renderers, including FractalPark, reflect the image vertically for display. A screen whose Y-axis points down can add a second flip, so the final orientation depends on where the renderer applies that reflection.

Referencias

Recorrido por el código fuente

  1. frm-v1:cfef49944d8f9bd8f2ee91b2d4ab4f9b30ad66475a6f783f52bb91a7a36b1617:init/0

    En burningShip, este nodo ejecuta if ismand: z = 0; de otro modo z = pixel.

  2. frm-v1:cfef49944d8f9bd8f2ee91b2d4ab4f9b30ad66475a6f783f52bb91a7a36b1617:loop/0

    En burningShip, este nodo ejecuta a = abs(z).

  3. frm-v1:cfef49944d8f9bd8f2ee91b2d4ab4f9b30ad66475a6f783f52bb91a7a36b1617:loop/1

    En burningShip, este nodo ejecuta: si power == 2, real(z) = real(a) * real(a) - imag(a) * imag(a); imag(z) = 2 * real(a) * imag(a); después z = z + c; de otro modo z = a ^ power + c.

  4. frm-v1:cfef49944d8f9bd8f2ee91b2d4ab4f9b30ad66475a6f783f52bb91a7a36b1617:bailout

    En burningShip, este nodo ejecuta |z| <= 256.

Características de sintaxis

state-flow

El flujo de estado concreto es: la elección de ismand inicializa z; abs(z) se convierte en a; después, la rama de power reconstruye z.

stopping-test

La prueba de parada solo evalúa |z| <= 256; no asigna el estado.

Experimento de parámetros

power

Pasos

  1. Ejecuta burningShip con el perfil fijado y anota el resultado.
  2. Cambia solo power, mantén fijas las demás ranuras de ejecución y los controles del perfil, ejecuta otra vez y anota si hay diferencia.

Qué observar

Anota si a = abs(z); cuando power == 2, z se reconstruye a partir de real(a) e imag(a) antes de z = z + c, de otro modo z = a ^ power + c cambia el resultado visible o la prueba de parada |z| <= 256 frente a la línea base; la definición no garantiza una diferencia.

Ejercicio

Sigue las anotaciones de burningShip y explica cómo se ejecuta a = abs(z); cuando power == 2, z se reconstruye a partir de real(a) e imag(a) antes de z = z + c, de otro modo z = a ^ power + c en las operaciones señaladas.

Comprobación de finalización

Tu respuesta explica las 4 anotaciones, señala a = abs(z); cuando power == 2, z se reconstruye a partir de real(a) e imag(a) antes de z = z + c, de otro modo z = a ^ power + c y distingue |z| <= 256 como prueba de parada, no como asignación.

Pista

El flujo de estado ejecuta if ismand: z = 0; de otro modo z = pixel → a = abs(z) → si power == 2, z se reconstruye a partir de los componentes de a y se suma c; de otro modo z = a ^ power + c en secuencia y entrega el resultado al paso siguiente.

Fuentes y derechos

Fuente: definición de ejecución fijada y decisión de publicación.

La información de derechos sigue la decisión fijada en la unidad en inglés.

Registro de la fórmula

burningShip

Esta implementación canónica de FractalPark está publicada y se puede ejecutar.

Vista previa determinista de burningShip

Código fuente canónico

Lenguaje
frm-like/1
Biblioteca estándar
1
Modo del perfil
parameter-plane
Centro del perfil
-0.5, 0
Zoom del perfil
0.4
Iteraciones del perfil
96
Evidencia del perfil
mechanical

Parámetros

  • power: real

Código fuente canónico

Esta revisión canónica verificada es de solo lectura. Remix crea una bifurcación editable independiente.

Cargando código canónico…

Fuente e implementación

ID de fórmula
2ab193f5-4919-5e5c-a9fb-c1a0e3f5eb02
Nombre canónico
burningShip
Nombre original
burningShip
Fuente histórica
FractalPark
Implementación actual
Propiedad del proyecto

Esta es una implementación propia del proyecto FractalPark. El archivo enlazado es la Definition canónica fijada.

¿Problemas de derechos o atribución?

Envía el ID de la fórmula y las pruebas. El mantenedor puede retener o retirar la implementación mientras revisa la reclamación. contact@fractalpark.com