USD Notice Framework officially released!

Walt Disney Animation Studios is excited to announce the release of the USD Notice Framework, a set of software APIs for managing the flow of notifications that are emitted when authoring USD stages.

USD Notice Framework was motivated by the editing requirements of our in-house USD tools, with feedback from Pixar developers about how to best implement this functionality alongside USD. From the outset, USD Notice Framework was developed to be an open source project intended to be adoptable by any studio looking to improve management of USD notifications. Thanks to the Walt Disney Animation Studios and Pixar USD teams for their efforts and guidance.

We hope that USD Notice Framework will prove useful to the community and look forward to seeing what new contributions and developments it may inspire.

You can learn more about UNF by visiting its webpage [1] and by visiting the software repository & documentation on GitHub[2].

[1] https://disneyanimation.com/open-source/usd-notice-framework/
[2] https://github.com/wdas/unf

7 Likes

This is great to see! I know notice management has been a recurring topic for various people over the years, so I’m sure this is going to be very well received.

Hi @davvid! Thanks for sharing this!

One thing I’d like to understand better is that in the docs there is an example using Sdf.ChangeBlock() and then the same example using unf.NoticeTransaction(): Getting started — USD Notice Framework 0.5.6 documentation Are there similar performance benefits using UNF vs Sdf.ChangeBlock?

Thanks for your feedback!

Sdf.ChangeBlock will be faster as it will block Stage recomposition, while unf.NoticeTransaction doesn’t. The purpose of this framework is to manage the flow of USD Notices emitted and maximize the overall performance and safety when editing the Stage directly, as Sdf.ChangeBlock cannot be used in this scenario.

The direct benefit of letting developers edit the Stage directly instead of working at the layer level is to produce more maintainable code that can use high-level concepts (e.g., schemas)

1 Like

That makes sense. Looking forward to trying it out. Thank you!