Why Not Just Use pip install?
Yes, you could just use pip install usd-core
and start doing Python development. It is so simple and easy but there are two HUGE drawbacks to doing that.
1. It doesn’t give you useful help() text
What pip install usd-core
gives you wasn’t built with the documentation included. That means when you run:
from pxr.Usd import Stage
help(Stage.GetPrimAtPath)
You get this:
Help on built-in function GetPrimAtPath:
GetPrimAtPath(...)
(END)
Instead of this:
Help on built-in function GetPrimAtPath:
GetPrimAtPath(...)
GetPrimAtPath(path) -> Prim
path : Path
Return the UsdPrim at path, or an invalid UsdPrim if none exists.
If path indicates a prim beneath an instance, returns an instance
proxy prim if a prim exists at the corresponding path in that
instance's prototype.
Unlike OverridePrim() and DefinePrim() , this method will never author
scene description, and therefore is safe to use as a"reader"in the Usd
multi-threading model.
(END)
While there is good online C++ documentation for OpenUsd, I haven’t found good Python documentation. When I code with USD, I bounce between finding good example code, using help()
in an interactive Python terminal, and the C++ documentation.
If you are going to be doing Python development with OpenUSD, to me it is 100% worth spending the time to build it yourself just to get the extra help()
text.
Note: Pixar only recently made it possible to build in the Python documentation, so older versions may not have it.
2. It doesn’t install usdview (or any of the other usd* tools)
usdview
is by far the most useful debugging tool you will use with OpenUSD. It allows you to view the scene, see what files make up the scene, see what properties and values are set, and dissect why those values are what they are.

I have been developing OpenUSD Python code for half a decade, and I can’t imagine trying to code without it.
Building
If you are new to Python virtual environments, consider looking at our article about them before diving into the build process.
Before you can build, you will need to install doxygen which can be found here.
You will also need to install Xcode command line tools. These can be installed with the following command:
xcode-select --install
Once those two are installed, you can run the following commands to create the virtual environment and build OpenUsd:
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install PySide6
pip install PyOpenGL
git clone https://github.com/PixarAnimationStudios/OpenUSD
cd OpenUSD
git checkout dev
cd ..
python OpenUSD/build_scripts/build_usd.py -v .venv --python-docs --docs
Once that is done running it will output something like:
Success! To use USD, please ensure that you have:
The following in your PYTHONPATH environment variable:
/Users/brent/coding/usd_python_doc_generator/.venv/lib/python
The following in your PATH environment variable:
/Users/brent/coding/usd_python_doc_generator/.venv/bin
The above is already added to the PATH, so you just need to update the PYTHONPATH
. I have a full article on how Python finds installed packages that goes over how to add new packages so Python can find them if you need to familiarize yourself with the subject.
But for quick reference, run the following replacing the path with the one outputted from the installation process:
export PYTHONPATH=/Users/brent/coding/usd_python_doc_generator/.venv/lib/python:$PYTHONPATH
Some things to note:
- After you clone the repo, feel free to move to a commit with the specific version you want to develop for. The instructions above will build the latest version of OpenUSD.
- The build can take several minutes to run, so plan on taking a break to get coffee or watch a YouTube video until it’s done.
- These build instructions will only work for recent versions. Consult the README on GitHub for how to build older versions or for doing more customized builds.
- Adding USD to your PYTHONPATH in the way suggested above does not make pip aware of USD so if you export a requirements.txt it will be missing the USD version you hand-built
- It also does not stay after you leave the virtual environment so you will need to rerun the command later to add it to your
PYTHONPATH
again
- It also does not stay after you leave the virtual environment so you will need to rerun the command later to add it to your
Happy coding!
References
If you are trying to build for a different operating system, look at the README on GitHub for more details.
The scene shown in usdview
is from Intel, is called 4004 Moore Lane, and can be downloaded here.