Supporting Custom Hardware

TouchDesigner is an extremely flexible piece of software. It can handle inputs and outputs better than almost any other software I can even think of. But it’s not perfect, and no software could be. There are constantly new pieces of hardware coming out, old pieces of hardware being discontinued, and everything in between. Especially with famous cases such as the Kinect 2.0 being discontinued before the Kinect Azure was supported, knowing how to deal with custom hardware support can be beneficial to both your personal projects and your professional ones.

Custom Operators

The deepest way you can integrate almost any type of custom hardware is through a custom operator. This is done through different kinds of C++ Operators or Cplusplus Operators (since + signs couldn’t be used for Operator names, they use plusplus). Most of the operator families have this operator. There’s the Cplusplus CHOP, TOP, and SOP, and each one allows you to create your own native operator in that family. You may have seen some of the earliest water simulations where Vincent Houzé used Cplusplus CHOPs to calculate his fluid simulations directly in TouchDesigner, or maybe you’ve seen David Braun’s Phaser CHOP before it became an official operator. These are just some of the examples of what’s possible with Cplusplus Operators. This will give you the ability to really integrate with the piece of hardware and expose all of it’s available settings to TouchDesigner. This method requires an SDK to be available, although that is becoming pretty common for hardware vendors to make their SDK available publicly.

Now if this is starting to sound scary because you don’t know C++, that’s totally fine. Even I don’t spend time writing C++ operators because I’m not comfortable enough with C++ to do it at any valuable efficiency level. That’s where the community comes in. There are lots of members of our community that come from a C++ or computer science background and used to do this kind of thing for a living! Now they’ve transitioned into the interactive tech and immersive media industry and are looking for ways to take advantage of their skills. If there ever is some custom development you need, I highly recommend jumping into the TouchDesigner Forum or the TouchDesigner Discord server and asking. While that may be out of the budget on a personal project, you may find it extremely competitive for a commercial project.

Middleware

Another approach you can take is to find already existing middleware. You’d be surprised how many pieces of hardware out there have either first-party or third-party middleware made for them. What I mean by middleware is a piece of software that sits on your computer in between the piece of hardware and your piece of software. It interfaces with that hardware on the nitty gritty level, processes the data, and then will offer you different ways of retrieving it in real time either through NDI, OSC, Syphon/Spout, UDP messages, etc. One popular use cases currently is for macOS users trying to use a Kinect 2 device. Since Microsoft never introduced macOS support for the Kinect 2 SDK, macOS users have always had to rely on middlewares built by the community to be able to interface with the hardware. Most of them work in the same way: the middleware interfaces with the Kinect 2 device, it spits out the skeleton data over OSC, and sends the depth and color image data over Syphon. Then inside of TouchDesigner, instead of making a Kinect CHOP, you’d make an OSC In CHOP and get right to work. Instead of making a Kinect TOP, you’d make a Syphon Spout In TOP.

JOIN THE INTERACTIVE & IMMERSIVE HQ PRO

Want to take your TouchDesigner career to the next level?

The HQ PRO is the only comprehensive TouchDesigner training resource available.

If I’d had access to the tutorials, workshops, coaching and community found in the HQ PRO when I first started with TouchDesigner, I would have hit my career goals years sooner

There are tons of pieces of software that have middlewares made for them, and it’s absolutely worth a quick web search to see if those can meet your needs. This is especially true for personal projects, as a lot of the middlewares end up being open source projects, meaning that you can try to get your general needs met without having to spend money on it. Although this means you have real-time support or custom builds, so with that said you may be much better off with a custom C++ operator developer on commercial projects that have real deadlines.

Wrap up

Whatever piece of custom hardware you’re trying to integrate into your TouchDesigner project, it’s good to know that there are multiple solutions for you. If it’s a more commercial project, you may find a member of the community can build you a custom C++ Operator that gives you direct access to everything in TouchDesigner. If that doesn’t fit your budget, you can always go on the search for middlewares and see if anyone in the respective communities of that piece of hardware have made adapters, drivers, or other pieces of software to help you interface with them.