Open-source software for the synchronization and control of multimedia installations.
Modular architecture, precise synchronization, and centralized management.
Website: stagelab.coop/formitgo
FormitGo plays back video, audio and DMX lighting cues in sync across several networked machines. It is built on the cuems suite (Cue Management System), developed by Stagelab for theater and live-entertainment technicians.
- Modular system. One machine acts as the main controller, while the others function as client nodes. The power needed to manage multimedia content is distributed across multiple devices, instead of relying on a single centralized machine.
- Precise synchronization. Network-transmitted timecode with a resolution of up to a quarter of a frame keeps every element of your installation in sync. If any slight mismatch occurs, the system automatically and continuously readjusts.
- Optimized installation. You only need one network cable to connect each node, so devices can be placed exactly where they are needed: next to the projector, screen, or sound equipment.
- Centralized management. FormitGo is managed through a web interface, from any device connected to your local network, whether via cable or WiFi.
- Simple installation. FormitGo is a plug-and-play system: a documented power-up and self-configuration protocol makes it adjust itself automatically just by being turned on in a specific way.
- International. The interface is available in Catalan, Spanish, and English.
Browser (any device on the local network)
| HTTP + WebSocket
v
Controller cuems-frontend · cuems-editor · cuems-engine
| network timecode (MTC over RTP-MIDI) + cluster bus
v
Nodes cuems-engine ─┬─ video → cuems-videocomposer
├─ audio → cuems-audioplayer (JACK)
├─ DMX → cuems-dmxplayer → OLA
└─ fades → gradient-motion-engine
The controller also works as a node, so a single machine can run a whole show.
| Repository | What it does |
|---|---|
| cuems-engine | Loads projects, generates the timecode and runs the cues on the controller and on every node. |
| cuems-editor | Back end of the web interface: multi-user project editing and media library. |
| cuems-frontend | Web interface for programming and running shows. |
| cuems-videocomposer | Multi-layer video compositor with hardware decoding. |
| cuems-audioplayer | Audio player for JACK. |
| cuems-dmxplayer | DMX lighting player with fades, output through OLA. |
| gradient-motion-engine | Timecode-driven fades and motion. |
| cuems-utils | Shared Python library: cue model, XML schemas, configuration. |
| cuems-common | System configuration, services, controller and node roles, WiFi access point. |
| cuems-midi-connector | Wires the MIDI timecode on every machine automatically. |
| cuems-nodeconf | Discovers and adopts nodes on the local network. |
| rtpmidid | Sends the timecode between machines over RTP-MIDI (fork). |
| Repository | What it does |
|---|---|
| libmtcmaster | MIDI Time Code generator. |
| mtcreceiver | MIDI Time Code receiver used by the players. |
| oscreceiver | OSC receiver used by the players. |
| cuems-mediadecoder | Shared FFmpeg decoding library. |
| cuemslogger | System log wrapper for the C++ components. |
| Repository | What it does |
|---|---|
| ola | DMX output (Open Lighting Architecture), with support for the Eurolite USB-DMX512 PRO MK2 interface. |
| jack-volume | Audio volume control on JACK, used by cuems-audioplayer. |
We also keep builds of jackd2 and libossia adapted to our systems, with no functional changes.
FormitGo is already functional and in use in live shows and installations, and it is under active development towards its first release (Release 1). There is no standard installation method yet. It will be documented here when Release 1 is published.
FormitGo runs on Debian 12 (bookworm), amd64. In the meantime, you are free to install it from the source code on GitHub and experiment with it: each component's README explains how to build it. Questions are welcome on Discord and in GitHub Discussions. For a ready-to-use installation, contact Stagelab at info@stagelab.coop.
Each repository documents itself in its README. Some also publish technical documentation on GitHub Pages: cuems-engine, cuems-editor, cuems-utils, cuems-videocomposer, cuems-nodeconf and gradient-motion-engine.
- Chat with users and developers on Discord.
- Ask questions and share ideas in GitHub Discussions.
- Report bugs in the issues of the repository concerned.
This project is licensed under the terms of the GNU General Public License v3.0 or later (GPL-3.0-or-later).
Being open-source software, FormitGo and the cuems suite do not depend on a single company: any group of developers can continue the project. Your infrastructure will never become obsolete or unsupported, and your equipment remains functional and versatile.
See the LICENSE file for the full license text.
This project is promoted by:
This project is funded by:

