gitmyhub

BANDORI-PET-REV

Python ★ 290 updated 5h ago

BandoriPet 是一个基于 Live2D 和 PySide6 的开源桌面宠物项目,支持 50+ 位 BanG Dream! 角色、300+ 套服装,让你的桌面一秒变成 CiRCLE 排练室

Open-source desktop pet for Windows, macOS, and partial Linux that puts an animated BanG Dream character on your screen with Live2D rendering, LLM chat, voice, and an affection memory system.

PythonPySide6LuaJITLive2Dsetup: moderatecomplexity 3/5

BandoriPet is an open source desktop pet for Windows, macOS, and partially Linux. It puts an animated character from the Japanese mobile game BanG Dream on top of your screen, where she follows your mouse, reacts to clicks, and can chat with you. The README says the project ships with more than 51 characters from the game and over 300 outfits. The license notice up front is firm: the project is for learning and personal use, and the character models still belong to the original copyright holders.

The technology behind the pet has two parts. The visible character is a Live2D model rendered by an in-house engine the author wrote in LuaJIT. The README claims this engine is about six times faster than the older live2d-py library, taking the frame rate from around 30 frames per second to over 180. The window itself, the settings panel, and the menus are written in Python with PySide6 and the Fluent Widgets style library, so the look matches modern Windows applications. The window stays always-on-top and has no border, and a system tray icon lets you switch characters, open settings, or quit.

The chat side is where the project goes beyond a simple pet. Each character has her own system prompt for a large language model, and the app supports many model providers behind a single interface. The README also mentions Bing and Google search as built-in retrieval helpers. A separate Qwen3TTS backend can be installed to give the character a real voice with lip-sync animation. Audio reference files for 47 characters ship with the repo so the voice clone matches whichever character is talking. There is also a Webhook port that can receive messages from QQ, WeChat, Telegram, or Discord bots and forward them into the chat.

A memory and affection system tracks the relationship over time. The app records affection, trust, familiarity, and the character's current mood as numbers from zero to one hundred, and these values steer how the character replies. Special chat commands like @status, @remember, @forget, and @affection let you inspect or override these values. The character also pulls personal facts you mention in chat, such as your name or birthday, and stores them as memories you can review in the settings.

There is also an experimental Model Context Protocol layer that gives the character tools. With MCP enabled and the right permissions, she can read and write files in a project, control the mouse and keyboard, and take screenshots, which the README calls Computer Use. Setup is fairly involved. You clone the repo, download a model pack of around 900 megabytes or 4 gigabytes from one of several Chinese or Google Drive mirrors, install Python requirements, and run main.py. The project can also be packaged into a standalone executable with cx_Freeze, with model files downloaded separately into the models folder.

Where it fits