All Projects → rust-fractal → rust-fractal-core

rust-fractal / rust-fractal-core

Licence: GPL-3.0 License
Mandelbrot fractal visualizer featuring perturbation based iteration methods, series approximation and multithreading.

Programming Languages

rust
11053 projects
python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to rust-fractal-core

tripbot9000
Procedural generation of geometric patterns and fractals.
Stars: ✭ 22 (+4.76%)
Mutual labels:  mandelbrot
fraqtive
Generator of the Mandelbrot family fractals.
Stars: ✭ 21 (+0%)
Mutual labels:  mandelbrot
xirho
xirho is a simple generalized iterated function system plotter.
Stars: ✭ 16 (-23.81%)
Mutual labels:  fractal-rendering
Fatou.jl
Fatou sets in Julia (Fractals, Newton basins, Mandelbrot)
Stars: ✭ 92 (+338.1%)
Mutual labels:  mandelbrot
mandelbrot-threaded-webassembly
A simple demonstration of WebAssembly threads
Stars: ✭ 41 (+95.24%)
Mutual labels:  mandelbrot
mandelbrot
A mandelbrot fractal viewer in javascript using svelte
Stars: ✭ 30 (+42.86%)
Mutual labels:  fractal-rendering
wasabi
A Buddhabrot explorer based on wabisabi, but with a more affectionate name.
Stars: ✭ 17 (-19.05%)
Mutual labels:  mandelbrot
Mandelbrot-set-explorer
An interactive Mandelbrot set, made with Python3 and Tkinter
Stars: ✭ 31 (+47.62%)
Mutual labels:  mandelbrot
Multifractal-Model-of-Asset-Returns-MMAR-for-Thesis
I wrote a Master's in Finance thesis on Monte Carlo simulation of the Multifractal Model of Asset Returns. This is a model developed in the late 1990's by Benoît Mandelbrot and his two students, Laurent Calvet and Adlai Fisher. I had never programmed before and this was my first big coding project — so sorry if the code sucks! I did what I could :)
Stars: ✭ 29 (+38.1%)
Mutual labels:  mandelbrot
bbmandelbrotGo
generate images of a mandelbrot fractal
Stars: ✭ 19 (-9.52%)
Mutual labels:  mandelbrot
Creepycodecollection
A Nonsense Collection of Disgusting Codes
Stars: ✭ 2,206 (+10404.76%)
Mutual labels:  mandelbrot
mandelbrot
No description or website provided.
Stars: ✭ 36 (+71.43%)
Mutual labels:  mandelbrot

image

rust-fractal-core

Repository License Repository Size Github Release

A mandelbrot fractal renderer implementing both perturbation and series approximation. A reference point is iterated at high-precision, arbitrary precision and differences from this are calculated in machine precision. This allows for a large reduction in computation required to render and image, especially at high zoom levels. This generator features:

  • Perturbation based iteration with glitch detection.
  • Glitch correction through automatic reference movement and recalculation.
  • Series approximation calculation to skip (and approximate) large amounts of perturbation iterations.
  • Probe based method to determine series approximation skip.
  • Multithreading of core loops through rayon.
  • Configurable location and rendering options.
  • Multiple save formats including PNG, EXR and KFR.
  • Utilises scaling and mantissa-exponent based extended precision to allow for arbitrary zoom, whilst maintaining good performance. Verified to be working at depths exceeding E50000. Theoretically, this is only limited by MPFR's precision.

Compiling

You need to be able to compile the 'rug' crate which requires a rust GNU toolchain. A nightly toolchain is also required. Look in the documentation for rug for more information on how to do this. Once all required dependencies have been installed, build the crate with:

cargo build --release

Usage

Information on the flags which can be passed to the rendered can be found with the command rust-fractal --help. The renderer takes .toml files as input. There are two seperate files which can be defined to render an image, the options file and the location file. Settings in these files can be changed in order to change the output of the program. By default, there are 3 options files provided, which are:

  • low.toml: low quality settings for fast rendering and preview.
  • default.toml: settings that are used by default if no config file is provided.
  • high.toml: higher quality settings for final rendering.

Location files contain information on the specific location to be rendered, including the location, zoom level and rotation. Some examples of these files are stored in the ./locations directory. A typical call to the renderer would then look like:

  • Linux: rust-fractal -o default.toml locations/flake.toml
  • Windows: rust-fractal.exe -o default.toml locations/flake.toml

Output images are placed in the ./output folder.

Acknowledgements

  • claude (blog, Kalles Fraktaler 2+)
  • pauldelbrot (glitch detection, nanoscope)
  • knighty (superMB)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].