Fractals
A real-time Julia set explorer built with Flutter, rendered entirely on the GPU with fragment shaders.
Screenshots
About this project
Fractals is a real-time Julia set explorer rendered entirely on the GPU with Flutter fragment shaders. Every pixel runs its own escape-time iteration, so the whole image re-renders each frame and every parameter can be dragged live at 60fps, including the Julia constant c itself, which is what actually changes the shape of the set.
Two Modes: The classic 2D escape-time set, and the same z² + c iteration carried into quaternions and sphere traced in 3D. Because the quaternion set lives in 4D, the 3D mode draws a slice of it at a fixed w, and sweeping that slice animates through cross-sections of the whole object.
Navigation by Parameter Space: The thumbnail in the corner is a Mandelbrot set drawn by the same shader, and it is the navigation tool rather than decoration: the Mandelbrot set is the parameter space of the Julia sets, so every point in it is a candidate c. Dragging along its boundary finds the interesting sets (fat and filament-heavy just inside, disconnected dust just outside) far faster than the sliders do.
Colouring: Filament glow lights up thin threads using a distance estimate derived from the orbit derivative. Stripe average colouring produces the layered, shell-like interiors. Orbit traps colour each pixel by how close its orbit ever came to a point, cross, ring, line or grid, which turns a render from fractal into etched glass.
Motion: A cardioid orbit walks c around the boundary of the main cardioid, keeping the sets connected while they morph, alongside palette cycling and the 3D slice sweep.
Performance: Anti-aliasing is supersampling per axis, dropping to 1× while you drag and settling back once you stop, so interaction stays at the display refresh rate. Export renders a fresh frame off-screen at a resolution independent of the window size.
Check out Fractals
View the source on GitHub