Skip to content
Thrivbe
← All experiments
In progressStarted October 18, 2026Updated October 31, 2026

Can one small web panel open, switch, project and record TouchDesigner pieces, so the show runs from a phone instead of the TouchDesigner editor?

Touch Control: One Web Panel to Run a Room Full of TouchDesigner Pieces

In progress, and working daily. Touch Control is a web panel that runs on the Mac on its own, stays up when TouchDesigner closes, and opens any piece from a searchable library. It switches Looks, sends a chosen piece to the projector, shares one camera across every piece and records preview clips in a batch.

  • TouchDesigner
  • Python
  • Tailscale

Relevant services: Thrivbe AI

Hypothesis

Running generative art live means juggling files in the TouchDesigner editor: open a piece, find its controls, pick a picture for the projector, hope the camera still works. If one browser panel can do all of that, the editor can stay out of sight and the show can run from a phone. A new piece should then cost a short recipe, not new controls.

What we built

  • A launcher that outlives TouchDesigner. Touch Control runs on the Mac as its own background service. It serves the panel, starts or switches allow-listed TouchDesigner files, and stays open when TouchDesigner closes. Switching a file shows its progress: Saving, Closing, Starting, Connecting.
  • A library of every piece. A side menu merges a curated catalog with a scan of every TouchDesigner file in the repo, sorted into six searchable groups such as Projects, Community and VJ packs. Rows play a short video preview while visible, and each piece has a detail view with its notes.
  • Looks as big tiles. A Look is a saved set of a piece's controls. The panel shows them as large tiles with a still picture of each, and tapping the lit tile again re-applies it. Short menus become one-tap buttons, and the panel reads TouchDesigner twice a second so changes made in the editor show up on the phone.
  • An "On air" projector picture. Every piece gets one final output. The panel marks which piece is on the projector and asks for two taps to send a different one, so a stray tap does not switch the show.
  • One shared camera. A single camera node owns the only video device, and every piece reads from it. It can be a webcam, a capture source, a phone camera over Tailscale, or a saved video clip. A top bar sets Mic, Camera and output shape (9:16, 16:9, 1:1, 4:5) for all pieces at once.
  • A batch clip recorder. It opens each piece with saving off, records a short clip from its final output, and saves an H.264 video next to the file. It stops when machine load stays high for five minutes or free disk falls below 10 GB.
  • Locked down by default. The panel only listens on the Mac itself; phones reach it through Tailscale. Write requests need a custom header and a matching origin, files resolve only through the library, only custom controls are exposed, and the client can never send code to TouchDesigner.

Learnings

  • The launcher has to live outside TouchDesigner. A panel served from inside a file dies when that file closes. Moving it out made switching between pieces possible at all.
  • One camera owner beats one camera per piece. With a single shared camera node that power saving never pauses, one project can no longer freeze the camera for the others.
  • Reproduce the manual fix in code. The projector sometimes stayed on after a switch but showed nothing, and turning it off and on fixed it. Touch Control now does exactly that after every open while the projector is on.
  • Do not trust a fixed wait. The clip recorder used to sleep for a set time after recording. It now polls for up to 60 seconds and needs two equal file sizes and a real duration before it converts the clip.
  • File names drift. TouchDesigner reports save copies with numbered and .mcp suffixes, so the recorder now strips those before matching, and the file must still be in the same folder.
  • Code built blind still needs a live run. Most changes were written on a machine without TouchDesigner, and the code checks passed. Each one was then run live on the real piece before it merged, and those runs caught real bugs that the code checks missed: camera settings that do not exist, a projector output wired to the wrong kind of node, and one Look that blew the picture out.
  • Test the fix the way the bug was seen. A layout fix can pass every check and still look wrong. The Settings close bar fix was only judged right after a screenshot with every row shown, scrolled to the middle and to the end, at phone and laptop size.

Log

  • 2026-10-31: Twelve pull requests merged. A Settings sheet now holds the show controls, with a Tempo slider that sets motion speed for every piece (checked live on Warp: double Tempo, double travel speed). Opening a piece that has no preview clip records one about 30 seconds later. The phone camera reloads itself when its picture goes stale. Three new pieces joined the library: Warp (a hyperspace tunnel with a black-hole Look), Airport Words (30,000 tiny plane icons that fly into words like a departures board) and the Vision Quest title loop (dust gathers into the word, holds, and breaks back into dust). The first fix for the Settings close bar passed its own checks but made the bar float above the bottom edge; a screenshot with every row shown caught it before it merged.
  • 2026-10-30: Ten pull requests merged in one afternoon. Saved video clips can now feed the shared camera. Touch Control gives every piece a projector output when it opens a file, and setup errors are logged instead of blocking the open. The projector window reopens after each open (checked live). Looks were added to seven pieces: Metallic Chaos, Organic Trails, Murmuration, Video Particles, Wire Garden, AI Orchid Point Cloud and Five Ways to Make Particles. Vision Quest was held back because one of its controls is not wired. The clip recorder got its name and wait fixes. A live run of Five Ways to Make Particles found that each method has its own enhancer, and that the instancing method was the slowest. Earlier the same day: phone mode over Tailscale, the phone camera, install as a phone app, video previews in the library, a still picture per Look, and the batch clip recorder.
  • 2026-10-29: Touch Control became its own service: launcher, every file in the repo, clips and a new layout.
  • 2026-10-25: Added the shared top bar (Format, Mic, Camera) and the shared inputs kit, built for the cabin trip pieces.
  • 2026-10-18: First version: a piece library side menu in the dashboard, a community group, and a detail view with notes. Named Touch Control.

Talk to Thrivbe AI