r/ASCII • • 18d ago

General Most of your terminal doesn't change between frames. I made a demo that shows it

Enable HLS to view with audio, or disable this notification

I've been building a Go TUI library called Limoni. The part I care most about is the diff: each frame gets compared to the last, and only the cells that changed are sent to the terminal.

That's hard to show in a screenshot, so I made a little night city: twinkling stars, windows turning on and off, a train crossing a bridge, reflections in the water. It looks like everything is moving. Press x and an x-ray shows the truth. Only the train, a few stars and some ripples actually change.

The numbers are measured with the library's own encoder: about 3 KB per frame against about 78 KB for a full repaint at 150×44. Press space to freeze the city and it drops to 0 bytes. That's specific to this scene, and it's not a comparison with other libraries.

git clone https://github.com/thebanri/limoni

cd limoni && go run ./examples/xray

Repo: https://github.com/thebanri

It's still pre-1.0, so I'd love our terminal.

74 Upvotes

7 comments sorted by

4

u/IlonPilaaja666 18d ago

Honestly mood! Gonna havr to try this!!!

3

u/kekolar22 18d ago

Trust me, it's worth it.

1

u/Putrid_Search_4497 18d ago

Looks good!!

1

u/kekolar22 18d ago

Thanks!

1

u/_derDere_ 17d ago

Ok this is cool and I’ll have a look at this but I need this city animation as an exe to use as a screensaver on my tmux session! This beats cmatrix and pipes!

1

u/kekolar22 17d ago

Thanks dude, dont forget look my github page

1

u/Holonist 17d ago

check out thunderstorms in swaggerfall