Fractal Flame
Генератор фрактального пламени на Python: алгоритм Chaos Game (IFS), многопроцессный рендер со слиянием результатов воркеров, гамма-коррекция и поворотная симметрия.

Стек
- Python
- NumPy
- multiprocessing
Ключевые технические решения
- Рендер распараллелен по процессам, результаты воркеров корректно сливаются в общую гистограмму.
- Гамма-коррекция после логарифмического преобразования плотности: без неё изображение выходит плоским.
- Поворотная симметрия как отдельный параметр композиции.
- Параметры задаются через CLI и JSON-конфиг, поэтому кадр можно собрать заново по его конфигу.
- Строгая типизация с проверкой mypy, модульные и интеграционные тесты, линтинг и CI.
Реализация алгоритма фрактального пламени: большое число точек прогоняется через набор аффинных и нелинейных преобразований по схеме Chaos Game (IFS) и накапливается в гистограмме плотности, которая затем проходит логарифмическое преобразование, а после него — гамма-коррекцию.
Рендер работает в один или несколько процессов, результаты параллельной работы объединяются в общую гистограмму. Число воркеров влияет на скорость. При этом каждый воркер идёт по своей последовательности случайных точек, поэтому кадры, собранные разным числом процессов, могут отличаться в мелких деталях.
Что даёт гамма-коррекция
Плотность точек распределена крайне неравномерно: без гамма-коррекции почти всё попадает в тёмные тона, и структура пропадает. Коррекция проявляет детали в областях с низкой плотностью, не пережигая плотные, — один и тот же кадр с ней и без неё:


За каждым примером на этой странице стоит свой конфиг. Все они лежат в репозитории, и два кадра выше отличаются в них одним значением.
Медиа

Constellation — разрежённая звёздная структура, симметрия 5-го порядка 
Aurora — мягкие градиенты, симметрия 9-го порядка, гамма-коррекция 
Neon Flower — радиальная симметрия 8-го порядка, высокий цветовой контраст 
Phoenix — радиальная симметрия 11-го порядка, четыре преобразования 
Ember Ring — кольцевая структура, симметрия 6-го порядка 
Pretty Flame — несколько преобразований, симметрия и гамма-коррекция 
Spiral Core — спираль в центре, без симметрии 
Soft Smoke — дымчатые градиенты, без симметрии