- Fully fledged Mandelbrot viewer, in your terminal
- Now compatible with the native Windows console!
- Julia sets
- Homemade terminal UI
- 8 color ANSI mode with dithering
- 256 color mode
- Parallelized using
multiprocessing
- Multiple palettes, adaptive mode
- Save and load capabilities
- Available in standalone, source compatible with Python 2 & 3
- Infinite fun from the comfort of your terminal
Just run:
$ pip install almonds
$ almonds
On non-Cygwin Windows, you will still have to install the unofficial curses
module (see From source)
Clone the repo:
$ git clone https://github.com/Tenchi2xh/Almonds.git
$ cd Almonds
On OS X, Linux and Cygwin:
$ pip install Pillow
$ python -m almonds.main
(For Cygwin, mintty
or babun
are recommended)
On Windows, download the curses
module from the Unofficial Windows Binaries for Python Extension Packages (a curses
implementation for Windows based on PDCurses), then run:
> pip install curses‑2.2‑cp27‑none‑win32.whl
> pip install Pillow
> python -m almonds.main
The font Envy Code R is highly recommended. If your terminal emulator supports it, try to reduce the line spacing so that the box drawing characters touch. When using another font, the appearance of the fractal may seem squashed because the width to height ratio of the character are different; try to adjust it using the argument --ratio
(see Usage).
Using PyPy will make the hi-res captures faster, but the terminal navigation slower.
██ ██ ██████ ██ .d8b. db db ██████████ d8' `8b 88 .88b d88. .d88b. .888b .d8888 .d8888 ██ ██████████████ 88ooo88 88 88 88 88 8P Y8 88 88 88 88 `8bo. ████████████████████ 88 88 88 88 88 88 8b d8 88 88 88 8D `Y8b ██ ██████████████ YP YP YP YP YP YP `Y88P' VP VP Y888D' `8888Y ██████████ ██ ██████ ██ T e r m i n a l f r a c t a l v i e w e r ██ usage: almonds [-h] [-p N] [-r RATIO | -d W H] [-z] [save] version 1.20b positional arguments: save path of a save to load optional arguments: -h, --help show this help message and exit -p N, --processes N number of concurrent processes -r RATIO, --char-ratio RATIO width to height ratio of the terminal characters -d W H, --dimensions W H width and height of the terminal characters -z, --qwertz swap the "z" and "y" keys
Keys | Action |
---|---|
↑, ↓, ←, → | Move around |
C, V | Adjust move speed |
⏎ | Input manual coordinates |
Y, U | Zoom / Un-zoom |
I, O | Increase / Decrase number of iterations |
J | Enter / Leave Julia set |
P | Next palette |
D | Color mode (256 colors / 8 colors ANSI / 8 colors ASCII) |
R | Reverse palette order |
A | Palette mode (Normal / Adaptive) |
Z | Launch palette cycling animation |
H | Capture current view in a high-resolution PNG file |
X | Show / Hide crosshairs |
T | Toggle UI theme (Dark / Light) |
S | Save all current settings and view |
L | Load a previous save |
ESC, CTRL+C | Exit |
Mandelbrot in your terminal, now in 256 colors!
Rendering a capture with the editor's light theme and 8-color dithered ANSI mode.
Almonds in Julia mode. The load menu sports a very sophisticated scrollbar.
Discovering a mini-brot. At this level of deep zoom, the adaptive palette mode is very handy.
Now running in native Windows terminals! (Notice the stretching because the default terminal font for windows is 8 by 12 pixels, try running with `-d 8 12` for a perfect display)
- Finish documenting
- Separate options in two tabs ?
- Press SPACE to hide log
- New project idea: full-fledged python module for making
cursebox
UI applications - PyPI package