
tbonsai
Ansipixels based reinterpretation of cbonsai (without looking at that program's source)
Using -leaves and regular terminal half block resolution

Same with -kitty using the Kitty Image protocol for high resolution image directly in the terminal background:

With optional -pot and -lines only and random colors:

You can also save high resolution images, for instance
tbonsai -trunk-width 6.25 -depth 7 -seed 42 -trunk-height 35 -save out80_7_35_mono.png
Produces

Use -kitty to see the high resolution image in your terminal that supports the Kitty Image protocol (kitty, ghostty, etc...)
Install
You can get the binary from releases
Or just run
CGO_ENABLED=0 go install fortio.org/tbonsai@latest # to install (in ~/go/bin typically) or just
CGO_ENABLED=0 go run fortio.org/tbonsai@latest # to run without install
or
brew install fortio/tap/tbonsai
or
docker run -ti fortio/tbonsai
Usage
Use -leaves to show leaves (winter tree otherwise)
Use -pot to show the pot for instance,
Use -auto 1s for a new tree every 1s without needing to press "T"
Use -rainbow for rainbow colors.
Use -exit and optionally redirect stdout (eg tbonsai -exit > tree.ansi) to render immediately one tree and exit without putting the terminal in raw mode.
Etc,... See help for other flags/options
tbonsai help
tbonsai 1.0.0 usage:
tbonsai [flags]
or 1 of the special arguments
tbonsai {help|envhelp|version|buildinfo}
flags:
-auto interval
If >0, automatically redraw a new tree at this interval and no user input is needed
-color hex color
Trunk base color as hex color (default with leaves: #654321 dark brown, branches gradually lighten with depth).
-depth int
Tree depth (number of branch levels) (default 6)
-exit
Exit immediately after drawing the tree once and saving ansi/kitty image if applicable
-fps float
Frames per second (ansipixels rendering) (default 60)
-height int
Height of the generated tree image when using Kitty mode or saving to PNG (default 720)
-kitty
Use Kitty graphics protocol for high-res images (resizable, regeneratable)
-leaf-size float
Leaf size multiplier (default 1)
-leaves
Draw leaves at branch endpoints
-lines
Use simple line drawing instead of polygon mode (default is polygon)
-pot
Draw the pot
-rainbow
Use random colors for each branch instead of depth-based brown gradient
-save file name
If set to a file name, saves one generated tree as a PNG image to that file and exits
-seed uint
Seed for random number generation. 0 means different random each run
-spread float
Branch angle spread multiplier (< 1.0 narrower, > 1.0 wider) (default 1)
-truecolor
Use true color (24-bit RGB) instead of 8-bit ANSI colors (default is true if COLORTERM is set)
-trunk-height percentage
Trunk height as percentage of available height (default 35)
-trunk-width percentage
Starting width of the trunk as percentage of image width (default 7)
-width int
Width of the generated tree image when using Kitty mode or saving to PNG (default 1280)