Hacker News new | past | comments | ask | show | jobs | submit login
Burning Ship Fractal (wikipedia.org)
252 points by dedalus on Sept 26, 2016 | hide | past | favorite | 65 comments



7 minute zoom of the fractal. Incredible level of detail and that final mirrored inverted fractal at 6'38 took me by surprise.

https://www.youtube.com/watch?v=CD9yNFmb2FE

Are there any good fractal explorers in VR?


Not quite VR, but there exists someone's personal hobby 3D fractal viewer that has an absolutely bananas level of polish:

http://sub.blue/fractal-lab

I highly recommend taking the time to watch his video.


That is amazing. Thanks for sharing.


Was Fractal Lab ever made available to the public?


Author says no at the bottom of the video... there's something similar (and more basic) here:

http://hirnsohle.de/test/fractalLab/

I always find it a pity when I see something as inspiring as this that's not available to use (even without any support), but I guess that's the author's prerogative... (sadly!)


I don't understand how someone could spend so much time on an obviously excellent product and not want to show it off to the world.


Apparently the author was involved with an iOS app, but from this description it sounds like it's not the same codebase: http://fract.al/team


I believe that doing this for procedural generated games along the lines of No Man's Sky is the true future of where we can go for randomly generated worlds. Since a lot of planetary formation patterns we observe here on earth follow fractal-esque patterns, this would be a great application for a powerful generator like this one.


The risk with procedurally generated stuff is that it can feel adequate but soulless to the game player.

There can be a hybrid approach where, at development time, a bunch of procedurally generated assets are cranked out, and then a human artist hand-picks the best specimen and uses it as a starting point for a manually created asset.


Fractals and 3D are an interesting problem: http://www.skytopia.com/project/fractal/mandelbulb.html

That page is older, but based on the performance at the time I'm still not sure you could render them in sufficient real-time to make VR a useful thing.

