Overview
LilDude Avatar is a transparent, mic-reactive 3D "lil dude" you can put on stream. It runs two ways: as an OBS browser-source overlay, or as a floating always-on-top desktop window. A separate control panel drives emotes and live tuning while the avatar reacts to your microphone and to your Twitch chat.
Hub-and-spoke architecture
At the center is a FastAPI hub running on localhost port 8765 that brokers WebSocket messages between three clients: the overlay (a three.js renderer that draws the .glb avatar), the control panel (plain HTML/JS), and the desktop app. Because everything talks over WebSockets through one hub, the control panel can drive the avatar identically whether it is embedded in OBS or floating on the desktop.
Microphone levels are captured with sounddevice and streamed to the renderer to drive the avatar's mouth and motion. Twitch chat integration is handled with a vendored copy of tmi.js so chat events can trigger reactions.
Two deployment modes, one codebase
The desktop version wraps the same web overlay in a PySide6 / QtWebEngine window, so streamers who do not use OBS browser sources still get the avatar. A PyInstaller spec builds a self-contained Windows .exe, so the whole thing can be handed to a non-technical user as a single download rather than a Python environment to set up.
Status
The hub, overlay, control panel, desktop window, and Twitch integration all work. Ongoing work is on the emote system, avatar tuning, and packaging polish.