TheaterGWD Control Center – web-based OSC device manager for theater sensor hardware
Project description
annieData Control Center – TheaterGWD
The primary graphical interface for TheaterGWD sensor devices.
Built with Python. Runs in the browser. Designed for theater professionals.
Based on annieOSC — redesigned and rebuilt as a dedicated TheaterGWD control center.
Install
| Platform | Command |
|---|---|
| macOS (Homebrew) | brew install halfsohappy/theatergwd/gooey |
| Linux (snap) | sudo snap install gooey-theatergwd |
| Arch / Manjaro (AUR) | yay -S gooey-theatergwd |
| Any (pip) | pip install gooey-theatergwd |
Then run:
gooey
Your browser opens automatically at http://127.0.0.1:5000.
Full Installation Guide — all methods, all platforms, troubleshooting.
What's Different from annieOSC
| Issue in annieOSC | Fixed in Control Center |
|---|---|
Config strings split by spaces — commands like value:accelX, ip:192.168.1.50 broken into multiple args |
Config payloads sent as single string argument |
| Status/reply feed buried at bottom of TheaterGWD tab | Always-visible live feed panel on the right |
| Many commands missing (delete, clone, rename, move, solo, setAll, etc.) | Complete command coverage for all TheaterGWD operations |
| Generic OSC tool with TheaterGWD as an afterthought | Purpose-built for TheaterGWD with organized sections |
| Status config button sends empty payload (does nothing) | Proper status config form with IP, port, address fields |
| No structured input for clone/rename/move payloads | Dedicated forms with source/destination fields |
| Tab-based layout hides the feed when sending commands | Split-panel: controls left, live feed always visible |
Layout
The interface uses a split-panel layout:
- Left panel — Organized command sections (Dashboard, Messages, Scenes, Direct, Advanced, Reference)
- Right panel — Always-visible live activity feed showing all sent/received messages
- Top bar — Device connection settings and reply listener toggle
This enables operators to send commands and immediately see device replies without switching tabs.
Sections
Dashboard
Quick-access buttons for common operations:
- Blackout / Restore — Emergency stop and resume
- Save / Load — Persist to or restore from NVS
- NVS Clear — Factory reset OSC config
- List — Query messages, scenes, or everything (with verbose option)
- Status Config — Tell the device where to send status messages
Messages
Complete message management:
- Create/Update — Config builder with sensor value, target IP/port/address, bounds, scene assignment
- Actions — Info, Enable, Disable, Delete, Save for any named message
- Clone/Rename — Duplicate or rename messages
Scenes
Full scene control:
- Start/Stop/Delete — Lifecycle management
- Info/Save — Query details or persist individually
- Period/AdrMode/Override — Configure scene behavior
- Add/Remove/Solo/Move — Manage messages within scenes
- setAll — Apply config to all messages at once
- Clone/Rename — Duplicate or rename scenes
Direct
One-step setup with config builder — creates message + scene, links them, starts streaming.
Advanced
- Raw OSC Send — Send arbitrary OSC messages (single or repeated)
- JSON Batch — Send multiple messages from JSON
- Bridge — Forward messages between ports/hosts
Reference
Searchable documentation for all:
- Commands — Every OSC address pattern with description and expected payload
- Keywords — Plain-language definitions for all TheaterGWD concepts
- Config Keys — All key:value pairs accepted in config strings
- Address Modes — How scenes compose OSC addresses
Command-Line Options
gooey [OPTIONS]
Options:
--port PORT Web server port (default: 5000)
--host HOST Web server host (default: 127.0.0.1)
--no-browser Don't auto-open browser on startup
--debug Enable debug mode
Examples:
gooey # Default — opens browser at localhost:5000
gooey --port 8080 # Use a different port
gooey --host 0.0.0.0 # Allow access from other devices on the network
gooey --no-browser # Don't auto-open browser
Documentation
| Guide | Description |
|---|---|
| Installation | All install methods for every platform |
| Homebrew Guide | Homebrew-specific setup, updating, and troubleshooting |
| Quick Start | First-time walkthrough of the UI |
| Troubleshooting | Common issues and solutions |
| GUI Guide | Full annieData Control Center guide |
| OSC Guide | Controlling the device with raw OSC |
| Engineering Guide | Architecture and protocol details |
Tech Stack
| Component | Technology |
|---|---|
| Backend | Python 3 + Flask |
| Real-time | Flask-SocketIO (WebSocket) |
| OSC | python-osc |
| Frontend | Vanilla HTML / CSS / JS (no build step) |
License
MIT License — Same as TheaterGWD.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gooey_theatergwd-1.2.22.tar.gz.
File metadata
- Download URL: gooey_theatergwd-1.2.22.tar.gz
- Upload date:
- Size: 143.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3a299d3cb0330ba54a0ee95221030906f06565706d7289efc26547eeacc6652
|
|
| MD5 |
00882687e007f99a017700cc8696c04c
|
|
| BLAKE2b-256 |
e5135740f628ded379864988e5ff3b6f63bc6d4eea64116a72668b96eb471799
|
File details
Details for the file gooey_theatergwd-1.2.22-py3-none-any.whl.
File metadata
- Download URL: gooey_theatergwd-1.2.22-py3-none-any.whl
- Upload date:
- Size: 146.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
541155d2e31b61baf39e8fafd1dae6156a16862519fe2cf1240aa0e818fce728
|
|
| MD5 |
abaad9a8763287024472035ffe0f5518
|
|
| BLAKE2b-256 |
8e20f0f5123263f73f986e1c918671eb9307d5a55c32e2f2e759769497b102c9
|