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.
One exploration included using NFC tags like you might find in your phone or a hotel key as a control device — in my case I used Skylanders, a popular toy with an embedded NFC chip that interfaces with a video game. By using their unique ID’s, I could repurpose them to launch commands that could do anything from changing the channel or volume to turning on or off devices. By creating macros, placing one of these on the NFC reader could launch an entire set of commands, like turning on the television and set-top box, and tuning to a favorite channel.
And by adding this functionality to WhiteBox
, 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.