Mr. Pumpkin
Animate the darkness, project your face
An animated 2D pumpkin face that responds to network commands in real time. Designed for projection mapping onto 3D surfaces — pure black-and-white contrast, 7 expressions, dual TCP/WebSocket control, and an AI recording skill.
Screenshot / demo GIF will appear here
About Mr. Pumpkin
Mr. Pumpkin is an animated 2D pumpkin face that can be controlled remotely via TCP or WebSocket commands. Designed for projection mapping onto 3D surfaces, it renders expressive faces using high-contrast black-and-white graphics optimized for real-world projection scenarios.
What’s New
What’s New / Changelog
Full release history — every version’s added features, fixes, and changes.
User Guides
Getting Started: Installation
How to install Mr. Pumpkin and set it up to run automatically as a system service on Linux (systemd) or Windows (Task Scheduler/NSSM).
Keeping Mr. Pumpkin Updated
Automated update scripts for keeping your Mr. Pumpkin installation current with the latest releases from GitHub.
Building a Client
Developer guide for creating client applications that send commands to Mr. Pumpkin via TCP (port 5000) or WebSocket (port 5001).
Recording Skill
Describe an animation in plain English and have it automatically generated and uploaded to your pumpkin server using an LLM (Google Gemini).
Timeline JSON Schema
Reference for the timeline JSON format: top-level structure, full command vocabulary, timing guidelines, and validation rules.
Behind the Scenes
Development Story
How Mr. Pumpkin was built using Brady Gaster’s Squad agentic coding solution — meet the AI team (cast from the Arcane universe) that designed, built, and tested this project.
Quick Start
Once installed, run Mr. Pumpkin with:
# Fullscreen on default monitor (projection mapping)
python pumpkin_face.py
# Windowed mode (testing)
python pumpkin_face.py --window
# Fullscreen on specific monitor (multi-display setups)
python pumpkin_face.py 1
Send commands via TCP on port 5000 or WebSocket on port 5001. See the client guide for examples.
Press ESC to exit.