solaris

by ralfMonday February 9th, 2009
Posted in Desktop Gallery, Fractal Flames

From a new set of renderings exploring some simple geometrical concepts (note the new URL – my web pages have moved).

solaris

Widescreen (16:9) » 1440×900 » 1680×1050 » 1920×1200 » 2560×1600
Fullscreen (4:3) » 1024×768 » 1600×1200
Others » 1280×1024 » iPhone

Rendered in Oxidizer 0.5.9.1.

Pythagoras

by ralfSunday January 25th, 2009
Posted in Desktop Gallery, Fractal Flames

Sometimes it feels good to get back to the basics. Here’s a fun example of self-similarity, obtained by stacking squares onto the sides of a right triangle, then new triangles onto the new squares, and new squares onto the new triangles…etc. ad infinitum. The result we might call a “Pythagorean Tree”.

Some more examples of Pythagorean trees are shown here (although some use isosceles triangles rather than right triangles).

Pythagoras

Widescreen (16:9) » 1440×900 » 1680×1050 » 1920×1200 » 2560×1600
Fullscreen (4:3) » 1024×768 » 1600×1200
Others » 1280×1024 » iPhone

Rendered in Oxidizer 0.5.5.

Scripting Fractals for Oxidizer

by ralfSunday November 16th, 2008
Posted in Lua Scripts, Oxidizer Blog

This tutorial introduces Lua scripting for Oxidizer (>0.5.5), along with some hopefully useful (but not strictly required) peripherals. This text is intended for absolute beginners with no prior experience with Lua scripting, Xcode or the Terminal command line, although a modicum of familiarity with Oxidizer is assumed.

Oxidizer is a Mac OS X (10.4-10.5) software for generating fractal images and animations. From version 0.4, Lua scripting was added to Oxidizer. Two principal benefits of scripting are:

  1. Efficiency. Scripting can immensely simplify mechanical and repetitive tasks, like e.g. changing a genome parameter value sinusoidally over 200 frames for an animation. Or if you have a standard image/rendering setting that you often use, you can program it into a script instead of changing many parameters every time you want that setting.
  2. Capability. Did you know that Oxidizer has a color map rotator? A similarity-transform genome randomizer? Or a beat-syncing sequencer? Well with scripting it does.

Scripting is, in my opinion, one of the most powerful new meta-features of Oxidizer, because it is an enabling technology. It opens up possibilities for the user to be creative and invent tricks and methods the developer might not have thought of, or which would be too much work to program into Oxidizer as standard features.

Download tutorial. Includes PDF document, example scripts, genomes, and animations.

Bionova

by ralfTuesday August 12th, 2008
Posted in Desktop Gallery, Fractal Flames

A new strain of fractals have escaped the confines of the scripting laboratory…

Thought I’d allow myself a brief plug here. This fractal is straight out of a new type of randomizing script that I’ve been toying around with recently (more examples here).

Details to follow :-)

Bionova

Widescreen (16:9) » 1440×900 » 1680×1050 » 1920×1200
Fullscreen (4:3) » 1024×768 » 1600×1200
Others » 1280×1024 » iPhone

Rendered in Oxidizer 0.5.2.

© 2008 Ralf Flicker (aka “adonais” @ TNS)

Lua Script » Randomizer

by ralfSunday February 3rd, 2008
Posted in Lua Scripts, Oxidizer Blog

It’s always a pleasure to learn something new; to be exposed to unexplored workflows and ideas — this is where the true beauty of any virtual community shines. Having had the past few days to toy around with this script I’ve gained insights into Oxidizer that may have gone otherwise untapped, I’m hoping that the same will be true for others. A big shout of thanks to ralf for generously sharing this one!

~Scott

The basic idea for this script is to batch create a large group flames directly in Oxidizer’s main window. By limiting certain parameters the script is able to generate flames much quicker than is typically achieved when using the ‘Gene Pool’.

Randomizer Images

A few notes about the script: it is very simple, although admittedly quite ugly (I had never programmed in Lua before Dave put this into Oxidizer). I basically just took Dave’s “create_genome_from_scratch.lua” script and wrapped a FOR-loop around it, so that it creates 100 genomes from scratch with randomized coefficients. You can change the number of genomes you want to have per batch (line 35, “nbat=100”).

Incidentally, that is roughly the frequency you can expect; out of 100 random draws, one or two might have some interesting aspects, and the rest are pure junk; of course this also depends on the settings. Some combinations of transforms are more likely to produce interesting results than others — this is what we’re exploring here.

In Lua, comments are started by a double hyphen (“–“), and you’ll see a lot of commented lines in the script that you don’t have to worry about. Currently the script only uses two Xforms and two variations per Xform, but you can easily expand that to use more of each. You can see parts of the commented code where I did exactly that, you can just uncomment or copy those parts.

The affine coefficients are randomized for each Xform, where I (somewhat arbitrarily) set the ranges to [-1.1,+1.1] for the first two pairs and [-0.5,+0.5] for the final coefficient pair. You can modify this of course to some setting that you might discover works better.

I also switched off the global symmetry (sym=”No Symmetry”), but you can include a random symmetry as well (uncomment line 61 and comment out line 62). The Xform weight and symmetry is randomized between [0,1], and you can modify this. For the variations, one has to pre-select which variations are to be included, then the script randomizes their weights to whatever range you like.

The current setting uses a cylinder-based combination (weights = +1 or -1), with some random spherical and sinusoidal thrown in. This is a bit like cooking. Try changing the variations and you get all kinds of funny creatures.

Finally, I don’t invoke any randomization on the post coefficients, since this more often than not has a tendency to destroy otherwise nice looking flames. Typically, I instead explore the effect of post-coefficient transforms *after* the script has produced a nice candidate that is ready to be tweaked. But it is simple enough to also randomize the post coefficients in the script if you want to.

I think that about covers it, let me know if you have questions. Happy randomizing!

Download Randomizer Lua Script.