“Burning Ship” fractal
paulbourke.netThis 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.
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
Complex conjugation is non-holomorphic and yes, it's ugly. I still don't see why it being useful as a construction makes it a beautiful operation in analysis given that it isn't algebra.
There are holomorphic split-complex functions and they aren't uninteresting at all - they are quite beautiful and complex, relating to wave equations: https://en.wikipedia.org/wiki/Motor_variable#D-holomorphic_f...
They're not something often looked into in the fractal scene but if anyone has spare time, I'd love to see a D-holomorphic fractal analog of the Mandelbrot :-)
A holomorphic function over the split-complex numbers is the direct sum of two holomorphic functions over R. In that sense, it's trivial.
You will be very disappointed once you see the split-complex Mandelbrot set. It will be an instructive exercise for you to see why it looks the way it does.
My point about complex conjugation is illustrated in [1]. Linear algebra over the complex numbers does not limit itself to the four arithmetic operations {+,-,*,/}, but uses complex conjugation as the 5th and final operation. Look at the definition of a unitary matrix, or a self-adjoint matrix, or a normal matrix. Also, look at the definitions of the QR decomposition and SVD. Complex conjugation is everywhere in linear algebra. Consequently, matrix theory over the split-complex numbers is actually somewhat interesting.
[1] - https://en.wikipedia.org/wiki/Matrix_decomposition
To some extent, this seems like a weird discussion about mathematical aesthetics.
Linear algebra uses the Hermitian adjoint [1], sure, but how often do we graph or build functions out of it for analysis purposes? I understand that it is useful in formulating equations, relations, etc.
Linear algebra does a lot of things, ie. transpose, that aren't algebraic. I think it's important we understand what is computational versus algebraic. In that vain, linear algebra proves to be immensely useful, but we will trip ourselves if we start thinking certain aspects of it are analytic.
Anyhow, point taken, that image hardly looks interesting.
I think we agree and like you said, are just talking about aesthetics. I agree that the utility of math doesn't end at algebra or analyticity.
Here's the split-complex Mandelbrot (and Mandelbar for comparison): https://imgur.com/a/j2c7qkB
Read my other reply.
Thank you.
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
Is there a list of awesome fractals to zoom into with Xaos somewhere?
edit: Wait a minute, it's right on the same site! http://www.paulbourke.net/fractals
Great YouTube video of a deep zoom: https://www.youtube.com/watch?v=2S3lc2G3rWs
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.
I'm a noob in this kind of stuff but maybe they're using fixed-point math and dynamically redefining the scaling to always have enough precision? But then if you do use fixed point you could as well use integer big numbers. Though I imagine that using any form of big numbers, int or float, is going to hurt the performance more and more as you zoom further. You may also be able to use the rule that you can multiply or divide both sides of an equation by the same number and it will remain valid.
I’d guess you need some kind of floating point bignum to do this. You can cache/memoize repeated Evals of the same point. But I think it would have to be the same point to some pretty tight tolerance (determined by screen resolution at the time). Regardless this video clearly had a lot of compute put into it.
I ran into the same problem, gave up on it. There must be some trick to it.
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.
How is it possible that most stages have symmetries around the center of view?
The center of view coordinate was specifically chosen before the video was made. There is an infinite number of “interesting” coordinates.
I'm not sure your edit is right. No reason why there can't be a tiny but very complex thing which looks single-colour at the next 1 or 10 or 100 orders of magnitude.
But there are an infinite number of very interesting things in this fractal. If you constantly zoom in on interesting looking areas, you will find this kind of complexity with minimal need for backtracking.
I'm guessing most fractals don't have a smooth boundary anywhere, so if you know any boundary point, you can zoom in on it and it'll be "interesting."
Yeah I think you're right mike_hock.
On top of that I think that locations on (or near) the boundary, tend to stay on the boundary (and stay in the center of the image too) when zooming out.
While purely zooming (not translating) to a known boundary (or near) point, you won't ever see a move to another section-of-boundary, so if there are both 'inside' and 'outside' regions, corresponding to attractors at 0 and infinity, (the 2 main ones in these types of fractals) in the most-zoomed in state, then there will always be regions of both states contained in the final image when zoomed out (until you get to the 'top').
Maybe it would be possible for there to be formulae that don't hold to this? If the fractal had an incredibly sparse structure, say? To be honest I'm more interested in the opposite myself: Structures where the boundary (between N regions or behaviors) is so wiggly, it's almost 2 dimensional itself!. (If anyone wants to read more, I've called one particular interesting example of this: 'mandelfield' on UltraIterator)
...except when you run out of precision in an "unsophisticated" implementation as simias mentioned, then you'll eventually get smooth boundaries - which are just an artifact however.
The whole path of the video is define by a single complex number, with absurdly high precision. It’s just zooming in on that point.
Really enjoyed this, the Mandel build one on the same channel is also incredible.
I was hoping that a random Mandelbrot shows up at the end.
(Spoiler: it doesn’t)
Try this:
(in complex numbers, with Z0 = i). Plenty of Mandelbrot sets in there.Z := 1/Z - Z - C[Edit for Z0 value]
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.
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!
I really like the B/W images on this page! Very nice, somehow the greyscale renders are able to capture the mood a lot better than the traditional colored mappings on eg. Wikipedia
Related:
Burning Ship Fractal - https://news.ycombinator.com/item?id=12581569 - Sept 2016 (65 comments)
Just curious - do you have a script that finds related posts for each submission or do you rely on your memory, Dang?
Kind of a script, but not quite. Here's a pointer to past explanations: https://news.ycombinator.com/item?id=29370676.
Edit: or, to dereference all the way: https://news.ycombinator.com/item?id=26158300.
If it helps any, here's the post you made that describes it most simply without needing to go 5 or 6 levels deep of self reference to the same question: https://news.ycombinator.com/item?id=26156901
(I had to click a lot of "here's a post where I explained it before" links that had "here's a post where I explained it before" before I found this one)
I think you mean https://news.ycombinator.com/item?id=26158300 as Umberto Eco's been dead since 2016 and probably did not moderate HN while alive.
My bad, yeah, that one. Using Materialistic on Android and I guess the "copy link" choice in the "share" menu associated with a comment doesn't actually copy the comment link, despite the clipboard contents saying "Comment by [user] - [url]". Never noticed that before, so I'll submit an issue/fix if I can, and if I can't then I'll be more careful next time, thanks!
Ok, I'll add that above. Thanks!
Neat - thanks for the description!
Glad to see people showing some love to fractals !
A year ago, I built a tool to explore the Mandelbrot set fractal on the browser using vanilla JS.
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...
Here you can interactively explore the 4d mother of the Mandelbrot fractal and all its Julia fractals:
> 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.
That's not what kenshoen meant. For example for the Mandelbrot set we have a function f(z) = z^2 + c for complex z,c and each pixel in the image represents c_x,c_y in c = c_x + i*c_y and then you iterate f(0), f(f(0))... On the other hand, if you have c constant and each pixel represents z_x, z_y in z=z_x + i*z_y instead, then iterating f(z),f(f(z))... gives you a Julia set.
But you can think of f as a function of two complex arguments f(z,c)=z^2 + c and iterate it on the whole domain (two complex = four real dimensions) and then have a picture being a slice through any 2D or (even 3D, which is what parent is talking about) plane you like. In other words, the famous Mandelbrot fractal picture is a slice of f(z,c) through a plane z=0, and Julia set pictures are slices through planes c=constant but there is no reason one cannot make other pictures of f(z,c) (just be careful what you meant by iterating a function f: C^2 -> C).
The burning ship fractal in the article is the same but the function f(z,c) is a bit weirder
Visions of Chaos perhaps?
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?
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
I think Julia sets are perhaps what you are looking for.
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.
Great, now I want to play Return of the Obra Dinn again
I miss FRACTINT.
I just thought the same, but guess what: Their Website still exists (https://www.fractint.org/) and the last binary package is from April this year :)
I miss the time when I had time to tinker with FRACTINT.
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.
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)...
This reminds me deeply of the lighthouses at Burning Man in 2016: https://www.google.com/search?q=burning+man+lighthouses
It’s the Staberinde from Use of Weapons.
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".
Here it is. Split-complex burning ship using Xaos: https://imgur.com/a/tBTuUDV
This is my first time using that program. It doesn't look too bad.
Same thing, but with the dual numbers: https://imgur.com/a/kTU5ztn
A follow-up question, not easily answered using Xaos: The dual numbers can be pictured as lines in the Euclidean plane instead of points (details here: https://en.wikipedia.org/wiki/Laguerre_transformations). What would the above "dual number burning ship" look like?
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.
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
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
This Burning Ship fractal was recreated in just 140 characters of javascript, see it working here (with source code): https://www.dwitter.net/d/25882
Incredibly creepy. What if one day we found a fractal that contains a message from God?
It would be like finding the face of Jesus on a piece of toast, or the face of an alien on a satellite image of Martian surface. (Both of which were actual images that gathered some cult following in their time.)
Spend enough time applying human interpretation to non-human processes, and something will eventually come up that tickles your senses.
When I was a kid I had a sound editing application (think of something like audacity) and it had a tool to generate white noise. I was deathly afraid of generating white noise and then slowing it down because I thought that I may find hidden messages.
I think we already found that ;)
"What if one day we found a _____ that contains a message from god?" describes almost any ancient divination method. One of the things that draws us to fractals is that they show us how iteration over simple rules can built complex structures that resemble forms from the natural world.
What I'm saying is, asking this question isn't a whole lot different than cutting open the liver of an animal sacrifice and trying to divine the will of the gods from the interior structure. Or cutting the throat of a prisoner of war and reading the splatter. Or watching the flight of birds. It doesn't say much.
I play around with fractals a lot and once I fiddled with mandelbrot and found something that resembled a pig running on two legs.
I guess it would be called the running pig fractal.
This might be a message from god: don't eat pork.
I suggest you real Carl Sagan's only novel, _Contact_.
It's very good and by modern standards it's quite short.
As you read it you will discover why it's relevant to your question.
The real question is "how would we know?" To some, the very existence of fractal behavior may be the message itself - the message of infinity.
this one's message seems pro-piratical
Generate enough digits of pi and you'll find it.
Also check Library of Babel, there are some there too.
/s