I got bored over the weekend and decided to try my hand at fractal art again. I used to play around with this years ago but not so much recently. I was pretty disappointed to find that nothing has really changed when it comes to the tools available for creating fractals. Most of them haven’t been updated in years and there don’t seem to be much in the way of new kids on the block that I can see either. About the only new tool I found is Chaotica which hasn’t been updated in a year and only slowly before then. I used it to create the above piece.
I’ve yet to find my ideal tool for editing fractals, particularly flame fractals. All of them focus on the details of editing all of the parameters that go into the fractal. None of them pay any attention to the workflow. I’d love to see something that let me edit fractals like Lightroom with virtual copies allowing for branching histories of edits so I can compare what my edits are doing. This is particularly important when rendering even thumbnails is slow business. Maybe I’ll just give up and write my own tool one of these days.
This isn’t normally something I’d syndicate to planet, but it has a certain relevance to Firefox so I thought I’d make an exception here. Feel free to skip by if you want more of the usual fare.
Those of you that have been within a few meters of my laptop or desk or even delved into my website a little may have noticed that I a certain fondness for fractal images. I find them to be extremely beautiful and I’m constantly amazed at what you can generate with what is essentially some numbers and mathematical equations. I’m even more amazed that I can actually generate pieces that look pretty good (IMHO) myself so I’m always happy when others tell me that they like my work. This happened a short time ago when I was asked to create some new art work for Mozilla’s Mountain View office. Apparently my work was selected by the architect and others out of a selection of examples from me and some professional artists.
This was exciting, a chance to get my work on display and up in front of a bunch of people who I love working with no less. I had a pretty good idea of what I wanted the image to look like, not too original I know but a different take on a classic. Just one problem, the sorts of fractal that I am most enamored with of late are called flame fractals and they really aren’t good for designing. You don’t so much decide what you want and just make it. I tend to end up looking through tens if not hundreds of randomly generated images, choosing one that is pleasing and then tweaking it to improve it in my eyes.
In this case I was super lucky, or maybe it was fate. I think I only pored over a few hundred samples until I had the two basic starting points I needed to eventually create this:
This is the first flame fractal I’ve made that is a combination of two separate images which means it takes twice as long to render. The link above is to the low quality version on Flickr but I’ve just finished rendering the full version that will go off to be printed 4ft high on canvas. Thankfully I managed to use my powerful deskop core i7 machine in the office so it only took just under 2 days to render both images at full size. In keeping with the Mozilla spirit I am releasing the fractal definition files and high-res copies of the full image and the individual parts under a Creative Commons Attribution-ShareAlike 3.0 Unported License. Be warned, some of these images are quite large. I recommend right clicking and saving them rather than trying to view them in your browser. You may even need to take care with some image viewers. Trying to use OSX’s quick look feature on them pretty much killed my machine for 20 minutes.
If you want to play around with the image and tweak the settings then I recommend Apophysis for Windows or Oxidizer for Mac. Personally I tend to tweak the images until I’m happy in the GUI editors and then use the command line flam3 tool to do the rendering, binaries are available for Windows from the website and for OSX in macports.
It struck me the other day just how much of a pain debugging asynchronous xpcshell tests is. Frequently you just see the test timeout because some code you are working on has thrown an exception, but the test harness can’t detect that and end the test, or even log the exception. Well it can now for do_execute_soon at least. I’ve landed bug 550481 which catches and logs any exceptions in the callback passed to do_execute_soon. As an added bonus I also removed the need to use do_test_pending/complete when purely using do_execute_soon, the harness does it automatically. There is no harm in you doing it yourself too though.
Flame fractals are even less “designed” than the more traditional fractals based on complex equations. There you tend to start with a fixed formula that you know looks good, and then find a nice region to render. With flames you normally just look through randomly generated starting points, sometimes ten, sometimes maybe even a hundred until you find one that looks good enough to investigate further. Then you tinker with the parameters, a nudge here, a colour change there, iteratively making it “better”. Sometimes of course one of the random images looks absolutely great and no amount of changing will improve it.
A friend asked the other days what was up with all the fractals on my site and it reminded me that I’ve neither mentioned them in my blog or even sat down and created any for a while, so I thought I’d remedy that, especially since I now have the personal section so I don’t have to bother planet readers with this stuff.
Fractals fascinate me for a couple of reasons. The first is obvious, they are in general strikingly beautiful. Even the most basic fractals with simple colouring choices look stunning and because of how they are created can be generated at any size with no loss of detail.
The second reason is due to how they are generated. Like most developers I’m a pretty mathematical sort of guy, equations and algorithms can actually interest me (sad I know). It amazes me that such images can be created from essentially simple equations. Take the most well known fractal, the Mandelbrot set. This is generated using the following iterative equation
zn+1 = zn2 + c
That’s it. Well that and understanding how to apply the formula, using complex numbers and using a suitable colour palette. But still, such a simple looking formula generating something that looks beautiful and repeats infinitely at many zoom levels seems awesome to me.
The final reason is because I can actually generate my own images. I’m not what you’d call much of an artist. I like to think I can generally recognise what looks good, but creating something from scratch is beyond me. Fractals let me do this because really I’m not creating anything from scratch. I’m starting with some formula that is known to work well, choosing colouring methods, choosing colour palettes and tweaking parameters until I am happy with the results. Obviously that means I’m still no artist, but I like to think that many of my creations look good. All of the fractals in my media gallery were created by me, using a few different fractal generating programs.
That’s probably enough talking so here is my latest creation. I’m going to try to blog about my fractals when I make a new one from now on, if there is anything particularly interesting to say at least. This one took a long time to create. It is fairly easy to create good looking fractals at random, but trying to design one around a particular goal is much harder.