{"id":18978278,"url":"https://github.com/autodesk/arnold-usd","last_synced_at":"2025-05-16T07:02:45.119Z","repository":{"id":37270587,"uuid":"220100148","full_name":"Autodesk/arnold-usd","owner":"Autodesk","description":"Arnold components for USD","archived":false,"fork":false,"pushed_at":"2025-05-09T05:41:18.000Z","size":116606,"stargazers_count":271,"open_issues_count":141,"forks_count":62,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-05-09T06:26:56.548Z","etag":null,"topics":["arnold","houdini","hydra","katana","maya","usd"],"latest_commit_sha":null,"homepage":"https://www.arnoldrenderer.com/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Autodesk.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-11-06T22:11:42.000Z","updated_at":"2025-05-09T05:41:21.000Z","dependencies_parsed_at":"2024-01-18T10:32:19.309Z","dependency_job_id":"3558fa5f-e45a-454e-96af-97da299675e0","html_url":"https://github.com/Autodesk/arnold-usd","commit_stats":null,"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Autodesk%2Farnold-usd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Autodesk%2Farnold-usd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Autodesk%2Farnold-usd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Autodesk%2Farnold-usd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Autodesk","download_url":"https://codeload.github.com/Autodesk/arnold-usd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254485025,"owners_count":22078764,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arnold","houdini","hydra","katana","maya","usd"],"created_at":"2024-11-08T15:32:53.023Z","updated_at":"2025-05-16T07:02:40.082Z","avatar_url":"https://github.com/Autodesk.png","language":"Python","readme":"\u003c!-- SPDX-License-Identifier: Apache-2.0 --\u003e\n# Arnold USD\n\nThis repository contains a set of components and tools to use the [Arnold](https://www.arnoldrenderer.com) renderer with Pixar's [Universal Scene Description](https://github.com/PixarAnimationStudios/USD). Notably, the following components are included:\n\n- Hydra render delegate\n- Arnold procedural for USD\n- Schemas to describe an Arnold scene in USD\n\nContributions are welcome! Please make sure to read the [contribution guidelines](CONTRIBUTING.md).\n\n## Building and installation\n\nPlease follow the [building instructions](docs/building.md). To use the components, provided you installed in `\u003carnold-usd_dir\u003e`, set the following environment variables:\n\n- Add `\u003carnold-usd_dir\u003e/procedural` to `ARNOLD_PLUGIN_PATH` for the Arnold `usd` procedural.\n- Add `\u003carnold-usd_dir\u003e/lib/python` to `PYTHONPATH` for the Python schema bindings.\n- Add `\u003carnold-usd_dir\u003e/plugin` to `PXR_PLUGINPATH_NAME` for the Hydra render delegate and the Node Registry plugin.\n- Add `\u003carnold-usd_dir\u003e/lib/usd` to `PXR_PLUGINPATH_NAME` for the USD schemas.\n- Add `\u003carnold-usd_dir\u003e/lib` to `LD_LIBRARY_PATH` on Linux, `PATH` on Windows and `DYLD_LIBRARY_PATH` on Mac.\n\n## Hydra Render Delegate\n\nThe render delegate currently supports the following features:\n\n- RPrim Support\n  - Mesh\n    - All primvars are supported, st/uv is accessible through the built-in uv attribute on the mesh\n    - Normal primvars are translated to Arnold built-in attributes\n    - Support for the displayColor primvar\n    - Subdivision settings\n  - Volume\n  - Points\n- SPrim Support\n  - Materials\n    - Arnold shaders are supported, the `info:id` attribute is used to determine the shader type\n    - UsdPreviewSurface is translated to Arnold shaders\n    - UsdTransform nodes\n    - Per-face material assignments\n  - Lights\n    - Distant Light\n    - Sphere Light\n    - Disk Light\n    - Rect Light\n    - Cylinder Light\n    - Dome Light\n    - Shaping Parameters\n  - Light and Shadow Linking\n  - ExtComputation\n  - HdCamera\n    - Perspective projection\n- BPrim Support\n  - Render Buffer\n  - OpenVDB Asset\n- Point Instancer, including nesting of Point Instancers and instancing Volumes\n- Selection in USD View and other applications using the `primId` AOV\n- Displaying the Color, Depth and PrimID AOVs\n- Motion Blur\n  - Deformation\n  - Transformation\n  - Using motion vectors on Points\n- Rendervar support\n  - Raw Rendervars\n  - Primvar Rendervars\n  - LPE Rendervars\n  - SourceName parameter\n  - DataType parameter\n  - Setting up Arnold filters via \"arnold:filter_type\"\n    - Filtering parameters via \"arnold:param_name\"\n    - Filtering parameters via \"arnold:filter_node_entry:param_name\"\n- USD Skel support\n- HdExtComputation support for polymeshes\n- Render Settings via the Render Delegate\n  - Sampling parameters\n  - Threading parameters\n  - Ignore parameters\n  - Profiling and logging parameters\n  - Switching between CPU and GPU mode seamlessly\n  - Default values are configurable through environment variables for most of these parameters\n- Deep render products\n- Basis Curves support\n  - Remapping uv/st to uvs\n  - Remapping normals to orientations\n- Pause and Resume API\n- Half and Double types\n\n**Limitations**\n\n- Crash on linux at startup with usdview : Currently, the arnold library needs to be ld-preloaded to avoid the crash, e.g. `LD_PRELOAD=/path_to_arnold/bin/libai.so usdview scene.usda`\n- Ignoring primvars:arnold:basis on curves\n- No support for periodic or pinned curves\n- No field3d volume grids\n- No normal maps on the UsdPreviewSurface\n- Only converging renders are supported (ie. it’s not possible to block the viewport until the render finishes)\n- No coordsys support\n- Face-varying primvars are not correctly interpolated\n- Possible flicker when using cryptomatte: this is due to the prototypes not being named in a deterministic way. Setting the environment variable `USD_ASSIGN_PROTOTYPES_DETERMINISTICALLY` should fix this issue.\n\n## Node Registry Plugin\n\nThe Node Registry plugin supports the current features:\n\n- Registering Sdr nodes for every built-in shader and custom shader\n  - Setting up the asset URI either to `\u003cbuilt-in\u003e` or to the path of the shader library providing the shader.\n  - Creating all parameters.\n\n**Limitations**\n\n- No nodes registered for\n  - Shapes\n  - Lights\n  - Filters\n  - Drivers\n- No node is registered for the options node\n- Metadata is not converted for any node\n\n## Arnold USD Procedural\n\nThe procedural supports the following features:\n\n- USD Geom primitives\n  - UsdGeomMesh\n  - UsdGeomCurves\n  - UsdGeomBasisCurves\n  - UsdGeomPoints\n  - UsdGeomCube\n  - UsdGeomSphere\n  - UsdGeomCone\n  - UsdGeomCylinder\n  - UsdPointInstancer\n  - UsdVolume\n  - UsdGeomCamera\n  - primvars are translated as user data\n- USD Lux primitives\n  - UsdLuxDistantLight\n  - UsdLuxDomeLight\n  - UsdLuxDiskLight\n  - UsdLuxSphereLight\n  - UsdLuxRectLight\n  - UsdLuxGeometryLight\n  - Support for textured lights (dome, rectangle and geometry)\n- USD native shaders\n  - UsdPreviewSurface\n  - UsdPrimVar*\n  - UsdUVTexture\n  - Per channel connections via adapter nodes\n  - UsdTransform nodes\n- UsdSkel support\n- Arnold shaders supported as UsdShade nodes (where info:id gives the shader type)\n- Support for any additional Arnold parameter in USD nodes (e.g. attribute `primvars:arnold:subdiv_iterations` in a UsdGeomMesh)\n- Support for any Arnold node type (e.g. USD type ArnoldSetParameter gets rendered as arnold `set_parameter` node)\n- Support for multi-threaded parsing of a USD file\n- UsdRender schema support\n- Half and Double types\n- Usd Purpose\n- Light Linking\n- Multiple frames in a single file\n\n**Limitations**\nCurrently unsupported:\n\n- Nurbs\n\n## Scene delegate\n\nThe scene delegate supports the following features:\n\n- Arnold built-in shapes\n- Render time procedurals shipped with the core\n\n**Limitations**\nCurrently unsupported:\n\n- Custom procedurals\n- Lights\n- Displaying Arnold schemas with non-Arnold render delegates\n\n## Testsuite\n\nRunning the arnold-usd testsuite requires the latest version of Arnold, that can be [downloaded](https://www.arnoldrenderer.com/arnold/download)\nIt is not supported for older versions of Arnold.\n\n## Acknowledgments\n\n- Luma Pictures' [usd-arnold](https://github.com/LumaPictures/usd-arnold)\n- RodeoFX's [OpenWalter](https://github.com/rodeofx/OpenWalter)\n- Ben Asher\n- Sebastien Blaineau-Ortega\n- Chad Dombrova\n- Guillaume Laforge\n- Julian Hodgson\n- Thiago Ize\n- Pal Mezei\n- Paul Molodowitch\n- Nathan Rusch\n- Frederic Servant\n- Charles Flèche\n- Raymond Kreppene\n- Julien Deboise\n- Jerry Gamache\n- Tom Minor\n- Cyril Pichard\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautodesk%2Farnold-usd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautodesk%2Farnold-usd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautodesk%2Farnold-usd/lists"}