Rendering Large Flames

June 28, 2010

Ok, so I’ve written a pair of scripts to allow rendering a fractal in strips. This is useful since it allows rendering images that would otherwise be too large to fit into memory. If you render in 3 strips, for example, you’ll require only 1/3 as much memory, but on the flip-side the render will also take 3 times as long.*

It works pretty well: Just run slice_flame.py on a flame, render all flames in the resulting file, then run join_strips.py and point it at one of the rendered strips. The script will find the other strips and combine them all into a single image.

Download the scripts here: slice_rendering.zip

The only issue this approach has it that the resulting image shows visible seams if DE is turned on and the render quality is very low. This happens because the seed used for the random number generator is a different one for each strip. The problem goes away when rendering with high enough quality (let’s say 500 or higher).

One additional note: Don’t use the jpg format when employing this script! Since the image is saved twice (once when rendering the strips, second time when loading and combining them), you’d lose quality due to jpg compression twice as well.

As usual, if you have any issues or find a bug, please let me know so I can fix it!

* Actually, the total render would take the same time, but the quality would only be 1/3. You need to render the strips at 3x the quality to get the same result as rendering in a single slice (because quality is calculated in relation to render size)


Installing Fr0st in Ubuntu

May 22, 2010

I finally got an install script for linux users written and tested. It will install all dependencies of fr0st, including downloading and compiling flam3. So far it has only be tested under Ubuntu 10.04, so I’d appreciate any feedback from people installing fr0st on other releases/distros.

The file will start to be distributed with the 1.2 version of fr0st. For now, you can get it directly from here:

fr0st-install-dependencies

This can be used to run code from the 1.1 release (http://launchpad.net/fr0st/trunk/1.1.0/+download/fr0st-1.1-src.tgz) as well as the development version from the bazaar repo (“bzr branch lp:fr0st fr0st”)

If you run into any problem using this file, please let me know so I can make corrections. Thanks!


Fr0st tips & tricks

December 9, 2009

I’ve aimed to make the fr0st interface as discoverable as possible. There are a couple of features hidden away, however, so I figured it’s important to write them down before they get lost in the sands of time, to be dug up by some lucky soul excavating through the source code.


Mouse Wheel + Ctrl and/or Alt

This sounds harder than it is, so let me explain:

Hold down ctrl while the mouse is on top of any textbox, and you can change its value by scrolling with the mouse wheel. Instead of ctrl, you can also hold ctrl+alt or just alt to get slower scaling. This works on top of virtually any textbox, including variations, chaos, color, weight, etc.


Preview Image

The above method also works on top of the preview image, where it changes the scale of the fractal. You should also try dragging the preview around with the mouse.


Double-Clicking Variations

Double clicking on the variation name will make the variation jump to 1 if it was at 0, and to 0 otherwise. This should be pretty familiar to those coming from Apophysis.


Keyboard Shortcuts

All keyboard shortcuts can be discovered just by looking at the menu items. Here are some of my favorites:

-F8 runs a script; F9 interrupts it
-Ctrl-z undoes the last change, while ctrl-shift-z undoes all changes. Same with y for redo.
-Ctrl-p opens the preview, ctrl-r the renderer and ctrl-e the script editor.


Copy & Paste

with ctrl-c and ctrl-v you can copy and paste fractals to and from fr0st into other programs such as text editors and other fractal programs.


Does any of this help you make better fractals? Of course not, but it does free up your mind to focus on the creation of art instead of struggling with the program. A good interface is one that fades into the background, turning almost invisible. I’m not sure we have achieved that quite yet, but we’re heading there.

Have fun with these tricks!