This project represents my first steps into WASM. I've been tinkering in Rust for a while, and I wanted a more complex goal. This project's goals are to implement a reasonably efficient Mandelbrot Set renderer with interactive controls that targets both the desktop and web. Rendering to the screen and input are handled by the Pixels library. Since I've used this library before I used the minimal-web example as a starting point to avoid writing boilerplate. I'm using the Wikipedia article Plotting algorithms for the Mandelbrot set as my main reference for implementation hints and optimization strategies.
- Zoom in:
Left mouse click
- Zoom out:
Right mouse click
- Randomize color palatte:
P
- Basic bulb
- Color
- Zoom
- Retargeting
- Split render from screen drawing
- UI
- Preset or custom palettes
- Bookmarks
- Install Rust + Cargo.
- Clone the repo.
- Install dependencies:
cargo install --locked wasm-bindgen-cli just miniserve
cargo run --package visions_of_mandelbrot --bin visions_of_mandelbrot
just serve visions_of_mandelbrot
- Visit
http://localhost:8080/
in a web browser.