top | item 32210140

“Burning Ship” fractal

399 points| daqnal | 3 years ago |paulbourke.net | reply

72 comments

order
[+] goldenkey|3 years ago|reply
This fractal is non-holomorphic which makes it kind of a dumpster fire..or a burning ship I guess... The easiest layman's definition of holomorphic is any function or operations on complex numbers that doesn't peek at the real and imaginary parts of the complex number. In algebra, there is no combination of algebraic operations [1] that can do so. But on computers, we have Re(z) and Im(z), which are easy to calculate since the complex number is simply stored as two parts, and it just pulls one of them out.

When you violate this sacred notion, of treating a complex number as a singular entity, indivisible, the operations or functions you get, no longer have nice properties, like being analytic [2]. You are no longer doing algebra, you have gone into the realm of chaotics over R^2 with an equivalence relation through rotations, which is a far different beast.

That's why other fractals that treat complex numbers as first class citizens, singular entities, and don't use hacks like Re or Im, are much prettier and have less branch cuts.

[1] https://en.wikipedia.org/wiki/Algebraic_operation

[2] https://en.wikipedia.org/wiki/Analytic_function

[+] ogogmad|3 years ago|reply
If you replace the complex numbers with split-complex numbers, then the set of holomorphic functions becomes uninteresting. You therefore need to use * (meaning the split-complex analogue of complex conjugation) to get anything interesting. It follows that the obvious analogue of complex analysis over the split-complex numbers is pretty sterile, but I think that the split-complex numbers themselves remain interesting.

The operation * (meaning conjugation) isn't totally ugly. The reason for that is because it shows up in matrix theory. A lot of families of matrices (like the unitary and the self-adjoint matrices) are defined using *. Therefore, while the function theory of the split-complex numbers might be boring, their matrix theory is still somewhat interesting because of its dependence on *.

The relevance to generating fractals using the split-complex numbers is that you need to use non-holomorphic functions to get interesting results. Some results here: https://news.ycombinator.com/item?id=32211495

[+] azalemeth|3 years ago|reply
Xaos [1] is great for exploring fractals and the Burning Ship is no exception -- just define a user formula of

    powi(rabs(z)+i*rabs(im(z)),2)+c
