- on Windows, pip largely works for PySide2, but PySide2 is poorly supported and mostly broken under conda. Mixing and matching pip and conda is a bad practice.
- in a non-studio environment, Qt is problematic outside of the GPL3 environment.
- usdview is great, but if Python, or Qt, or PySide2 provide challenges, the onboarding process to USD involves a large effort
- no low-dependency usdview is available
- boost is a barrier to adoption due to well documented versioning issues (e.g., it is in vfxplatform as a configuration difficulty) and an onboarding-unfriendly build system
- tbb is a barrier outside of the DCC environment, as it is Yet Another threading system that may be at odds with either a developer's own tasking system, or a system native one such as Apple's Grand Central Dispatch. It is very easy to induces oversubscription problems with TBB in practice.
- lack of standard cookbooks. there are multiple community efforts, but no acknowledged best practice sources
- Python is highly adopted in Film CG, and Machine Learning, but less so in broader industry
- The easy interfaces for USD are the Python interfaces. The C++ interfaces often feel as if they are meant to facilitate the Python interfaces. An "easy" or "friendly" interface for C++ is necessary for onboarding.
- The toolset is a mix of native binaries and Python. See comments on Python. To use all the tools, Python needs to be in the global path, which is a barrier to a non-pythonic environment as there is little appetite to introduce a Python dependency to get a small number of tools such as usdcat.
- A standard recipe for using USD within Conda does not yet exist. The Film CG world is still on pip, but the ML community is on Conda, this is another fragmentation.
- Static initializers require compiler specific tricks, such as whole-archive flags, which have drawbacks, such as increasing the size of libraries.
- loading of plugins is problematic, and makes assumptions about installation which are tricky to navigate in embedded and bundling scenarios.
- non-static runtime initialization, such as programmatically telling USD to load plugins is not straight forward, and requires work arounds to avoid asserts related to static initialization
Created
May 19, 2021 22:18
-
-
Save meshula/8fd353779d6249af0f4d4de8af2dcae6 to your computer and use it in GitHub Desktop.
notes on usd adoption
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment