Flame Fractals in GLSL: Chaos-Game Splatting, Transforms, and Simple Post
Article: PositiveCommunity: Very PositiveConsensus

The article demystifies flame fractals by framing them as a chaos-game loop implemented on the GPU with atomic density accumulation. It outlines practical GLSL techniques for splatting, memory qualifiers, transform design (affine + sphere inversion), and simplified color/tonemapping. It finishes with tips for depth of field and motion blur, encouraging creative exploration.
Key Points
- Flame fractals can be rendered via a chaos-game approach: advance many points through random transformations and accumulate hit density per pixel.
- Use atomic operations (imageAtomicAdd on an r32ui image) to safely accumulate counts across parallel shader invocations, with GLSL qualifiers like coherent and restrict for correctness and performance.
- Effective transforms often mix affine operations with sphere inversion (conformal mapping), producing intricate, self-similar structures.
- A simple rendering pipeline scales density by total splats, colors via a procedural palette (e.g., Inigo Quilez), and applies an HDR-to-LDR tonemap (e.g., Reinhard).
- Depth of field and motion blur can be achieved by jittering splat positions (disk sampling) and dithering time within the transforms for artistic anti-aliasing.
Sentiment
Overwhelmingly positive and nostalgic. The community celebrates flame fractals as a formative creative coding technique, with no real criticism of the article. The discussion doubles as a reunion for long-time fractal community members.
In Agreement
- Flame fractals are a fascinating and beautiful generative art technique worth exploring
- GPU-based rendering (compute shaders, OpenCL, or CUDA) is the natural approach for flame fractal computation
- The algorithm is accessible enough to inspire newcomers into programming and creative coding
- Chaotica is praised as an excellent modern successor to the classic Apophysis editor
Opposed
- Flame fractals are difficult to control creatively — it's hard to predict how parameter changes affect the visual output or determine which adjustments achieve a desired look