Welcome to the Fractals Project! This project explores the fascinating world of fractals, mathematical sets that exhibit a repeating pattern at every scale. Fractals are not only beautiful but also have applications in various fields such as computer graphics, nature modeling, and more.
In this project, so far I've implemented only the Mandelbrot Set.
Here are some screenshots of the fractals generated by this project:
This project takes advantage of a few nifty features. They include:
- Multithreading: Fractal Rendering done using standard threads. Achieves a speedup of upto 500%.
- Color Palettes: Randomized color palettes are generated each time the program is run. You can also customize this by playing with the
ColorPalette
class. - Controls: Allows user to interact, zoom in/out, move around, and even take a snapshot.
- So far, we're generating a Mandelbrot Set with a variable number of Iterations and a randomized Color Palette.
- The user can zoom in and out of the fractal by clicking on the desired area. Zoom In =
Left Click
, Zoom Out =Right Click
. - You can increase/decrease the number of iterations by scrolling your mouse wheel
Up
orDown
. - You can move around the image canvas by pressing your
Up
,Down
,Left
orRight
keys. - Press
Space
to save the currently rendered fractal to theimgs
folder as a.jpg
file. - To exit, press
Esc
.
To build and run the project, follow these steps:
-
Clone the repository:
git clone https://github.com/AlexJMercer/Fractal-Art.git cd Fractal-Art
-
Install dependencies:
mkdir build cd build cmake .. mingw32-make # Since I'm using MinGW compiler
-
Run the application:
Fractals.exe
We have exciting plans for the future of this project, including:
- Adding more fractal algorithms.
- Adding support for GPU rendering (using CUDA).
- Simplifying the color palette generation.
Stay tuned for updates and feel free to contribute!
Thank you for checking out the Fractals Project! If you have any questions or suggestions, please open an issue or submit a pull request.