Skip to content

shreyanshanchlia/Fractal-Generator

Repository files navigation

Fractal Generator

This application can render fractals by putting the IFS code.

INPUT IFS code

  • Enter a, b, c, d, e, f, p in IFS Matrix and add multiple rows for extending the matrix. Here are some sample IFS codes to try out.

Features

Update Check

Updates are checked automatically using the latest version specified here.

Algorithms

Simplicity Features

  1. Copy the matrix to clipboard for redeploying / showing off 😜
  2. Paste the matrix from clipboard, and it will be automatically serialized into matrix for you.
  3. Delete the matrix for deploying a new matrix.

Sample IFS Matrix (Terdragon) for deterministic algorithm:

0.5 -0.289 0.289 0.5 0 0
0 0.577 -0.577 0 0.5 0.289
0.5 -0.289 0.289 0.5 0.5 -0.289

Sample IFS Matrix (Barnsley Fern) for random iteration algorithm:

0 0 0 0.16 0 0 0.01
0.85 0.04 -0.04 0.85 0 1.6 0.85
0.20 -0.26 0.23 0.22 0 1.6 0.07
-0.15 0.28 0.26 0.24 0 0.44 0.07

Navigation and User Control

  • on remaining idle (no mouse movement / keyboard input) for a particular time turns the menu off.
  • Mouse scroll on fractal changes zoom level.
  • Mouse pan changes camera position.

Customize fractal

Random Iteration Algorithm.

  1. Iteration control
    1. Speed.
      Number of times to run per frame.
    2. Total iterations.
      Number of times to iterate.
  2. Point of origin.
    Click to reset camera.

Random Iteration Algorithm.

  1. Size of the fractal
  2. Iteration control
    1. Speed of iteration.
      Number of pixels drawn per frame.
    2. Total iterations.
      Number of times to iterate in total.
  3. Point of origin.
    Click on the plane to change the point of origin.

Beautification Features

  • Change Background Color - Use already given presets or type your hex code
  • Change Fractal Color - Use already given presets or type your hex code

Development Guidlines

Made with unity 2019.4.17f1 2023.2.10
For scripts, goto Assets -> Scripts.
Fork and write issue before pull request, if not a collaborator.
Readme commits will not be accepted unless very important.