We’ve all been down the path of asking “Hey, what’s a good 3D file format to use for TouchDesigner?” There are many different paths you can go down based on what kind of 3D software you and your team might be working in or what kind of attributes or features you need supported. But even then the formats could get clunky and difficult to manage. So in this post I want to talk about a new file format you can use for moving 3D data between applications: USD.
Before I dive into USD (not the currency, the file format), let me touch on what the previous answers used to be to this question. Frankly, it was almost always FBX. FBX is a file format made by Autocad for sending 3D geometry and materials between different applications. It works quite well but has started to see the signs of age in how it can become clunky, hard to manage, and doesn’t support a lot of newer features. Because it was made by Autodesk and is proprietary, it’s seen a bit of slow adoption in terms of newer versions of it being implemented in applications. Software developers didn’t want to feel locked in to the whims of Autodesk (who does!).
Then came along Alembic (or ABC). It was a newer contender that came on the scene around 2011 and started to become pretty well adopted. A lot of people liked that it was open source and supported by big companies like Sony and ILM. It had a lot of nice features like storing animation data for points and vertices right inside of the file in a way that is easy-to-access for both developers and users of the format (much cleaner than FBX animation takes). But it had one big downfall in that it was mainly made to store the geometry data. This means it never really had support for materials until recent developments. So you would still find yourself often times going back to FBX since it would collect and move geometry and materials together for you.
We come to USD. USD is a really interesting formats. It tries to take a lot of strengths of all the previous file formats and combine them together. This means firstly it has big corporate support. Apple are using it heavily in their SceneKit API, which is used for a lot of their AR applications and it’s the main file format used at Pixar for their 3D pipelines. Pixar is one of the main developers pushing USD. Those are some heavy hitters for sure, so you can be sure USD won’t disappear or be abandoned. You can even view USD files on your iOS devices using QuickLook. That means a lot that Apple has added such native support for a 3D file format. You can literally go to this webpage on Apple’s site from your iOS device, click on a model, and immediately place it in an AR environment without any extra apps or plugins. That’s huge.
It’s also open source so that means that there’s no Autodesk to deal with. Collaboration between multiple companies and developers happens out in the open and anyone who wishes to implement FBX can easily take a look under the hood to see what’s happening and how to best use USD.
Unlike Alembic, it supports textures and materials right out of the box, which makes it a lot easier when shipping assets or receiving them from other teams or collaborators. No more needing to pull a bunch of things together, zip them up, and then send them hoping that you didn’t forget a texture.
How to get started
Getting started with USD in TouchDesigner is simple. You can get up and running by simply dragging and dropping a USD file into the network editor as seen below:
It’s really that easy (as it is with FBX and ABC as well!). Now if you look at the custom parameters of the USD COMP, this is where you actually have a lot of easy to access controls that in the past were very manual things that needed controlling. A good example is working with animation takes, they can be started and stopped and cued very easily from the Play page of parameters:
The structure inside of the USD COMP is also really clean and easy to explore. You’ll see in this toy drummer example, going into the levels shows a clean hierarchy as well as automatically generated PBR MATs with all their maps assigned correctly (YES!!!!) so that this model will look really great in even a basic rendering setup:
If all of that happening in the background automatically hasn’t sold you on USD, I’m not sure what will! Automatic creation of PBR materials, all their map assigned correctly, organized hierarchy, animations working out-of-the-box and having easy-to-use parameters for you, and more! These aren’t the only features of USD, but they’re some that make my life a lot easier and I’m excited to use them more and more.
If you’re getting your journey with USD up and running, here are a handful of useful resources that you should go through. There are a lot of features to USD that I don’t mention here, especially as it applies to their usage in TouchDesigner. Everything from having a ton of supported geometry formats as well as merging capabilities for optimization, there’s a wealth of features to play with.
- The USD in TouchDesigner page on the TouchDesigner wiki has a large overview of all the terms you need to know and information about the features and hierarchies available to you: https://docs.derivative.ca/USD_In_TouchDesigner
- USD COMP in TouchDesigner is the main tool you’ll be using for accessing your USD files: https://docs.derivative.ca/USD_COMP
- Apple’s website on USD has a bunch of models you can download and experiment with as well as some nice links to other models out there on the net: https://developer.apple.com/augmented-reality/quick-look/
- The official documentation of USD from Pixar. It is the official source of truth and is the best place to go if you want to learn more about USD and starting using it more seriously in your projects: https://graphics.pixar.com/usd/docs/index.html
FBX and Alembic aren’t going anywhere yet, but you should be excited to use USD. It promises a lot of things we wish were in Alembic and finally gets us out of the grips of Autodesk. With it’s heavy industry support, it might become the 3D file format to beat over the coming years. If you haven’t tried it out yet, I really recommend you download some USD scenes online and import them into TouchDesigner and take them for a spin.