23 Jul 2008 e8johan   » (Journeyer)

Fractalicious

Ever since I first played with FractInt, it must have been at least 15 years ago, I've been intrigued by fractals. At first, they seemed like magic to me, but as I learned more maths, I can understand the why, but not always the how.


A couple of years ago I set out to write a fractal exploration application called Frakter. To be honest, it sucked pretty much, but it was an attempt. The nice things about it where:
  • Fractals where kept in external scripts, so that the application could be extended.
  • Colouring was done using special colour maps that could be loaded and saved.
  • It used a background thread to render the fractals.
  • It had a zooming history that one could type right into to find interesting ranges in the complex numbers realm.

Now and then I visit Paul Bourke's great collection of fractals (and loads of other stuff too). Each time, I feel an urge to write something that can handle everything that he shows.

I want to be able to fit all different types of fractals into a class tree that I can write a GUI around. The data carried from the fractals to the UI would be enough to do basic 2D rendering, 3D rendering, psychedelic colouring, and so on.


I've had a couple of half hearted attempts this far, but now I started from the other direction, i.e. starting with the fractal types I never get to otherwise.


Right now I've implemented IFS and L-systems. The implementation is not even an attempt at being efficient and uses loads and loads and loads of memory, but it works. The next step is to create a colouring class that one can inherit to do the funky stuff. Last value, current value and current iteration, fractal specific category are the "input values" I plan to use. Right now, fractal specific category, is "last used transformation set" when dealing with IFS, for L-systems, it is zero.

Syndicated 2008-07-23 15:41:00 from Life of a Developer

Latest blog entries     Older blog entries

New Advogato Features

FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!