https://github.com/keyan/mandelbrot
Interactive Mandelbrot set visualizer
https://github.com/keyan/mandelbrot
ebiten mandelbrot visualizer
Last synced: 7 months ago
JSON representation
Interactive Mandelbrot set visualizer
- Host: GitHub
- URL: https://github.com/keyan/mandelbrot
- Owner: keyan
- License: mit
- Created: 2020-12-15T22:33:53.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-12-16T18:01:43.000Z (almost 5 years ago)
- Last Synced: 2025-03-19T03:05:55.085Z (7 months ago)
- Topics: ebiten, mandelbrot, visualizer
- Language: Go
- Homepage:
- Size: 16.6 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mandelbrot
Interactive Mandelbrot set visualizer.
Uses the [ebiten][3] game library to run an interactive window. To allow rendering in realtime with user input, some approximation is used to skip computations for some pixels, leading to frames improving in appearance as user input stops and re-rendering happens.
A still frame from the visualizer:
Here is what the program looks like when used interactively, keep in mind the quality here is poor due to the low gif framerate and additional compression:
## Usage
A live demo is available, but the performance in a browser is ~10X worse than running directly on a computer, also give it a few seconds to load: https://keyanp.com/mandelbrot/index.html
To build and run from source:
```
make
```If you are on MacOSX there is a [precompiled binary on GitHub][release] you can run:
```
./mandelbrot
```Controls are explained when the window first loads, but for completeness:
```
Arrow keys to move
I to zoom In
O to zoom Out
R to reset view
Escape to exit
```## Resources
I found the youtube channel [fractalmath][1] to be helpful for better understanding complex plane dynamics. Lode Vandevenne also has a useful [tutorial][2] as well, but as with most of his articles it can be tough to follow. The ebiten [examples page][4] was invaluable in quickly using that library for the graphical/interactive portions.
[1]: https://www.youtube.com/channel/UCJ1i1TGHljQ6ETPgptchOZg
[2]: https://lodev.org/cgtutor/juliamandelbrot.html
[3]: https://ebiten.org/
[4]: https://ebiten.org/examples
[release]: https://github.com/keyan/mandelbrot/releases/download/v1.0/mandelbrot.zip