Skip to content

Latest commit

 

History

History
86 lines (61 loc) · 3.31 KB

README.md

File metadata and controls

86 lines (61 loc) · 3.31 KB

Fractal Rendering App

Interactive app for visualization of Mandelbrot and Julia sets written in Python and GLSL.

main_app.py

Features

  • GPU-accelerated rendering via OpenGL 4.0.
  • Double precision arithmetic with zoom up to 10^15.
  • Interactive panning and zooming with the mouse.
  • Interactive switching between Mandelbrot and Julia sets.
  • Arbitrary window resizing, full-screen and vsync support.
  • Automatic DPI-scaling and variable render size.
  • Fully customizable configuration file.
  • 296 available colormaps.

Usage

How to run the app in Python?

The app is tested and works on Windows 11 and Linux Debian 11. It should also work on MacOS systems that still support OpenGL.

Please make sure you have installed the latest version of Python before continuing. Furthermore, it is advisable to use python and install modules inside a virtual environment. Copy the following commands into the terminal:

  1. Clone the repository:

    git clone [email protected]:MarkoLeskovar/FractalRendering.git 
    cd FractalRendering/
  2. Install required the python modules from requirements.txt:

    pip install -r requirements.txt
  3. Run the main script to run the interactive app:

    python main_app.py

If you are experiencing low FPS while running the app on a laptop with both integrated and dedicated GPUs, make sure to enable the dedicated GPU in your Nvidia Control Panel or AMD Radeon software.

How to create executable app?

The app can also be used without installing a Python interpreter or any module. This is achieved thought the use of Pyinstaller. You can create the executable file yourself by running the main_install.py or simply download the pre-build package from the link bellow:

Controls & Customization

Fully customizable list of all available app settings and controls is available in the config.json file. Bellow you will find some of the most used keys.

  • Use ARROW KEY UP / DOWN or MOUSE SCROLL to zoom in and out.
  • Use ARROW KEY LEFT / RIGHT to change colormaps.
  • Use + / - to increase or decrease the number of fractal iterations.
  • Use * / / to increase or decrease the pixel scaling.
  • Use J to switch between fractal rendering modes.
  • Use I to switch between info text modes.
  • Use R to reset pan and zoom.
  • Use S to take a screenshot.
  • Use F to toggle fullscreen.
  • Use V to toggle vsync.

Links

Mandelbrot Set - Wikipedia
Plotting algorithms for the Mandelbrot set - Wikipedia
Collection of colormaps by Pratiman Patel - GitHub.io
Collection of font files in .ttf format - FontSquirrel