Awesome
USD-QtPy
Python Qt components for building custom USD tools.
How to use?
The Qt components can be embedded in your own Qt interfaces and usually have
a stage
entrypoint that you should pass a pxr.Usd.Stage
instance.
However, a simple example Editor UI is also available to run standalone.
If you have the usd_qtpy
package you can for example run it like:
python -m usd_qtpy "/path/to/file.usd"
Want to try it within your running Python session it should be as trivial to do:
from pxr import Usd
from qtpy import QtWidgets
from usd_qtpy.editor import EditorWindow
filepath = "/path/to/file.usd"
stage = Usd.Stage.Open(filepath)
app = QtWidgets.QApplication()
dialog = EditorWindow(stage=stage)
dialog.resize(600, 600)
dialog.show()
app.exec_()
Or if you have a running QApplication
instance (e.g. when inside Maya):
from pxr import Usd
from usd_qtpy.editor import EditorWindow
filepath = "/path/to/file.usd"
stage = Usd.Stage.Open(filepath)
dialog = EditorWindow(stage=stage)
dialog.resize(600, 600)
dialog.show()
Why not Luma Picture's usd-qt
?
Unlike Luma Pictures's usd-qt
this repository tries to be easily
redistributable by avoiding the need for extra C++ dependencies and solely
use the USD Python API. This will keep the build matrix simpler but does mean
the repository is not - by design - built for highly optimized large scale
applications. Nonetheless, the intent is still to be able to carry average VFX
scenes for debugging.
install
from pip
python -m pip install usd-qtpy
from repo
python -m pip install git+https://github.com/BigRoy/usd-qtpy.git@main
Dependencies
The Viewer utilities are basically using usdviewq
which may or may not
be included in your build. This also requires PyOpenGL
. However, the other
tools do not and are intended to rely solely on USD core and Qt itself.
- qtpy
- usd-core (when not using your own usd builds, install with
[usd]
) - PyOpenGL (needed for usd viewport, install with
[usdview]
; you will still need use a customusd
build yourself forpxr.Usdviewq
dependency)