FractalPark
ClásicaMedia

Perpendicular Celtic

Un mapa cuadrático de la familia Perpendicular: pliega la parte real antes de elevar al cuadrado, vuelve a plegar el resultado real y la frontera se anuda en trenzas.

Abrir en Explorar
Fractal Perpendicular Celtic con bandas trenzadas, arcos espejados y lazos tipo porcelana
Perpendicular Celtic: bandas entrelazadas y arcos espejados, con pliegues marcados en el borde y lazos en el interior.

Resumen

Perpendicular Celtic pertenece a la familia Perpendicular de variantes del Burning Ship, junto con Perpendicular Burning Ship y Perpendicular Buffalo. Su movimiento es un doble pliegue: pliega la componente real antes de elevar al cuadrado y luego vuelve a plegar la componente real del resultado. La componente imaginaria se salta ese segundo pliegue.

Cada iteración redirige la frontera dos veces. Empiezan a aparecer formas trenzadas y entrelazadas —tan parecidas a los nudos celtas que explican el nombre. Arcos espejados, lazos tipo porcelana y bandas de tiempo de escape giran en ángulo recto en los pliegues marcados.

En algunas regiones es simétrico respecto a los ejes real e imaginario, a diferencia de algunas variantes del Burning Ship. La razón es la disposición perpendicular: los pliegues actúan de forma ortogonal, un eje a la vez en lugar de ambos al mismo tiempo.

Las matemáticas

Perpendicular Celtic iteration

Fold the real input, square it, fold the resulting real part, then add c

First fold the real input: construct z' = |xₙ| + iyₙ. Square it: (z')² = (|xₙ|² − yₙ²) + i(2·|xₙ|·yₙ). Then fold the real part of that result: zₙ₊₁ = ||xₙ|² − yₙ²| + i(2·|xₙ|·yₙ) + c.

The double fold reflects the real component twice per iteration: before the square, negative x mirrors to positive; after it, a negative resulting real part mirrors to nonnegative. The imaginary component folds only indirectly, through |xₙ| in the cross term.

Consider c = −0.5. For the Mandelbrot set: z₁ = −0.5, z₂ = −0.25, bounded. For the Perpendicular Celtic: z₁ = ||0|² − 0²| + i(2·|0|·0) − 0.5 = 0 − 0.5 = −0.5, then z₂ = ||−0.5|² − 0²| + i(2·|−0.5|·0) − 0.5 = |0.25| − 0.5 = −0.25, same orbit. But try c = 0.3i: the double fold redirects the orbit in a way that neither the Mandelbrot set nor the Burning Ship reproduces.

Historia

Perpendicular Celtic belongs to the “Perpendicular” Burning Ship family, with Perpendicular Burning Ship, Perpendicular Buffalo, and related forms. Like the others, it came from the fractal art community rather than academic research.

“Celtic” names the visual resemblance to Celtic knotwork made by the double fold. “Perpendicular” names the folds’ orthogonal placement: first on the real coordinate before squaring, then on the real part of the result.

It appears in formula browsers supporting custom iterations, including Ultra Fractal, Fractal Extreme, and Mandelbrowser. The earliest documented instances are in online fractal forums and fractal wiki pages cataloging Burning Ship variants.

Características visuales

Braided bands, mirrored arches, and porcelain-like loops gather at folds where escape-time color turns at right angles. From far out, the structure is symmetric across both axes; deeper in, fine asymmetries appear.

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

Why are absolute values used twice?

The folds act at different moments: the first absolute value folds the real input before squaring; the second folds the squared result’s real part. The real component is therefore reflected twice per iteration, changing how the orbit responds to the parameter c. Compared with the single-fold Burning Ship, the boundary becomes finer and more braided.

Is it simply a rotated Burning Ship?

No. It is related to the Burning Ship through absolute-value folds, but it places them differently in the quadratic step. The Burning Ship folds both raw coordinates before squaring. Perpendicular Celtic folds the real coordinate before squaring and then folds the result’s real part again. That two-stage order gives the orbit a different geometry and a distinct symmetry.

Referencias

Recorrido por el código fuente

  1. frm-v1:01058522dac48f2278d74a3e8a06b4c18e6d2589a3ccda69565dad37c325298d:init/0

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

  2. frm-v1:01058522dac48f2278d74a3e8a06b4c18e6d2589a3ccda69565dad37c325298d:loop/1

    En perpendicularCeltic, este nodo ejecuta real(p) = abs(real(z)).

  3. frm-v1:01058522dac48f2278d74a3e8a06b4c18e6d2589a3ccda69565dad37c325298d:loop/5

    En perpendicularCeltic, este nodo ejecuta real(z) = abs(real(z2)).

  4. frm-v1:01058522dac48f2278d74a3e8a06b4c18e6d2589a3ccda69565dad37c325298d:bailout

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

Características de sintaxis

state-flow

El flujo de estado concreto es: la elección de ismand inicializa z; p y z2 son estados temporales; después, z se reconstruye y se desplaza por c.

stopping-test

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

Experimento de parámetros

Pasos

  1. Con los demás controles del perfil fijos, ejecuta perpendicularCeltic con 48 iteraciones.
  2. Después usa las 96 iteraciones del perfil fijado y anota si hay diferencia.

Qué observar

Anota si p recibe abs(real(z)) y imag(z); z2 = p * p; z se reconstruye con abs(real(z2)) e imag(z2), entonces z = z + 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 perpendicularCeltic y explica cómo se ejecuta p recibe abs(real(z)) y imag(z); z2 = p * p; z se reconstruye con abs(real(z2)) e imag(z2), entonces z = z + c en las operaciones señaladas.

Comprobación de finalización

Tu respuesta explica las 4 anotaciones, señala p recibe abs(real(z)) y imag(z); z2 = p * p; z se reconstruye con abs(real(z2)) e imag(z2), entonces z = z + 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 → p = (0, 0) → real(p) = abs(real(z)) → z2 = p * p → real(z) = abs(real(z2)) → z = z + 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

perpendicularCeltic

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

Vista previa determinista de perpendicularCeltic

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

No hay parámetros declarados

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
627c38a8-8f4d-548f-a5a6-dd9f215adf60
Nombre canónico
perpendicularCeltic
Nombre original
perpendicularCeltic
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