and set c to zero (or don't!). The views in the article are mirrored compared to xaos and are in the left area close to the axis. Some good views and palettes to explore interactively are (my taste!) around:

    ;Position file automatically generated by XaoS 4.2.1
    ;  - a realtime interactive fractal zoomer
    ;Use xaos -loadpos <filename> to display it
    (initstate)
    (filter 'anti #t)
    (palette 2 73629707 0)
    (formula 'user)
    (usrform "powi(rabs(z)+i*rabs(im(z)),2)+c")
    (usrformInit "0")
    (maxiter 5000)
    (bailout 5)
    (view -1.6924 -0.02769 0.1137 0.1137)
Note that this will also serve as a bit of stress test for your cpu ;-) (a rendered result is here: [2])

[1] https://github.com/xaos-project/XaoS [2] https://i.imgur.com/mJ0uZG7.png

[+] rubatuga|3 years ago|reply
Great YouTube video of a deep zoom: https://www.youtube.com/watch?v=2S3lc2G3rWs
[+] simias|3 years ago|reply
What's the trick to implement a zoom like this in software? I remember many years ago implementing a trivial program to display the mandelbrot fractal, but as you zoomed in you quickly ran out of precision even if you used 64bit double floats.

Is it just using "bignums" behind the scenes or is there a trick to "reset" the exponent due to the fractal nature of the display? I always wondered if, thanks to the self-similar nature of fractals, one could convert a set of coordinates to another at a different scale and yield the same results.

My intuition tells me that it wouldn't work for all fractals though, and probably not for Mandelbrot because while it's self-similar it never seems to look exactly the same at different scales.

[+] rjh29|3 years ago|reply
This is crazy. How do they pilot the zooming of the fractal? It must be carefully planned and programmed in to generate the video.

edit: I guess if they find an interesting thing very zoomed-in, then zoom out from that, the whole video will be interesting.

[+] andy_ppp|3 years ago|reply
Really enjoyed this, the Mandel build one on the same channel is also incredible.
[+] solarist|3 years ago|reply
I was hoping that a random Mandelbrot shows up at the end.

(Spoiler: it doesn’t)

[+] BeetleB|3 years ago|reply
Glad to see Paul Bourke is still active. I encountered his site almost 20 years ago and spent many hours on it. Fantastic stuff. Glad to see he still maintains a minimalist site.
[+] cmroanirgo|3 years ago|reply
Completely agree. His public work helped me with some 3d game development back in the mid 90's, mainly with geometry and 3d projections. Back then, in the pre-google era there wasn't a lot of places on the web to get good information, but Paul Bourke was there. He & his sites seem timeless somehow. Great to see it on HN!
[+] kenshoen|3 years ago|reply
These kind of fractal have actually 4 dimentional structure since c_x and c_y can also be parameters. I'd love to see their slice as 3D, but have yet to find a good way to visualize them...

https://i.imgur.com/JRfLy6R.mp4

[+] messe|3 years ago|reply
> These kind of fractal have actually 4 dimentional structure since c_x and c_y can also be parameters

They're not parameters in that sense.

The fractal is computed by taking each point on the plane as coordinates (c_x, c_y), and then iteratively applying the recursion relation. Then, with luminosity depending on how quickly that sequence escapes to infinity, we color in that point (c_x, c_y) in our image.

[+] ogogmad|3 years ago|reply
Question: Do fractals have projective duals? In the projective plane RP^2, the dual of a point is a line, and vice versa. Do fractals like "Burning Ship" and "Mandelbrot" have projective duals, where each point in the set is replaced with a line? What would these look like?
[+] ronald_raygun|3 years ago|reply
Mmm. I don't think that's a super useful way to think about it. The way I've always conceptualized it was that if you look at fractals, they are determined by some complex polynomial. So you could look at the space of polynomials, and each point in there , would be its own fractal. For the right space of polys thats a Hilbert space, and so by Riesz representation theorem it would have a dual space, but I dont think thats super useful here
[+] Jaxan|3 years ago|reply
I think Julia sets are perhaps what you are looking for.
[+] Tao3300|3 years ago|reply
I used to spend a ton of time in the Xaos program poking around the Burning Ship. You could middle-click and it would make a Julia set based on the point you clicked, and you could find some amazing stuff in the rigging of the ship.
[+] m12k|3 years ago|reply
Great, now I want to play Return of the Obra Dinn again
[+] vcdimension|3 years ago|reply
This video is amazing. Its one of my favourites. "Inside the burning ship": https://youtu.be/yaPTk-DqT1g You can see some thought has gone into not just the mathematics and rendering process, but also the artistic direction (lighting, choice of flight path) and music.
[+] rob74|3 years ago|reply
Burning ship? Personally it reminds me more of a pair of slightly twisted gothic style church towers (Notre Dame de Paris anyone?), or the more slender version, of some kind of fantastic gothic style bridge towers (think Golden Gate Bridge)...
[+] davedx|3 years ago|reply
It’s the Staberinde from Use of Weapons.
[+] ogogmad|3 years ago|reply
I've experimented with the "Mandelbar" (sometimes called the "tricorn") fractal over the split-complex numbers: https://imgur.com/PkzY7B6

The result isn't completely trivial, but isn't particularly impressive either.

Anybody want to try Burning Ship over the split-complex numbers? It looks like you only need to replace the complex "i" with the split-complex "j".

[+] wruza|3 years ago|reply
Oh, fractals thread and I have a couple of questions. Are fractal “features” enumerable? Finite?

By feature I mean in fractal zoom videos they pick some zoom path and it generates repeating shapes again and again until they switch to different path. How many repeating patterns there are?

Do fractals exist with an infinite number of features?

Do fractals exist where features cannot repeat in future zoom levels? Or at least that you barely could predict where a repeating part could be. Sort of a chaotic fractal.

[+] ronald_raygun|3 years ago|reply
Oh they fractal features are definitely infinite. I worked on a genetic algo a to breed fractals together a number of years ago, and one thing I noticed was that the highest non-zero poly power would determine the shape of the fractal - so a c^3 fractal would have "three petals", a c^4 would have "four petals". So clearly these things can have infinite features

https://github.com/zoso95/genetic-algorithm-fractals

[+] rep_movsd|3 years ago|reply
I made a generative NFT based on this

I manually searched the space by zooming and panning into various areas from 2x all the way to about 10^13 zoom ans rendered them in high intensity color schemes

https://imgur.com/gallery/XQR8tNw