26 Jul 2008 e8johan   » (Journeyer)

Attracting Fractals

So, more summer and more fractal fun. First of all, now everything is coloured by shaders. A shader, per my definition, picks the colour for any given point/line-segment depending on direction, iterations, or group - where group can be the factor set used (IFS fractals) or angle in predefined steps (L-systems) or just zero (all other fractals).

Below, you can see a maple leaf coloured based on the factor set used to get the specific point.

The latest addition to the number of supported fractals are attractors. Below, you can see a gradient coloured Lorenz attractor from a paralell projection showiing the X and Y axes (ignoring the Z axis).

The introduction of attractors really exposed the lack of properties. The idea is that each fractal provides a range of properties (be it ints, doubles or compex numbers - perhaps also enums). These can then be queried and set from the UI using a standardized interface.

I'm exploring all these fractal types with the goal to create a base class, AbstractFractal, that I can put into a GUI. Then, fractals can be created from plug-ins, where the plug-in factory can get the actual fractals from a set of definition files - hopefully compatible with FractInt (or very similar, so that machine conversion is possible).

Then, all that is left is to create a nice Qt GUI and utilize QtConcurrent to get some performance from it. Also, have a bit of a sit-down and think through the whole memory situation - right now the application is somewhat hungry...

Syndicated 2008-07-26 13:47: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!