(I leap to the assumption you're referring to 3D fractals because merely adding VR to a 2D fractal viewer does not seem like a useful thing to do.)


3d of a 2d fractal is one of the things the group that made the video from the original post are trying to achieve:

http://www.hpdz.net/TechInfo/CameraTilt.htm

you can imagine the compelxity of introducing perspective into the already computationally heavy fractal calculations


I'm sure they picked the point they're zooming in on intentionally, but I thought it was interesting when it started being radially symmetrical.

I wonder how they chose the point; trial and error, or was there some mathematical way of guaranteeing that there is something "interesting" at that point?


As long as you keep to the "edge" of the set, I think you're guaranteed to find interesting things wherever you go. I presume this zoom was guided, the exact zoom position manually adjusted every once in a while based on what comes up.


Or they recorded it zooming out, and reversed the recording.


But they still had to find an interesting point from which to zoom out, right?


Yes, but I imagine fractal heads are like us CA heads, spending hours toying and exploring the virtual spaces we've built.


CA?


Cellular automata,. Things like Conway's game of life, rule 110 and a lot others


From the video's description:

"The deepest and first ever HD deep-zoom animation into the Burning Ship fractal. This is one of the creepiest and yet stunningly gorgeous fractals ever."

I agree about the creepy factor. I've seen many a fractal video, but this one... is different. Maybe it's the music, but it really did feel mysterious and... creepy.

Thanks for posting the link.


That is insane. How is it possible to zoom in that far? Looks like it would have to use some kind of big number library and then parallelize the heck out of it.

I like how the rest of the page seemed to zoom out when I glanced outside the video after watching a few minutes or so.


A fairly recent technique is to use perturbation theory to approximate the solution to the complex equation for points near a decently chosen starting point. The approximation massively reduces the amount of slow big decimal arithmetic needed for deep zooms, while retaining accuracy. Without getting into the actual math being perturbation theory, http://superfractalthing.co.nf/sft_maths.pdf is a good start for just dumping some calculations into your fractal viewer to get good results.


I think this is a youtube upload of one of the animations from http://www.hpdz.net/ -- there's a ton others on there too.

They go into the techniques a bit on the site under the "technical" section.


I remember seeing seemingly endless fractal zoom animations like these as long as 20 years ago. Basically, you're not calculating the entire original field of view to anything near the final level of depth. At any given frame, you're essentially doing the calculations only for what's in the current frame and only to the level of detail to support the current pixel count.


Well, yeah, but the mantissa alone on your numbers is going to get ridiculously long. That's going to take a bite out of your CPU even just for the ~1000x1000 pixels in the frame


> Well, yeah, but the mantissa alone on your numbers is going to get ridiculously long. That's going to take a bite out of your CPU even just for the ~1000x1000 pixels in the frame

Utterly devastate the computational ability of your CPU. I remember setting up my and k6 300mhz to compute stuff sometimes for days to get awesome fractal deep zooms like this. The computation is embarrassingly parallel but no hardware handles numbers that precise with any reasonable speed. Something like 1024 bit floating point in fractint back in the day. I'd love to see an efficient GPU implementation of that kind of stuff


i always lament these fractal visualations lack a real time coordinate system

even just bounds at the edges of the visualised space would help to illustrate the phenomenon.. also, the utilised color key would further illuminate


Now that we are 5 years in future, it would be cool if someone re-rendered it in higher resolution, 60 fps and with better antialiasing.


Fractals can be drawn by surprisingly small amounts of code. For example, this mandelbrot fractal is implemented in 122 characters of JavaScript: https://www.dwitter.net/d/123

I wouldn't be surprised if the burning ship fractal could be coded on dwitter (i.e. with 140 characters or less) as well


When working on an SoC over 5 years ago, we'd have it display the company logo on screen upon boot. While not necessary for the test, it was really useful to see if the system reached that boot stage.

As an afternoon exercise, I wrote a Mandelbrot draw function (my first fractal display code!). Then I realized it was both faster and used less code and runtime memory than the image display stuff, so I replaced it in my environment. Other people were amused by it, so it went in public repository.

A couple weeks later, someone removed it to reinstate the image display. I guess having the company logo for internal-only code was more important to someone :(

I don't work there anymore.


Even better if your company's logo is a fractal:

https://en.wikipedia.org/wiki/File:American_Megatrends_Logo....

If I remember correctly, early AMIBIOS did generate that logo procedurally using a short piece of code.


Just need to add a Math.abs: https://www.dwitter.net/d/457


Nice, but you don't need Math.abs to stay within the 140 chars limit:

  t?i++:i=0;for(j=1080;j--;){a=b=0;k=35;for(;k--&&a*a+b*b<4;)c=a*a-b*b+i/540-2,b=2*(a*b<0?-a*b:a*b)+j/540-1,a=c;x.fillRect(i,j,1,S(k/9))}


I started working on a web based renderer for the burning ship fractal a little while ago. It's far from perfect, I still consider it a WIP, but it works well enough to play around with: http://stevenmcdonald.github.io/fractals/burning_ship/


I'm always fascinated by how simple functions like this generate complex behavior when iterated.


The color of each point is the number of iterations it takes to "escape" past the (-2-2i, 2+2i) barrier. So if you start at a point and iterate 3 times before escaping, it gets one color. If you start at a different point and have to iterate 4 times, then it gets the next color. All the colored pixels are outside the Mandlebrot set, and all the black pixels are inside (or you haven't done enough iterations to know).


For the Mandelbrot set, I'm familiar with the proof that says that if |z_n| > 2, then 0 iterates to infinity regardless of c. The proof depends on it being an analytic function. How do you know that's also true for this equation?


Interesting point! I don't know if it's really true, but that's how the fractal images seem to be generated.


I agree. It's very strange that extremely simple, very fundamental functions lead to such stochastic-looking nonsymnetric behavior. Where does all that "entropy" come from? It's certainly not hidden in any big numbers in the fractal definition.


"Where does all that 'entropy' come from?"

Your scare quote suggests you may already know this, but for the benefit of others, the answer is that there isn't any. Fractals may look visually complicated, but their information content is fully captured by the routines used to generate them, which include the formula and the coloring system being used.

This is one of the ways in which "information" is a highly counter-intuitive quantity for people. Very small numbers of bits in a given encoding scheme can produce incredibly complicated pictures, but there's still no more information that what was put in to start with. Simply looking at something and going "Yup, that's complicated" does not mean it has a lot of information in it.


Yes, that is what I mean. Why is there a disconnect between the complexity of the compact description and the naive description? Why are simple expressions not simple in all "natural" representations?

This is not addressable with the contrived example of "you can create an encoding scheme that reduces an arbitrarily complex description to an arbitrarily short identifier". After all, this is not a constructed compression scheme. Why does nature expand simple expressions to these particular complicated forms?


> Why are simple expressions not simple in all "natural" representations?

Another example might be the primes, which have a very simple description and very subtle structure in their distribution.


I don't really agree that the primes “have a very simple definition” in that the notion of ‘primeness’ is one of satisfiability and no constructive algorithm is known to exist.


I'm not sure what you mean by not having a constructive algorithm to produce primes. The Sieve of Eratosthenes will output any given prime, with the primes coming out in order, given enough time. There may not be an efficient algorithm, but for most definitions of "information" that won't matter. The sequence of all primes is both so richly structured we've probably only scratched the surface and almost entirely bereft of information.


Yup you're right and I'm wrong.


I'm not sure what you're getting at here. Is it not relevant that there is a simple algorithm to enumerate the primes, or, even more so, determine whether a given value is prime?


Of course it's relevant. qubex is just confused.


> This is not addressable with the contrived example of "you can create an encoding scheme that reduces an arbitrarily complex description to an arbitrarily short identifier". After all, this is not a constructed compression scheme. Why does nature expand simple expressions to these particular complicated forms?

If not these particular forms then it would be some others. That fractals exist is pretty-much the fact that pseudo-random number generators exist: you plug in a small amount of input and it generates noise. The fact that it looks like something is more a sign of the overactive human facility for pattern recognition than anything else. (Also I suspect it would look a lot less like a burning ship if we hadn't been told it was a burning ship)


> Why are simple expressions not simple in all "natural" representations?

I think because that simple description describes a non-linear iterative process that feeds back on itself.


Well I think there is a lot of complexity in the interpreter of the math string. For example, imagine I write an interpreter that takes a single character, and if it's 'A' gives a mandelbrot fractal, 'B' a burning ship fractal, 'C' an image of the sun that is hardcoded into the program (what's the difference between such hardcoding of information and the 'hardcoding' of how multiplication is performed, anyways?) <-- Here is a program that has a lot of 'complexity' produced with only 3 possible inputs.

My point is basically, the system includes the interpreter all the way up to the eye and the mind, and it seems tricky to completely detach such context from a description of how 'complex' things are.


It comes from the aperiodic structure of real numbers (that is a weird and wrong expression but I cannot find a better way to explain it). Nonrational real numbers are inherently chaotic as seen from the inside (even rational numbers might be seen as such).

Real numbers are weird. Totally.

Also the fact that you are defining something depending on convergence makes it even weirder, as limits do not tend to commute with anything unless smooth conditions take place. And for these fractals, there is no smoothness near the "border".


While "real" numbers are indeed weird, I don't think that's the real explanation here. There are lots of small programs with complex output that have nothing to do with real numbers. If someone gave you one of these programs without telling you what it was for, real numbers would at best be a useful abstraction (bear in mind that there are no actual "real numbers" here, only finite bit-strings). But it might turn out to be the equivalent of a stream cipher, instead. That would, if done correctly, have even more apparent entropy than your typical fractal, which at least has some higher-level structure.

In my view, the real source of complexity is the fact that the algorithm can use arbitrary iterations to magnify small differences. It's the unpredictable nature of computing machines, not real numbers. The nature of real numbers is only a guide to developing and explaining that underlying complexity.


But computing machines aren't unpredictable. They are very predictable. They appear to pull complex structure out of the aether.

Perhaps the interesting thing is that the set of n-bit programs expands to only 2^n possible outputs. Why are some finite number of infinite-length outputs accessible, but not others? Why does nature favor those sequences?


>But computing machines aren't unpredictable. They are very predictable.

Are they though? A 5-state Turing machine might seem trivial, but there exist programs in it, that we don't know if they ever halt or not [1]. Their behavior is totally non-deterministic for our understanding. There are also minimalistic cellular automata that produce completely unpredictable patterns. [2]

[1] https://en.wikipedia.org/wiki/Busy_beaver#Known_values_for_....

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


See also the turing machines whose halting behavior is independent of ZFC. http://www.scottaaronson.com/blog/?p=2725


There are no non-rational “real” numbers involved whatsoever in drawing this fractal (or e.g. the Mandelbrot set). Only rational numbers, simple purely rational functions, and some amount of truncation of the least significant bits at each step.

The deep “weird” “inherently chaotic” structure you’re talking about is the structure of the rational numbers.


Structure is not the same thing as information. One is accidental, even if useful, amd the other has to be "designed".

People arguing about the complexity of the human brain (especially those that know a lot about the way it works) fall into this trap constantly, and it drives me nuts: there's a ton of structure, but proportionally negligible information in the brain's programming.



Anyone else thing that the Julia set diagram of this looks like a Nazca-line Image? Imagine you reverse engineered the Nazca Images on the ground and they described advanced Mathematics...Sci-Fi short story Idea there for sure :D


So a bunch of archaeologists are studying some markings found on the stones in a recent dig, when a computer nerd pops in and says, "hey, this looks familiar; I've played with those the other day". Everyone is stunned as she pulls out her laptop and shows them that little fractal demo she wrote...


Hehe, by the guy who sued CERN, because of the possibility of a black hole emerging. (he didn't think it was likely, but not unlikely enough to him)


I love the reference to the 1k demo "JenterErForetrukket". Here is its link on Pouet:

http://www.pouet.net/prod.php?which=54663

Unfortunately, that demo is not that portable, and I was unable to find a video of it.


Hah. I would guess that this made its way here because someone posted one on ShaderToy recently. See: https://www.shadertoy.com/view/XtKGDD


Looks like a pareidolia fractal.

https://en.m.wikipedia.org/wiki/Pareidolia


here's a Google-maps style fractal explorer that does the Burning Ship fractal and others

http://atleebrink.com/julia.html


....There's a fractal for that!




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: