Coune Labworks Birthday Interactive TouchDesigner Installation
A local-first birthday greeting installation that lets visitors scan a QR code, submit a message and photo from mobile, and pushes composed cards into a TouchDesigner visual pool via OSC with HTTP polling fallback.
- Role
- Developer · Web Backend & TouchDesigner Integration
- Timeframe
- Jun 2026
- Domain
- Interactive Installation
- Status
- active
- Display Pool
- 20 slots
- Canvas
- 1920×1080
- Transport
- OSC + HTTP
Overview
This installation is a local-first birthday greeting system built for an event environment, where visitors submit names, messages, and photos from their phones through a QR-linked web form.
The backend stores submissions locally, composes 16:9 display cards, and streams them into TouchDesigner, which renders the event canvas and maintains a fixed visual pool.
The Challenge
The core problem was coordinating browser submissions, image storage, card composition, and real-time visual output without making the event stack fragile or dependent on a cloud backend.
Approach
- 01Built the backend as a Flask application served with Waitress for long-running event deployment.
- 02Validated submissions, stored raw photos and composed cards atomically, and persisted metadata in a local JSON database.
- 03Integrated OSC delivery to TouchDesigner with HTTP polling as a fallback path.
- 04Designed the TouchDesigner side around a fixed 20-slot spawner framework, preview canvas, and operator controls.
Outcomes
- Delivered a fully local event submission flow from QR scan to visual display.
- Supported stable photo-plus-message rendering on a controlled 1920×1080 canvas.
- Kept the system operational even if OSC delivery fails, thanks to polling fallback.
Stack
Backend
- Python
- Flask
- Waitress
- JSON persistence
Frontend
- HTML
- CSS
- JavaScript
- Mobile form
Visuals
- TouchDesigner
- OSC
- Spawner framework