Universal Scene Description (USD) is an efficient, scalable system for authoring, reading, and streaming time-sampled scene description for interchange between graphics applications.
For more details, please visit the web site here.
master | dev | |
---|---|---|
Linux |
Need help understanding certain concepts in USD? See Getting Help with USD or visit our forum.
If you are experiencing undocumented problems with the software, please file a bug.
USD is currently supported on Linux platforms and has been built and tested on CentOS 7 and RHEL 7.
We are actively working on porting USD to both Windows and Mac platforms. Support for both platforms should be considered experimental at this time. Currently, the tree will build on Mac and Windows, but only limited testing has been done on these platforms.
The Core USD libraries (located in pxr/base and pxr/usd respectively) have the following dependencies.
Name | Version | Optional |
---|---|---|
C++ compiler | GCC 4.8, Clang 3.5, MSVC 14.0(VS 2015) | |
C compiler | GCC 4.8, Clang 3.5, MSVC 14.0(VS 2015) | |
CMake | 2.8.8 (Linux/OS X), 3.1.1 (Windows) | |
Python | 2.7.5 | x |
Boost | 1.55 (Linux), 1.61.0 (OS X/Windows) | |
Intel TBB | 4.3.1 |
The Imaging and USD Imaging components (located in pxr/imaging and pxr/usdImaging respectively) have the following additional dependencies. These components can be disabled at build-time, for further details see Advanced Build Configuration.
Name | Version | Optional |
---|---|---|
OpenSubdiv | 3.0.5 (Linux/OS X), 3.2.0 (Windows) | |
GLEW | 1.10.0 | |
OpenEXR | 2.2.0 | |
OpenImageIO | 1.5.11 | |
Ptex | 2.0.30 | x |
PySide or PySide2 (experimental) | 1.2.2, 2.0.0~alpha0 | x |
PyOpenGL | 3.1.0 | x |
The simplest way to build USD is to run the supplied build_usd.py
script. This script will download required dependencies and build
and install them along with USD in a given directory.
Follow the instructions below to run the script with its default behavior,
which will build the USD core libraries, Imaging, and USD Imaging components.
For more options and documentation, run the script with the --help
parameter.
See Advanced Build Configuration for examples and additional documentation for running cmake directly.
1. Install prerequisites (see Dependencies for required versions)
- Required:
- C++ compiler:
- gcc
- Xcode
- Microsoft Visual Studio
- NASM (required for Imaging on Windows)
- CMake
- C++ compiler:
- Optional (Can be ignored by passing
--no-python
as an argument tobuild_usd.py
)- Python (required for bindings and tests)
- PyOpenGL (required for some UsdImaging components)
- PySide or PySide2 (experimental) (required for some UsdImaging components)
You can download source code archives from GitHub or use git
to clone the repository.
> git clone https://github.com/PixarAnimationStudios/USD
Cloning into 'USD'...
For example, the following will download, build, and install USD's dependencies,
then build and install USD into /usr/local/USD
.
> python USD/build_scripts/build_usd.py /usr/local/USD
In a terminal, run xcode-select
to ensure command line developer tools are
installed. Then run the script.
For example, the following will download, build, and install USD's dependencies,
then build and install USD into /opt/local/USD
.
> python USD/build_scripts/build_usd.py /opt/local/USD
Launch the "Developer Command Prompt" for your version of Visual Studio and run the script in the opened shell. Make sure to use the 64-bit (x64) command prompt and not the 32-bit (x86) command prompt.
See https://docs.microsoft.com/en-us/dotnet/framework/tools/developer-command-prompt-for-vs for more details.
For example, the following will download, build, and install USD's dependencies,
then build and install USD into C:\Program Files\USD
.
C:\> python USD\build_scripts\build_usd.py "C:\Program Files\USD"
Set the environment variables specified by the script when it finishes and
launch usdview
with a sample asset.
> usdview extras/usd/tutorials/convertingLayerFormats/Sphere.usda
If you'd like to contribute to USD (and we appreciate the help!), please see the Contributing page in the documentation for more information.