Details and Options
RandomFractalArt starts with a random location near the border of the Mandelbrot set and zooms in a random amount. Then it applies two of several mapping functions to produce different layers. Each layer is randomly colored and has a style applied to it. The layers are combined with one of several combining functions. The combined image then may have symmetry transformations applied and/or bump added.
Renders can take up to 30 seconds for the default image size and longer for larger image sizes. Be patient.
ResourceFunction["RandomFractalArt"] will produce some images that are not visually interesting. Try again. Persistence pays off after a few tries.
ResourceFunction["RandomFractalArt"] takes the following options:
"ColorNudge" | 0. | offsets the hue of each layer (except layers with built-in color schemes) |
"CompileList" | {} | a list of the mapping functions that should be freshly compiled |
"ComplexNudge" | 0. + 0. i | offsets the fractal’s center |
"ImageSize" | {210,210} | sets the size of the final image |
"IncludeRandomSeed" | False | assigns a random seed useful for reproducing an image |
"OutputType" | "Image" | determines the kind of output |
"ZoomNudge" | 0. | offsets the zoom level |
The CompileList option contains a list of the mapping functions that should be freshly compiled. The default value is an empty list, which means that ResourceFunction["RandomFractalArt"] will use precompiled versions of all mapping functions. Include a mapping function in this list if you have altered the mapping function's code. Mapping functions in this list will be compiled for the target system of the current device.
The ImageSize option requires values in one of these forms:
{w,h} | a list of two integers for width and height |
n | a single integer equivalent to {n,n} |
Tiny | {105, 105} |
Small | {210, 210} |
Medium | {420, 420} |
Large | {840, 840} |
The value assigned to the "IncludeRandomSeed" option should have one of these forms:
True | a random integer from 1 to a trillion, which is reported in the dataset output, seeds the random generator, allowing the image to be reproduced |
False | no random seeding is done so the final image cannot be reproduced by RandomFractalArt |
n | an integer to serve as the random seed |
str | a string to serve as the random seed |
If the option "OutputType" is set to "Dataset", then instead of the fractal art image, the output of RandomFractalArt will be a dataset containing these items:
"image size" | the size of the image |
"random seed" | random seed used, if any |
"fractal's corner" | the upper left corner of the image as a complex number |
"fractal's center" | the center of the image as a complex number |
"complex nudge" | the optional offset amount applied to the fractal's location |
"zoom nudge" | the optional offset amount applied to the zoom level |
"color nudge" | the optional amount the hue was shifted |
"layer 1 zoom level" | the zoom factor of the first layer |
"layer 1 color function" | the color function of the first layer |
"layer 1 mapping function" | the mapping function used in the first layer |
"layer 1 original" | the image of the first layer without any style applied |
"layer 1 style" | the style applied to the first layer |
"layer 1 with style" | the image of the first layer with style applied |
"layer 2…" | the same data items for the second layer |
"blending operation" | the function used to combine the two layers |
"blended image" | the result of combining the two layers |
"symmetry applied" | what symmetry was applied, if any |
"image with symmetry" | the blended image with symmetry applied |
"bump applied" | the source of the bump map, if any |
"image with bump" | the final output of RandomFractalArt |
The "ComplexNudge" option takes a complex number. Small changes can make a great difference as many parameters are sensitive to the fractal’s center and corner coordinates. If you want fine control with this option, note the "fractal’s corner" data given in the dataset output option.
The "ZoomNudge" option takes a real number. Positive numbers zoom further in revealing more detail. Negative number zoom out.
The "ColorNudge" option only effects layer 1 and only when layer 1's color is not one of the built-in color schemes. "ColorNudge" takes a real number that offsets
h in
Hue[h,s,b] for each pixel. As hue is cyclical, only the fractional part of a value will make a difference.
The zoom levels of layer 1 and layer 2 only differ when the layers share the same mapping function.
The information in the dataset output is useful for tweaking the final fractal image, but it may not be sufficient for recreating it.
Images in the dataset output are twice the linear size of the final output. This allows for a smoother final render.