https://nick-black.com/dankwiki/index.php/Hack_on
Notcurses had already gone past this with its Quadblitter, making use of Unicode 3.2's quadrant blocks to map 2x2 pixels to a terminal cell. With the advent of Unicode 13's Legacy Computing Symbols (and rollout of font support for them), a powerful new symmetric blitting method is made available, mapping 3 rows of 2 columns each to a single cell. This blitter is available as NCBLIT_3x2 in the upcoming Notcurses 2.0.3. I was worried that color loss would be more of a problem, but it ended up looking great!
The following images are rendered using all four blitters:
https://nick-black.com/images/worldmap-sexblitter.png (left to right: S, Q, H, ASCII)
https://nick-black.com/images/sexblitter-perfection.png (clockwise from upper left: ASCII, H, Q, S)
The algorithm is described here: https://github.com/dankamongmen/notcurses/issues/1086
code here: https://github.com/dankamongmen/notcurses/blob/master/src/lib/blit.c
notcurses: https://nick-black.com/dankwiki/index.php?title=Notcurses
hype video: https://www.youtube.com/watch?v=cYhZ7myXyyg
enjoy! hack on!
1.1.0 demo: https://www.youtube.com/watch?v=-H1WkopWJNM
github: https://github.com/dankamongmen/notcurses
wiki: https://nick-black.com/dankwiki/index.php/Notcurses
notcurses is an obvious intellectual descendant of NCURSES, which Thomas E. Dickey has masterfully developed and maintained for decades. notcurses breaks away from the prelapsarian X/Open Curses API, but its interface will be quite familiar to experienced NCURSES programmers. For new TUI developers, I hope that notcurses has fewer gotchas than NCURSES. notcurses supports 24-bit DirectColor RGB as its primary color specification (though palette indexed color is also supported, for its bandwidth benefits).
Almost anything you can do in NCURSES can be done in notcurses, though a few things (most especially menus) must currently be handrolled. In addition, there's rich support for various types of transparency/color blending, image rendering, fades, giant virtual planes, z-axis depths of thousands of planes, and other good stuff.
Experimental Python wrappers are included in this release. I hope to cut C++ and Rust wrappers soon.
Please take a look, and give the demo a local run if you've the time. Feedback and/or bug reports would both be invaluable.
If you'd like to see a real app using notcurses, my growlight tool has been adapted to it:
https://github.com/dankamongmen/growlight
This was several thousand lines of NCURSES UI code. Switching it to notcurses was a generally painless procedure of a few hours.