pygame is
Simple DirectMedia Layer is
Site Swing
Fractal Fr0st

Fractal Fr0st - 0.3

Vitor Bosshard (algorias)



Fr0st allows you to visualize the results of an iterated funcion system as it is rendered. This is a very early version of it, with lots of planned funcionality missing. The only controls so far are moving the mouse to change the location of the active transform and the left and right keys to switch between transforms. It's hard to explain in non-technical terms, just try it out. If you know how to use Apophysis, you can let your own flame be rendered by Frost.


-About 50% improvement in rendering speed. Among other
optimizations coloring is now handled differently, so each
pixel maxes out at its fully saturated color, not white. The
stylistic implications of this are subjective, so the faster
method was kept.

-fixed several bugs related to rounding errors.

-abstracted away a lot of implementation details, to make
scripting easier. This is still a work in progress, nothing
is set in stone yet.

-fleshed out documentation for scripting.

-released several new scripts:
    -various scripts which create procedural animations
    -the renderer, which outputs high quality frames (see
the sample animation included with the release)


Home Page:


click to view original size


Fractal Fr0st - 0.4 - Dec 21, 2008
Fractal Fr0st - 0.3 - Aug 6, 2008
Fractal Fr0st - 0.2 - Jul 12, 2008
Fractal Fr0st - 0.1 - Jul 2, 2008 account Comments

If you wish to leave a comment with your account, please sign in first.

August 7, 2008 8:01am - Jordan Trudgett - nickname: (tgfcoder)
This is really good. Great work!
So I see you found blitting a 1x1 surface to be faster than setting pixels? That's interesting, lol
July 16, 2008 9:11am - Marcel Rodrigues - nickname: (marcel)
Ok, thanks. I got my flame rendered.
Interesting project.
July 14, 2008 7:54pm - Vitor Bosshard - nickname: (algorias)
Well, you just need to save the flame as sample.flame in the parameters folder. However, Frost does not render the flame in any way similar to apophysis, it is not meant to be a replacement.
July 13, 2008 5:19pm - Marcel Rodrigues - nickname: (marcel)
How can I render Apophysis flames in this program?
July 12, 2008 9:18am - Vitor Bosshard - nickname: (algorias)
I've refactored the parsing since 0.1 release, it's much more compact now, but still uses the same ugly flag setting approach.

I find that bug rather strange (doesn't happen to me). Thinking about it, it might be that line ends are getting included in the gradient object, so I would need to call a strip after reading each line.

Thanks for the feedback!
July 10, 2008 1:45pm - Jordan Trudgett - nickname: (tgfcoder) - 3/5
Ooh... very colourful and patterny. Them's scientific words :D

I had one problem,

File "Fractal Fr0st", line 76, in get_gradient
gradient.append([int(hex_gradient[i:i+2],16),int(hex_gradient[i+2:i+4],16),int(hex_gradient[i+4:i+6],16)]) #converts FFFFFF to (255,255,255)
ValueError: invalid literal for int():

I put a try/except wrapper around it to make it ignore the error (I really could not work out why the error occurs, but it's probably something to do with how you're reading the data from file.. there might be a null character at the end or something strange) Try using hex_gradient=hex_gradient.strip() before that loop?

Apart from that, it worked fine.

I also noticed that you used a 'black.png' which was a big png filled with 1.5% black throughout. You can use this too:

background = pygame.Surface(size)

which would be the same (surfaces are initialised to black)

Lastly, your parsing of XML was crude. :P Sounds like something *I'd* do. I know parsing XML trees is annoying. I had to do some for the maps in my game.
July 3, 2008 1:15pm - Emanuel Berg - nickname: (metabaron)
Ha ha, I'd love to play with this on acid :)

our projects welcomes all python game, art, music, sound, video and multimedia projects. If they use pygame or not.
recent releases
Feb 21, 2017

Jan 31, 2017

Jan 24, 2017

Jan 18, 2017

Jan 7, 2017

Dec 30, 2016

Dec 8, 2016

Nov 28, 2016

Nov 27, 2016

... more!
for pygame related questions, comments, and suggestions, please see help (lists, irc)