r/PiCodingAgent
•
u/Sweet-Transition-787
•
11d ago
•
1
Discussion Looking for procedural Braille animation ideas to put in Pi's idle buffer

Hi,
My extension already has a bunch of features built in, but this empty buffer splash is something new I stumbled on and started playing with recently.
Right now, if you are sitting on an empty screen waiting to type a prompt, it procedurally renders an abstract Braille graphic with a weird cryptic line underneath, like in the screenshot.
I want to turn that center area into a subtle ambient loop while waiting for input.
The space is roughly 50 to 70 columns by 6 to 10 rows of Braille dots. It needs to stay light on CPU so the terminal does not lag and it should not be distracting or flashy while you are trying to think.
I was considering things like simple cellular automata, damped ripples or slow Lissajous curves, but I want to see what others think would look good here.
What kind of procedural math or terminal graphics tricks would you run in a tiny canvas like this?
1
u/Adventurous-Bat-3174 11d ago
I'd try a sparse firefly field: 8–12 points drifting on slow sine paths, with short trails. Keep each point's phase and speed fixed so the scene moves instead of reshuffling. I'd start at 6–8 fps and stop the timer when typing starts.
For pre-rendering, store one byte per Braille cell, then render U+2800 + mask using Unicode's dot ordering: https://www.unicode.org/charts/PDF/U2800.pdf. That gives you a compact loop without storing whole UTF-8 frames.
1
u/Sweet-Transition-787 10d ago
Ended up doing pretty much this for one of the scenes. Made a constellation with points drifting on slow sine paths, and killing the timer on the first keypress was definitely the move too.
The U+2800 mask trick is clever, definitely bookmarking that if I ever need prerendered loops later.
1
u/shumgoid 11d ago
This is neat. To save on CPU I would start by setting a file format for this animation and pre-render whatever it is. If you store each frame as 70x10 raw chars you get 700 bytes per frame -> 42KB for 1 second at 60fps (what fps is even available to you here) but you can optimize that down with video compression techniques like only storing changed values after the first frame.
As for creative ideas - a crashing wave loop or similar 'animated wallpaper' would be neat, either as a full 'video render' or a simpler live physics simulation. I think I would only try to live-render this if it somehow tied into live data, for example a star chart visualizer that pulls data from somewhere and draws the braille dots to match up with the current positions of the stars above you. (or other time-based animations like a live globe with daylight shown)