{"id":5547,"library":"usd-core","title":"Pixar's Universal Scene Description (USD) Core Python Library","description":"Pixar's Universal Scene Description (USD) is a robust system designed for scalably encoding and interchanging static and time-sampled 3D geometry, shading, and lighting data across various Digital Content Creation applications. The `usd-core` package, available on PyPI, provides the fundamental Python bindings for authoring, composing, and reading USD data. It is actively maintained by Pixar Animation Studios, with new versions typically released every 3-4 months. The current version is 26.3, continuously evolving the OpenUSD ecosystem.","status":"active","version":"26.3","language":"python","source_language":"en","source_url":"https://github.com/PixarAnimationStudios/OpenUSD","tags":["3D","USD","graphics","scene description","animation","VFX"],"install":[{"cmd":"pip install usd-core","lang":"bash","label":"Install core USD Python library"},{"cmd":"pip install usd-core types-usd","lang":"bash","label":"Install with auto-complete types (optional)"}],"dependencies":[{"reason":"Required Python interpreter version for the package.","package":"python","version":">=3.8, <3.14"},{"reason":"Provides type hints for improved IDE auto-completion. Not strictly required for runtime.","package":"types-usd","optional":true}],"imports":[{"note":"USD Python modules are nested under the 'pxr' namespace.","wrong":"import Usd","symbol":"Usd, UsdGeom, Sdf, Gf","correct":"from pxr import Usd, UsdGeom, Sdf, Gf"}],"quickstart":{"code":"from pxr import Usd, UsdGeom\nimport os\n\n# Create a new USD stage in memory or on disk\noutput_filename = os.environ.get('USD_OUTPUT_FILE', 'HelloWorld.usda')\nstage = Usd.Stage.CreateNew(output_filename)\n\n# Define a root transform prim at the path /hello\nxformPrim = UsdGeom.Xform.Define(stage, '/hello')\n\n# Define a sphere prim nested under the transform at /hello/world\nspherePrim = UsdGeom.Sphere.Define(stage, '/hello/world')\n\n# Set a radius for the sphere\nspherePrim.GetRadiusAttr().Set(2.0)\n\n# Save the stage to a file\nstage.GetRootLayer().Save()\n\nprint(f\"Created {output_filename} with a sphere at /hello/world\")","lang":"python","description":"This quickstart demonstrates how to create a simple USD stage, define a transform (Xform) and a sphere (UsdGeom.Sphere) prim, set an attribute, and save the stage to a .usda file. All core USD Python modules are accessed via the `pxr` namespace."},"warnings":[{"fix":"Upgrade your Python environment to 3.9 or higher (up to <3.14 as per PyPI).","message":"Python 3.8 support is deprecated as of a recent OpenUSD release (noted in CHANGELOG) and will be removed in the subsequent release. Users on Python 3.8 should plan to upgrade.","severity":"breaking","affected_versions":">=26.03 (deprecation, removal in next major)"},{"fix":"If `usdview` or full imaging capabilities are needed, refer to NVIDIA's OpenUSD developer resources for pre-built binaries or the OpenUSD GitHub repository for build instructions.","message":"The `usd-core` PyPI package provides only the core USD libraries for authoring, composing, and reading. It *does not* include optional plugins, imaging features, or tools like `usdview` (Pixar's scene inspector). For a full USD experience, including `usdview` and other utilities, you generally need to download pre-built binaries from NVIDIA or build OpenUSD from source.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Migrate UI metadata to use the `uiHints` dictionary for prims and properties, which supports features like `shownIf` and `valueLabels`.","message":"The older `displayName`, `displayGroup`, and `hidden` metadata APIs within `UsdUI` were deprecated in v25.11 in favor of a new, dictionary-valued `uiHints` metadata field.","severity":"deprecated","affected_versions":">=25.11"},{"fix":"Ensure your C++ toolchain and project settings are updated to be compatible with C++11 ABI and, for Visual Studio, enable the `/permissive-` flag.","message":"Beginning with the 26.03 release, the `usd-core` PyPI package utilizes the C++11 ABI. Furthermore, clients building C++ code against OpenUSD with Visual Studio must enable the `/permissive-` (strict standards conformance) flag.","severity":"breaking","affected_versions":">=26.03"},{"fix":"Avoid using negative layer offset scales. For `.sdf` files, ensure they are in a modern format to prevent future compatibility issues.","message":"Support for negative layer offset scale has been removed, and the `PCP_ALLOW_NEGATIVE_LAYER_OFFSET_SCALE` environment variable has been removed. Additionally, the `SDF_FILE_FORMAT_LEGACY_IMPORT` environment variable is now set to 'warn' by default, indicating that legacy `.sdf` file format header support will be removed in a future release.","severity":"deprecated","affected_versions":">=26.03 (removal of negative layer offset scale), all versions (legacy .sdf warning)"},{"fix":"Ensure you are using a recent `usd-core` version (22.03 or newer). As a workaround for older versions or persistent issues, setting the environment variable `CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1` might resolve the problem.","message":"Users on Windows running Python 3.8+ within `conda` environments may encounter DLL loading failures (e.g., `DLL load failed while importing _tf`). This was addressed in USD 22.03.","severity":"gotcha","affected_versions":"Earlier versions, especially on Windows with Python 3.8+ in Conda."}],"env_vars":null,"search_vec":"'-4':78 '26.3':84 '3':77 '3d':31,90 'across':37 'activ':65 'anim':69,95 'applic':42 'author':57 'avail':48 'bind':55 'compos':58 'content':40 'continu':85 'core':7,46 'creation':41 'current':81 'data':36,62 'descript':5,14,94 'design':20 'digit':39 'ecosystem':89 'encod':23 'everi':76 'evolv':86 'fundament':53 'geometri':32 'graphic':92 'interchang':25 'librari':9 'light':35 'maintain':66 'month':79 'new':72 'openusd':88 'packag':47 'pixar':1,10,68 'provid':51 'pypi':50 'python':8,54 'read':60 'releas':75 'robust':18 'sampl':30 'scalabl':22 'scene':4,13,93 'shade':33 'static':26 'studio':70 'system':19 'time':29 'time-sampl':28 'typic':74 'univers':3,12 'usd':6,15,45,61,91 'usd-cor':44 'various':38 'version':73,82 'vfx':96","created_at":"2026-04-14T01:38:32.728894+00:00","updated_at":"2026-04-14T01:38:32.728894+00:00","problems":[],"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"26.8","cli_name":"usdcat","cli_version":"sh: 1: usdcat: not found","type":"library","homepage":"https://openusd.org","github":"https://github.com/PixarAnimationStudios/OpenUSD","docs":"https://openusd.org","changelog":null,"pypi":"https://pypi.org/project/usd-core/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["serialization","data"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-28","last_verified":"2026-08-30","next_check":"2026-07-28","install_tag":null}}