Code Monkey home page Code Monkey logo

unf's Introduction

USD Notice Framework

CMake test-linux test-windows License

The USD Notice Framework (UNF) is built over the native Tf Notification System in USD, an open source extensible software platform for collaboratively constructing animated 3D scenes. It provides a C++ and Python API to efficiently manage the flow of notifications emitted when authoring the USD stage.

While USD notices are delivered synchronously and tightly coupled with the sender, UNF introduces standalone notices that can be used for deferred delivery and can be aggregated per notice type, when applicable.

What does this solve?

Pixar designed USD as an open and extensible framework for composable data interchange across different tools. As such, it is highly optimized for that purpose. Born out of Pixar's Presto Animation package, some application-level features were intentionally omitted to maintain speed, scalability, and robustness to support its core usage.

When editing USD data, the stage and layers produce a high volume of change notifications that can be hard to manage when crafting a performant user experience. UNF provides a framework to aggregate and even simplify change notifications across a series of edits on a USD stage. It allows developers to build performant and sustainable interactive applications using USD as its native data model.

Documentation

Full documentation, including installation and setup guides, can be found at https://wdas.github.io/unf

unf's People

Contributors

buddly27 avatar davvid avatar mati-nvidia avatar npbarber avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

unf's Issues

Add Windows support

Hi. We've started to evaluate and experiment with UNF at NVIDIA. No problems building and getting started on Linux. I've started to work on adding support for Windows.

Improve merging of ObjectsChanged notices

Currently, unf.Notice.ObjectsChanged notices are keeping prim paths in the change info list, even if it has also been added to the resynced path during the consolidation process:

Let's two ObjectsChanged notices received after setting the attribute inputs:color to the prim /foo:

Resynced Paths: [(Sdf.Path('/foo.inputs:color'), [])]
ChangedInfoOnly Paths: []

Resynced Paths: []
ChangedInfoOnly Paths: [(Sdf.Path('/foo.inputs:color'), ['default'])]

Within a transaction, it would be consolidated as:

Resynced Paths: [(Sdf.Path('/foo.inputs:color'), ['default'])]
ChangedInfoOnly Paths: [(Sdf.Path('/foo.inputs:color'), ['default'])]

Ideally, it should be:

Resynced Paths: [(Sdf.Path('/foo.inputs:color'), ['default'])]
ChangedInfoOnly Paths: []

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.