Note
Introducing Affine Glow
A new editor and renderer for exploring flame fractals.
Affine Glow is a modern reimplementation and reimagining of the flame-fractal workflow established by flam3 and Apophysis. It combines an interactive editor with a renderer designed for experimentation and exploration.

A flame fractal rendered with Affine Glow.
AI has quickly become central in the software development practice in industry and has also provided unprecedented utility to hobbyists as well. This latter application doesn’t get as much attention as I believe it deserves. I wanted to see what possibilities it could unlock for me. The first result is Affine Glow.
The source is now available on GitHub. Below I discuss the background to the project and my motivations for doing it. Future posts may share some more technical details, lessons learned, or more work created using Affine Glow.
What Is Art?
In the early 2000s, I became interested in a piece of software called Apophysis. It was an algorithmic image generator: push a few buttons, move some sliders around, and you got an abstract picture. Even though the user had fine controls over all the parameters, it was hard to see the relationship between the inputs and the outputs. It invited exploration and experimentation. Small changes to the inputs could be used to make fine adjustments, but sometimes resulted in drastic changes in the result. Either way, the process was fascinating to me. I didn’t understand the math behind it, but it also didn’t matter.
The pictures themselves had an ethereal, space-like quality: galaxies or nebulae or whatever else the imagination saw. They made for pretty desktop wallpapers and I imagine they could serve as posters one might hang on the wall, though I never did.
Years later, I was reminded of this and discovered that Apophysis was not around in a useful form. The original version was implemented in Delphi and for Windows and I could not run it on my Mac.
What is one to do?
I attempted building it from source, but Delphi was no longer around and the available alternative (Lazarus) didn’t have a compatible sdk/toolchain.
What Is Anything?
Contemporary AI coding agents work much the same: you don’t need to understand how they work in order to make something useful using them. They make exploration and experimentation easy. The results are frequently pleasing and useful.
First Attempt
As AI coding agents became stronger, it seemed obvious that something could be done. If I wasn’t able to build it myself, then surely the agent could do it for me.
I cloned the repo, told Codex to install whatever dependencies were needed, and to compile it.
And it failed. Too many dependencies on the original SDK meant that large portions of the code used functions that were not available. Either the source had to be rewritten or the missing functions reimplemented.
Easy enough, I thought, and kept going. But after what seemed like weeks (I didn’t keep good track of the time spent) and may iterations, few things had gotten done. The program finally compiled, but nothing much even showed in the UI and functionally nothing worked. Eventually I lost interest and moved on.
The Reimplementation
At some point, a very obvious realization came to me: We should reimplement Apophysis, in a language that’s still alive and using supported, modern tools and dependencies. C++ seemed like a good choice: it should be efficient for computation, the language is mature, many libraries exist, it is cross-platform, and both I and the AI models know it well.
The model (I used OpenAI’s suite at first, as that’s the subscription I had at the time) made some suggestions (Dear ImGui for the UI most significantly) and it went to work. I believe we had a working version on the first day.
Most of the work took about two weeks, though some unexpected challenges arose and wasted significant time. I plan to discuss those, and takeaways, later.
Follow the work
Development happens in the Affine Glow repository. While I am still occasionally making changes, I don’t think there is much more I want to do there, at least for now. Check it out.