implement Pixars Universal Scene Description (USD)
I know there is already a request in here , but it is poorly advertised and doesn't communicate the gravity of the proposal.
![]()
What is USD?
taken from graphics.pixar.com/usd/docs/index.html
Pipelines capable of producing computer graphics films and games typically generate, store, and transmit great quantities of 3D data, which we call "scene description". Each of many cooperating applications in the pipeline (modeling, shading, animation, lighting, fx, rendering) typically has its own special form of scene description tailored to the specific needs and workflows of the application, and neither readable nor editable by any other application. Universal Scene Description (USD) is the first publicly available software that addresses the need to robustly and scalably interchange and augment arbitrary 3D scenes that may be composed from many elemental assets.
USD provides for interchange of elemental assets (e.g. models) or animations. But unlike other interchange packages, USD also enables assembly and organization of any number of assets into virtual sets, scenes, and shots, transmit them from application to application, and non-destructively edit them (as overrides), with a single, consistent API, in a single scenegraph. USD provides a rich toolset for reading, writing, editing, and rapidly previewing 3D geometry and shading. In addition, because USD's core scenegraph and "composition engine" are agnostic of 3D, USD can be extended in a maintainable way to encode and compose data in other domains.
Concretely, USD is an OpenSource project released under a modified Apache license.
Why we need it in blender
- to maximize compatibility to industry standard tools, e.g. to pixar renderman, foundrys nuke & mari, houdini, autodesk maya, max, c4d, (...) once they implement USD
- to create a seamless bridge to renderman and make it possible to implement the viewport update capabilities of the new renderman 22 update , as well as the planned XPU-rendering, both on CPUs and GPUs of the machine at the same time. Also worth mentioning: the upcoming PxrUnified integrator, that is supposed to merge PxrPath and PxrVCM and other integrators into one unified smart integrator.
- in summary: to make blender viable for the pipelines of big animation studios and vfx houses
- this would draw attention from the industry and it would hopefully generate a dime or two for the blender foundation to hire more full time devs
I personally am very excited about this sweet piece of software, handed to us from the nice guys who once gave the world the source code to one of the most elaborate subdivision algorithms that has already found its way into blender.
Thank you for reading this, and if you heaven't already: grab renderman non-commercial and the add-on for blender and explore this awesome renderer. :)
For technical people: vimeo.com/211022588
12 Comments
this is a bit off topic, so I'll write it as a comment:
it would be great timing to implement USD in the first iterations of 2.8, if devs are available to do so. Maya is getting weaker with every release (the current release features a dynamic link to Adobe After Effects! Who ever used dynamic links in the past, eg. to exchange footage between premiere and after effects, might remember how big the struggle is and how badly it performs. Noone in the industry would seriously consider a feature like that to be used in production).
If the blender foundation plays this right, more of the big players could dump that huge company that consumed half of the graphics softwares available (Softimage XSI, Combustion, ...) just to discontinue them and stitch their funktions up in bloated, buggy software.
This should be marked "in-development"
Please, anybody implement this feature to Blender. We all need smoother view while animating with Hydro graphics :)
In addition to this we also need the MDL Support to send Materials with USD. 😉 blender.community/c/rightclickselect/lXbbbc/
is there any new statement about USD ? as it become a standard almost everywhere, I think that USD is more than a must have, it's necessary, at least if blender hope to be integrated in more and more companies
* @William Eguienta * Check the code blog, there's been an update.
AAA game studios who are curently using FBX for exporting their assets ingame, will be making the switch to USD soon enough. This is a must have.
I dont think that USD does what you think it does. With its current feature set USD can not fully represent a scene with a rigged character, and is not intended to be a DCC file format. (Read the main page)
@rcsfletcher: I don't see any mention of rig representation in this post. What make you think Schmitzjan don't get it?
I was replying to you. Maya Ascii is fully capable of representing an editable workfile. Pretty much anything that isn't geometry is will not travel cleaning from application to application. BF would have to develop allot of custom code to get USD to represent a blend file. and that code would not be understandable to other DCCS.
* @rcsfletcher *
It would be if it became an open standard, but I think everyone should have an equal say in that - industry giants and open source developers alike. But when the standard is open it's possible to implement it anywhere. The key is using the format as a description of the relationships, rather than a representation of the implementation (if that makes sense. Maya ascii files are MEL code that re-builds the scene, i.e., an implementation. The .blend file is essentially a memory dump- scene DNA that translates to RNA. An implementation.) USD is a universal scene description - it could describe the relationships in an unambiguous way and it'd be up to each dcc to implement the relationship as described. Of course it would be limited at first to common features. But merely including parenting, transform constraints (copy and limit), owner/target space, and IK information would be enough for a great many rigs. It would basically just be the linear algebra stuff that every app can do.
I totally agreed this. As an open source software, blender should be able to save files in a open and human readable format. Maya Ascii format save my but more than a few times. And beside all, this USD format is very well built.