I sat down to write about this subject, and it just struck me that it’s acually a pretty large and complex topic, hard to write about without leaving things out. So I decided to blog about it little by little rather than in one fell swoop.
First of all, in case you don’t know, fr0st is a fractal renderer I’m in the process of building. You can get a copy here, if you don’t mind working with pre-alpha software. There are some significant technical and design differences between it and implementations of the fractal flame algorithm (such as Flam3, Apophysis, and a handful of others), but I will get more into detail on these aspects at some other time.
Right now, I just have a little anecdote to tell about how it all started.
I can pinpoint the exact moment the idea came into being. It was on an ordinary day just like this one. I was tinkering with Python, having just started teaching myself to program, more out of curiosity than any practical application I could have drawn from it.
And then, all of a sudden, an idea struck me: What if there was a fractal renderer that acted completely in real time, slowly blending one frame into the next as you changed the flame’s parameters? It was very curious, because from one moment to the next, the idea was just there. Popped into my head out of nowhere.
I could wrap up the story now, because on the exterior, there is really nothing more to it. But I think it’s important to go a bit more into the why and how.
So, I was sitting there, with this idea in mind, which seemed curious but was not realistic at all to execute considering my limited skills. And then I felt a really strong urge to just leave it at that and go on with my (mildly boring and unispiring) life. But that’s not how it ended, obviously. The idea started nagging me, haunting me, making me feel bad for not doing anything about it. You see, I value creativity very highly. And I was taking this little gift my muses had brought me and throwing it right into the garbage.
So I did what anyone who dares to call himself an artist, a spiritual and creative being, would have done: I sat down and made it happen. I don’t know how, but after a sleepless night involving a lot of hacking around and banging my head against the metaphorical wall while blankly staring at the flame paper, at 7 a.m. I suddenly had a Sierpinski’s Gasket looking back at me from the monitor, one that I had built myself using nothing but lifeless numbers and a lot of ifs and fors. And it was exhilarating.
The point of this little story is that it’s very easy to convince yourself to avoid doing silly things like that. There are supposedly more important things in life, more responsible ways to act, more relevant activities to spend your time on. But if you don’t go that extra mile to turn your ideas into reality, even if doing so doesn’t make any logical sense, what’s the point of it all? I could easily have let Fr0st disappear before it even came into existence, but I didn’t, and here it is. What for? I’m still finding out 😉
Next, I’ll talk about the design of fr0st itself, and the most important lesson I learned from doing it.