fract-ol
Fract-ol is a graphical application written in C using the MinilibX library. It renders the Mandelbrot and Julia sets, allowing for real-time navigation and zooming within the fractal boundaries.
Unlike OpenGL, MinilibX is a CPU-based graphics library, so it lacks hardware acceleration. To manage performance, I had to implement mathematical optimizations and replace some standard functions with bitwise operations to keep the rendering speed acceptable.
The project focuses on optimization and event handling to ensure smooth rendering during zoom and movement.
Features
- Fractal Sets: Renders Mandelbrot and Julia sets.
- Zoom: Mouse wheel support for zooming in and out.
- Coloring: Changeable color palettes using the ‘C’ key.
- Navigation: Move the camera view using arrow keys.
Installation & Usage
This project runs on Linux (Fedora/Ubuntu). You will need gcc and make installed.
Install Dependencies
First, ensure you have the X11 and Zlib development libraries installed.
Fedora:
sudo dnf install libXext-devel libX11-devel zlib-develUbuntu/Debian:
sudo apt install libxext-dev libx11-dev zlib1g-dev
Clone and Compile
Run
# Options: Mandelbrot, Julia
Keybindings
| Key | Action |
|---|---|
| Mouse Wheel | Zoom In / Out (at mouse position) |
| Arrow Keys | Move the view (Up, Down, Left, Right) |
| C | Cycle through color palettes |
| J | Change Julia set parameters |
| ESC / Q | Quit the application |
Gallery




