FractalPark
Burning ShipFacile

Burning Ship

Une fractale quadratique à temps de fuite : plie les deux coordonnées avec des valeurs absolues avant la mise au carré, et les bandes de couleur dessinent un contour asymétrique de navire.

Ouvrir dans l'Explorateur
Fractale Burning Ship : coque principale sombre, bandes de fuite couleur flamme
Le Burning Ship : une coque en forme de coin, des crêtes façon flammes au-dessus de l'axe réel et des bandes de temps de fuite en couches.

Vue d'ensemble

Le Burning Ship est proche de l'ensemble de Mandelbrot, mais un seul geste change tout. Avant chaque mise au carré, il remplace les parties réelle et imaginaire de z par leurs valeurs absolues. L'orbite se replie vers les axes et l'application quadratique perd sa symétrie de rotation. L'application n'est plus analytique — elle ne satisfait pas les équations de Cauchy–Riemann — et des coins durs apparaissent le long de son bord.

Adopte la convention d'affichage habituelle, axe réel horizontal et axe imaginaire inversé, et le pli évoque un navire en feu. Une coque en forme de coin repose sous des crêtes semblables à des flammes. Le long de l'axe réel, à gauche, de plus petits navires répètent le même profil dentelé.

Le test habituel du rayon de fuite fonctionne toujours : dès que |z| dépasse 2, la divergence est certaine. Pourtant, cette orbite non analytique ne se comporte plus comme une fonction complexe-analytique. Ses bandes de temps de fuite s'empilent en couches aux arêtes franches et en frontières rectangulaires imbriquées, au lieu des dégradés radiaux lisses de l'ensemble de Mandelbrot.

Les mathématiques

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.

Histoire

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.

Caractéristiques visuelles

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

Remix et exemples

Pars du Document canonique

Ouvre le même état de formule approuvé utilisé par ce guide, puis modifie la vue, la colorisation, les transformations ou l'animation dans l'Explorateur interactif.

Questions fréquentes

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.

Références

Parcours du code source

  1. frm-v1:cfef49944d8f9bd8f2ee91b2d4ab4f9b30ad66475a6f783f52bb91a7a36b1617:init/0

    Dans burningShip, ce nœud exécute if ismand: z = 0; sinon z = pixel.

  2. frm-v1:cfef49944d8f9bd8f2ee91b2d4ab4f9b30ad66475a6f783f52bb91a7a36b1617:loop/0

    Dans burningShip, ce nœud exécute a = abs(z).

  3. frm-v1:cfef49944d8f9bd8f2ee91b2d4ab4f9b30ad66475a6f783f52bb91a7a36b1617:loop/1

    Dans burningShip, ce nœud exécute : si power == 2, real(z) = real(a) * real(a) - imag(a) * imag(a) ; imag(z) = 2 * real(a) * imag(a) ; puis z = z + c ; sinon z = a ^ power + c.

  4. frm-v1:cfef49944d8f9bd8f2ee91b2d4ab4f9b30ad66475a6f783f52bb91a7a36b1617:bailout

    Dans burningShip, ce nœud exécute |z| <= 256.

Caractéristiques syntaxiques

state-flow

Le flux d’état concret est : le choix de ismand initialise z ; abs(z) devient a ; puis la branche de power reconstruit z.

stopping-test

Le test d’arrêt évalue seulement |z| <= 256 ; il n’affecte pas l’état.

Expérience sur les paramètres

power

Étapes

  1. Exécute burningShip avec le profil épinglé et note le résultat.
  2. Change seulement power, garde les autres slots d’exécution et contrôles du profil fixes, exécute à nouveau et note s’il y a une différence.

Ce qu’il faut observer

Note si a = abs(z); quand power == 2, z est reconstruit à partir de real(a) et imag(a) avant z = z + c, sinon z = a ^ power + c modifie le résultat visible ou le test d’arrêt |z| <= 256 par rapport à la référence ; la définition ne garantit pas de différence.

Exercice

Suis les annotations de burningShip et explique comment a = abs(z); quand power == 2, z est reconstruit à partir de real(a) et imag(a) avant z = z + c, sinon z = a ^ power + c s’exécute dans les opérations indiquées.

Vérification de réalisation

Ta réponse explique les 4 annotations, identifie a = abs(z); quand power == 2, z est reconstruit à partir de real(a) et imag(a) avant z = z + c, sinon z = a ^ power + c et distingue |z| <= 256 comme test d’arrêt plutôt que comme affectation.

Indice

Le flux d’état exécute successivement if ismand: z = 0; sinon z = pixel → a = abs(z) → si power == 2, z est reconstruit à partir des composantes de a et c est ajouté; sinon z = a ^ power + c et transmet le résultat à l’étape suivante.

Sources et droits

Source : définition d’exécution épinglée et décision de publication.

Les informations de droits suivent la décision épinglée dans l’unité anglaise.

Fiche de formule

burningShip

Cette implémentation canonique de FractalPark est publiée et exécutable.

Aperçu déterministe de burningShip

Source canonique

Langage
frm-like/1
Bibliothèque standard
1
Mode du profil
parameter-plane
Centre du profil
-0.5, 0
Zoom du profil
0.4
Itérations du profil
96
Niveau de preuve du profil
mechanical

Paramètres

  • power: real

Source canonique

Cette révision canonique vérifiée est en lecture seule. Remix crée une copie modifiable distincte.

Chargement de la source canonique…

Source et implémentation

ID de formule
2ab193f5-4919-5e5c-a9fb-c1a0e3f5eb02
Nom canonique
burningShip
Nom d'origine
burningShip
Source historique
FractalPark
Implémentation actuelle
Propriété du projet

Il s'agit d'une implémentation propre au projet FractalPark. Le fichier lié est la Definition canonique épinglée.

Un problème de droits ou d'attribution ?

Envoyez l'ID de la formule et les justificatifs. Le mainteneur peut suspendre ou retirer l'implémentation pendant l'examen. contact@fractalpark.com