Giter Site home page Giter Site logo

jortrr / mandelbrot Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 41.12 MB

Mandelbrot by Jort, Mandelbrot set viewer written in Rust

License: GNU General Public License v3.0

Rust 100.00%
mandelbrot-fractal mandelbrot-renderer mandelbrot-set mandelbrot-viewer rust mandelbrot fractal-images fractal-rendering fractals mandelbrot-explorer

mandelbrot's Introduction

Mandelbrot by Jort, Mandelbrot set viewer written in Rust

__  __                 _      _ _               _   
|  \/  |               | |    | | |             | |  
| \  / | __ _ _ __   __| | ___| | |__  _ __ ___ | |_ 
| |\/| |/ _` | '_ \ / _` |/ _ \ | '_ \| '__/ _ \| __|
| |  | | (_| | | | | (_| |  __/ | |_) | | | (_) | |_ 
|_|  |_|\__,_|_| |_|\__,_|\___|_|_.__/|_|  \___/ \__|
   __             __         __ 
  / /  __ __  __ / /__  ____/ /_
 / _ \/ // / / // / _ \/ __/ __/
/_.__/\_, /  \___/\___/_/  \__/ 
     /___/                      v1.4


Running

On Linux:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

2. Run Mandelbrot by Jort using cargo run in the root of the repository

cargo run --release

Usage

    
__  __                 _      _ _               _   
|  \/  |               | |    | | |             | |  
| \  / | __ _ _ __   __| | ___| | |__  _ __ ___ | |_ 
| |\/| |/ _` | '_ \ / _` |/ _ \ | '_ \| '__/ _ \| __|
| |  | | (_| | | | | (_| |  __/ | |_) | | | (_) | |_ 
|_|  |_|\__,_|_| |_|\__,_|\___|_|_.__/|_|  \___/ \__|
   __             __         __ 
  / /  __ __  __ / /__  ____/ /_
 / _ \/ // / / // / _ \/ __/ __/
/_.__/\_, /  \___/\___/_/  \__/ 
     /___/                      v1.4


Run Mandelbrot using:
	cargo run --release -- <width> <height> <max_iterations> <supersampling_amount> <window_scale>
where <arg> means substitute with the value of arg
use '-' to use the default value of arg

KeyBindings {
    Up -> Move up translation_amount pixels,
    Down -> Move down translation_amount pixels,
    Left -> Move left translation_amount pixels,
    Right -> Move right translation_amount pixels,
    R -> Reset the Mandelbrot set view to the starting view,
    NumPadPlus -> Increment translation_amount,
    NumPadMinus -> Decrement translation amount,
    NumPadAsterisk -> Increment scale_numerator,
    NumPadSlash -> Decrement scale_numerator,
    LeftBracket -> Scale the view by scaling_factor, effectively zooming in,
    RightBracket -> Scale the view by inverse_scaling_factor, effectively zooming out,
    V -> Prints the current Mandelbrot set view; the center and scale,
    Key1 -> Renders VIEW_1,
    Key2 -> Renders VIEW_2,
    Key3 -> Renders VIEW_3,
    Key4 -> Renders VIEW_4,
    Key5 -> Renders VIEW_5,
    Key6 -> Renders VIEW_6,
    Key7 -> Renders VIEW_7,
    Key8 -> Renders VIEW_8,
    Key9 -> Renders VIEW_9,
    Key0 -> Renders VIEW_0,
    K -> Prints the keybindings,
    S -> Saves the current Mandelbrot set view as an image in the saved folder,
    I -> Manually input a Mandelbrot set view,
    A -> Pick an algorithm to color the Mandelbrot set view,
    M -> Change the Mandelbrot set view max_iterations,
    O -> Change the Mandelbrot set view color channel mapping, xyz -> RGB, where x,y,z ∈ {{'R','G','B'}} (case-insensitive),
    Q -> Change the window and image quality of the Mandelbrot set rendering by setting the SSAA multiplier, clamped from 1x to 64x,
    X -> Change the image quality of the Mandelbrot set rendering by setting the SSAA multiplier, clamped from 1x to 64x,
    C -> Prints the configuration variables,
}

Controls

Keys Action
, , , Move up, down, left, or right
R Reset the Mandelbrot set view to the starting view
[ Zoom in
] Zoom out
V Prints the current Mandelbrot set view; the center and scale
0, ..., 9 Render a preconfigured view
K Print the keybindings
S Saves the current Mandelbrot set view as an image
I Manually input a Mandelbrot set view
A Pick an algorithm to color the Mandelbrot set view
M Change the Mandelbrot set view max_iterations
O Change the Mandelbrot set view color channel mapping
Q Change the window and image quality of the Mandelbrot set rendering by setting the SSAA multiplier
X Change the image quality of the Mandelbrot set rendering by setting the SSAA multiplier
ESC, CTRL+C Exit

Wallpapers

3440x1440

2023-06-26_12-48-59 189737_UTC 2023-06-26_12-35-03 632016400_UTC 2023-06-26_15-36-32 408135800_UTC 2023-06-26_15-25-34 763976800_UTC 2023-06-26_12-56-26 498671100_UTC 2023-06-26_08-54-45 849997300_UTC

2560x1600

2023-06-24 18:50:23 842186828 UTC 2023-06-29_11-45-50 778868321_UTC 2023-06-29_11-46-06 821888383_UTC 2023-06-29_11-48-21 628194507_UTC 2023-07-01_15-51-57 214248342_UTC

1170x2532 (Iphone 13)

2023-06-24 19:29:53 436765840 UTC

Benchmarks

mandelbrot's People

Contributors

jortrr avatar

Stargazers

 avatar  avatar

Watchers

 avatar

mandelbrot's Issues

Erroneous Repository Naming: The Egregious "Mandelbrot"

Issue at hand

It has come to my attention that your sense of accuracy seems to be, for lack of a better term, lacking. I am frankly astounded by the fact that the repository name is a glaring misnomer. One would expect a repository dedicated to fractals, of all things, to exhibit a level of precision.

The term "Mandelbrot," while steeped in mathematical history, fails to capture the essence of this project in all its entirety. The name suggests a narrow focus on a single fractal set, a focus that is not reflected in the broad spectrum of work being done here.

Now, I understand that the common person might not recognize the difference. But, for those of us truly dedicated to the art of fractals, it is an affront. This error, as innocuous as it may seem to the untrained eye, is equivalent to calling a square a rectangle. While technically true, it is not the most precise classification.

Proposed changes

To rectify this unacceptable blunder, I propose a change of the repository's name to "Mandeljort". Which would be considerably better as it humorously reflects both your username and the original Mandelbrot set.

I expect this issue to be taken with the utmost seriousness and I await prompt action.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.