A gif viewer that selects a random gif to play from a folder of gifs, renders it to an rgbmatrix display, and continues selecting random gifs until all are played, then starts all over again. Designed to run without a network connection.
Also includes a Tenor gif downloader designed to grab uma gifs for this project.
Built for Anime Central 2026.
Note
This setup can be used for other kinds of gif collections. This just happens to be Umamusume themed.
Important
Most of this code was rushed, but works (it's still in the v.0 stage).
Expect more refinements/cleanups at some point (if I ever get around to it).
(Note: No LLMs were involved in this project.)
This project assumes you're familiar with rgbmatrix displays and have a Raspberry Pi on hand.
These scripts are not designed for any other setups (Arduino, ESP32, RP2040, etc.)
For linux systems, this project assumes Debian. (systemd + apt + bash)
Note: You can also run this without a Raspberry Pi and on a normal computer, see below.
- Clone this repo:
git clone --depth=1 https://github.com/WeegeeNumbuh1/MamboMonitor
cd MamboMonitor- Add URLs to
links.txt. - Run the install script
install.shto install the required python packages and install the startup service. - Run
main_downloader.pyintoolsto download Umamusume gifs from Tenor if you don't have any already. - Edit
config.yamlto match your existing rgbmatrix setup.- The defaults are based on my personal config (2x 64x32 displays in V-Mapper:Z orientation)
- Run the main script,
MatikanetannhauserMain.py:
python MatikanetannhauserMain.py img_src
# or, provide a path to your desired gif collection
# e.g. python MatikanetannhauserMain.py /username/memesIf you wish to uninstall, use the uninstall.sh script (coming soon™).
to-do
Expand/Collapse
All of this repo was coded in VSCode on Windows before actually using real hardware, so if it can run there, you can run it on your setup as well.
Simply take a peek at the python packages required in the setup script install.sh, install them on your setup, and everything should run as expected. (The rest is left as an exercise for the reader).
Most of the code was adapted from my other project, FlightGazer.
Questions? Contact me or file an issue with this repo.
(clicking the above gif will link to the video)
(art by @chigyudoomer on Twitter)
(to be decided)

