Skip to content

Commit

Permalink
added readme and extra files
Browse files Browse the repository at this point in the history
  • Loading branch information
jackyarndley committed Nov 19, 2020
1 parent 5a48701 commit 96ad5a5
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 15 deletions.
18 changes: 9 additions & 9 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[package]
name = "gui_test"
name = "rust_fractal_gui"
version = "0.1.0"
authors = ["jackyarndley <[email protected]>"]
edition = "2018"
Expand Down
36 changes: 36 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
![image](render.png)

# rust-fractal-gui
A GUI frontend for the rust-fractal library. rust-fractal is 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. 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
Double click the executable. The file `start.toml` must be in the same directory so that the program is able to get the initial renderer settings. Some shortcuts are:

- `LCLICK` zoom in to mouse location
- `RCLICK` zoom out from center
- `Z` quick zoom into center
- `D` toggle rendering mode
- `O` open file
- `T` half rendering resolution
- `Y` double rendering resolution
- `N` native rendering resolution
- `R` rotate 15 degrees clockwise

## Acknowledgements
- claude (blog, Kalles Fraktaler 2+)
- pauldelbrot (glitch detection, nanoscope)
- knighty (superMB)
Binary file removed gui_test.exe
Binary file not shown.
4 changes: 0 additions & 4 deletions palette_default.toml

This file was deleted.

Binary file added render.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -640,7 +640,7 @@ pub fn main() {
settings.merge(File::with_name("start.toml")).unwrap();

let window = WindowDesc::new(ui::ui_builder).title(
LocalizedString::new("rust-fractal"),
LocalizedString::new("rust-fractal-gui"),
).window_size((1280.0, 720.0)).resizable(true);

AppLauncher::with_window(window)
Expand Down

0 comments on commit 96ad5a5

Please sign in to comment.