This is likely the biggest release since the beginning of Fractouille.
This version brings massive performance improvements with a new rendering system and a lot of quality-of-life tweaks.
Performance improvements
- The rendering system has been completely rewritten to use a tile-based approach.
(See this page for more information) - The mandelbrot set has been made faster to compute by skipping iterations in points located within the main cardioid and the period-2 bulb.
Recording
- The record command was previously rendering frames supposed to be merged using
ffmpeg.
This is now automatically done without saving every frame, saving a lot of disk space and time.
The downside is thatffmpegis now required to run this command. - A new
record_juliacommand is also available, allowing to record an animation (not zoom) of the julia set. - A progress popup is now displayed while recording.
Palettes
The whole palette system has been rewritten to allow for more flexibility:
- Different interpolation methods are now available, and palettes can now be modified or created on the fly.
Interpolation modes arelinear,cosine,hsvandhsv cyclic. - The new commands are
palette use <i>,palette create <r> <g> <b> ...,palette remove <i>andpalette mode <interpolation mode>.
Commands
- Some commands have been tweaked to be more intuitive.
- Typing the first letter of a command now shows the most likely completion.
- Pressing
Tabwill complete the command using the most likely completion.
Under the hood
A large portion of the code has been reorganized and modularized in dedicated modules.
This will make it easier to extend Fractouille in the future.
What's next?
- Border tracing: this is the next big optimization that will replace the tile-based approach.
- Arbitrary precision: for now
Fractouillecannot zoom beyond Rust'sf64precision limit. This will change in the future. - More color palettes and interpolation modes (LHC, HSL).
- More fractal types.