As much of my work at DLAB, the DIRECTV innovation lab, was tied to the tv watching experience, I decided to work on way to actually control a DIRECTV Genie set-top box and other hardware from within Touchdesigner, which was my tool of choice for prototyping experiences.
Leveraging an HTTP based control language called SHEF (Set-top box HTTP Exported Functionality) that was built into DIRECTV hardware, I built a virtual controller that could manage any network connected Genie box on the LAN. By building the controller in Touchdesigner, I could take advantage of the framework to easily tie together other hardware and software to prototype experiences quickly, adding this to a list of plug and play modules for my innovation platform, adding control for real devices and the company’s hardware.
SHEF is a simple system that allows a 3rd party device to send HTTP commands and receive JSON data from the set-top box. I created the data interface inside of Touchdesigner with a few Python scripts, and built a virtual remote that matched the functionality of the real thing. I added the ability to scan the network and populate a list of buttons that allowed me to switch control to any connected set-top boxes. I also added a simple macro function, so I could easily string together commands.
Next I built an IR scanner and sender using an Arduino to control any hardware that was not network connected, like the television or receiver, that could learn the IR codes from their own remotes and send those commands when required.
And by adding this functionality to Heart of the Home, I could now use gestures to control real devices.
Touchdesigner had become an integral part of how I would prototype many of our more interesting concepts. I could quickly put together a experiential demonstration that would have otherwise taken weeks or months to engineer, and decision makers at the company could form their opinions without the need to pull engineering teams off other projects.