Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
fcseidl authored Nov 25, 2024
1 parent 58f8b1c commit ce788ca
Showing 1 changed file with 10 additions and 9 deletions.
19 changes: 10 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
# Fractalinator

UPDATE 11/24/24: Fractalinator is now available in modern web browsers at [https://fcseidl.github.io/fractalinator/](https://fcseidl.github.io/fractalinator/). Try it!

This is an drawing app which lets you draw a [multibrot](https://en.wikipedia.org/wiki/Multibrot_set)-like fractal in any shape that you choose! For instance, the video below shows me drawing in a pop-up window opened by the following simple program. I tried to evoke a saguaro cactus. A few more example fractalinations are at the bottom of this README.
```
from fractalinator import Artwork
Artwork(cmap_name='viridis_r')
from fractalinator import App
App(cmap_name='viridis_r', power=3)
```


Expand All @@ -28,22 +30,21 @@ To make Fractalinator easy to play with, it has few dependencies. The ```pip```
| tkinter | 8.6 |

## Usage
Fractalinator drawing windows are managed by the ```Artwork``` class. To make a fractalination, simply construct an ```Artwork``` object.
Calling ```Artwork()``` will open a drawing window with the default settings. To save your drawing, press the 1 key while in the drawing window.
Your art will be saved to a file named ```fractalination-[n].png```. Other number keys (2-9) behave similarly, but save a more detailed image with the resolution multiplied by the number on the key.
Fractalinator drawing windows are managed by the ```App``` class. To make a fractalination, simply construct an ```App``` object.
Calling ```App()``` will open a drawing window with the default settings. To save your drawing, press the 1 key while in the drawing window.
Your art will be saved to a file named ```fractalination-[n].png```. Other number keys (2-5) behave similarly, but save a more detailed image with the resolution multiplied by the number on the key.

The default settings can be changed with a number of keyword arguments. Mostly notably, the ```cmap_name``` argument allows you to choose any [matplotlib colormap](https://matplotlib.org/stable/gallery/color/colormap_reference.html). The full set of keyword arguments is described below.
| **Name** | **Default** | **Description** |
| -------- | ----------- | --------------- |
| ```bailout_radius``` | ```3.0``` | Escape threshold for iterative fractal generation. Values near or below 2.0 may allow the noise field to affect the background image. |
| ```brush_strength``` | ```50.0``` | Larger values give thicker strokes. |
| ```bailout_radius``` | ```5.0``` | Escape threshold for iterative fractal generation. Values near or below 2.0 may allow the noise field to affect the background image. |
| ```brush_radius``` | ```100``` | May need to be increased to avoid choppy images with higher ```brush_strength```. Larger values slow drawing. |
| ```cmap_name``` | ```"gray_r"``` | ```matplotlib``` colormap name to use in image. |
| ```cmap_period``` | ```4.0``` | Smaller values make the colormap repeat more frequently around the outside of the fractal.|
| ```cmap_period``` | ```8.0``` | Smaller values make the colormap repeat more frequently around the outside of the fractal.|
| ```max_it``` | ```30``` | Maximum iteration count for iterative fractal generation. Smaller values speed computation but reduce image quality. |
| ```noise_seed``` | ```None``` | If positive integer, random seed for reproducible noise. |
| ```noise_sig``` | ```26.0``` | Smaller values result in more, smaller features in the image. |
| ```power``` | ```3``` | Multibrot fractal order. Must be a positive integer. |
| ```power``` | ```2``` | Multibrot fractal order. Must be a positive integer. |
| ```shape``` | ```(720, 576)``` | (width, height) of drawing window in pixels. Note that large windows may exhibit perceptible lag when drawing. |
| ```thin_it``` | ```5``` | Only iterate pixels to ```max_it``` if they are not diverged by this iteration, saving computation costs. |

Expand Down

0 comments on commit ce788ca

Please # to comment.