{"id":13734382,"url":"https://github.com/ColinKennedy/USD-Cookbook","last_synced_at":"2025-05-08T10:31:34.026Z","repository":{"id":39787870,"uuid":"189784656","full_name":"ColinKennedy/USD-Cookbook","owner":"ColinKennedy","description":"USD Example Projects","archived":false,"fork":false,"pushed_at":"2024-08-17T18:16:46.000Z","size":808,"stargazers_count":649,"open_issues_count":3,"forks_count":93,"subscribers_count":51,"default_branch":"master","last_synced_at":"2025-04-28T21:18:01.044Z","etag":null,"topics":["cpp","python","recipes","usd","vfx"],"latest_commit_sha":null,"homepage":"","language":"Mathematica","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ColinKennedy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-01T22:58:10.000Z","updated_at":"2025-04-26T13:02:09.000Z","dependencies_parsed_at":"2024-10-25T18:29:37.099Z","dependency_job_id":"3c622987-222d-4cd0-8d9d-409fe5e69484","html_url":"https://github.com/ColinKennedy/USD-Cookbook","commit_stats":null,"previous_names":[],"tags_count":59,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColinKennedy%2FUSD-Cookbook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColinKennedy%2FUSD-Cookbook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColinKennedy%2FUSD-Cookbook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ColinKennedy%2FUSD-Cookbook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ColinKennedy","download_url":"https://codeload.github.com/ColinKennedy/USD-Cookbook/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253045732,"owners_count":21845767,"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":["cpp","python","recipes","usd","vfx"],"created_at":"2024-08-03T03:00:55.189Z","updated_at":"2025-05-08T10:31:33.635Z","avatar_url":"https://github.com/ColinKennedy.png","language":"Mathematica","funding_links":[],"categories":["Reference","References","Tools, Pipeline \u0026 Utilities"],"sub_categories":["Certification","USD (Universal Scene Description)"],"readme":"This repository is a collection of simple USD projects. Each project\nshows off a single feature or group of USD features.\n\n\n## Structure summary\n\nThis repository is split into six categories\n\n- Features\n- Concepts\n- Tricks\n- Plugins\n- Tools\n- References\n\n**Features** highlight a single class or set of functions for working in USD.\n\n**Concepts** take features explained in Features and extends them to real-world examples.\n\n**Tricks** are simple, isolated ideas using USD Features.\n\n**Plugins** show how to customize USD to suit your pipeline.\n\n**Tools** are miscellaneous scripts that are built to do a specific task, with USD.\n\n**References** are useful pages for finding more information about USD and how to interact with it in your projects.\n\nEvery project in this repository will show how to work in Python, C++,\nand USDA wherever possible.\n\n\n## How to view\nIf a concept folder is trying to show off a USD feature but it takes a\nlot of code then the top-level README.md file is there to summarize the\nimportant bits. It may also refer to other resources for where to read\nmore.\n\nLastly, source-code files may contain explanations for what is shown.\nEach of these lines is marked with `XXX`.\n\n\n## How to build\n### C++\nUnless a C++ project has specific instructions, every project compiles\nand executes using the following commands:\n\n```bash\ncd {some_concept_cpp_folder}/build\nUSD_INSTALL_ROOT=/wherever/you/installed/USD/to cmake ..\nmake\n./run_it\n```\n\n`USD_INSTALL_ROOT` typically defaults to `/usr/local/USD`\non Linux but your location may vary.\nSee [USD's build documentation](https://github.com/PixarAnimationStudios/USD#3-run-the-script) for details.\n\n\n### Python\nPython modules can always run using `python name_of_module.py`\n\n\n## Sections\nHere are links of a recommended viewing order for every project in this repository.\n\n\n### Features\n\n[Adding comments to USD files](features/add_comment)\n\n[SetKind onto UsdPrim](features/set_kind)\n\n[specializes composition arc](features/specializes)\n\n[Using Prim AssetInfo](features/asset_info)\n\n[Defining customizable userProperties](features/userProperties)\n\n[Edit Targets](features/edit_targets)\n\n[Value resolution caching](features/value_caching)\n\n[Computing bounding boxes, using UsdGeomImageable and UsdGeomBBoxCache](features/world_bounding_box)\n\n[Pixar's specializes example](features/specializes_glossary_example)\n\n[Using \"purposes\" on UsdPrim objects](features/purposes)\n\n[UsdResolveInfo - Finding where opinions come from](features/usd_resolve_info)\n\n[Enable debugging messages and write your own](features/enable_debugging)\n\n[Profiling USD stages](features/profiling_usd.md)\n\n[How to use Value Clips](features/value_clips)\n\n[Setting Time Varying Attributes With Sdf](features/time_varying_attributes_sdf)\n\n[SdfChangeBlock - Efficient USD authoring](features/sdf_change_block)\n\n[SdfBatchNamespaceEdit and SdfNamespaceEdit - Efficient USD authoring](features/batch_namespace_edit)\n\n[UsdStageCache - caching USD stages](features/caching)\n\n[TfNotice - Run functions when a stage changes, using callbacks](features/notices)\n\n[TfNotice - Send your own custom callbacks](features/notice_send)\n\n\n### Concepts\n\n[Valid Model Hierarchies](concepts/valid_model_hierarchies)\n\n[Understanding VariantSets](concepts/variant_set_understanding)\n\n[Overriding VariantSets](concepts/variant_set_in_stronger_layer)\n\n[How to uniquify an instanced UsdPrim](concepts/uniquify_an_instance)\n\n[UsdRelationship Forwarding](concepts/relationship_forwarding)\n\n[Using VariantSets in a production scenario](concepts/variant_set_production_shot)\n\n[A practical example of the \"specializes\" composition arc](concepts/specializes_a_practical_example)\n\n[The \"specializes\" composition arc as a fallback mechanism](concepts/specializes_as_a_fallback_mechanism)\n\n[Reference a Prim in the current SdfLayer](concepts/reference_into_prim)\n\n[How to find \"Orphaned\" overs](concepts/orphaned_over)\n\n[A mesh with a material](concepts/mesh_with_materials)\n\n[Asset composition arcs - how subLayers, references, and payloads work together](concepts/asset_composition_arcs.md)\n\n\n### Tricks\n\n[Printing and modifiying prims using the C++ STL](tricks/stl_iteration)\n\n[Custom traversals with boost](tricks/stl_iteration2)\n\n[Traversing instanced prims](tricks/traverse_instanced_prims)\n\n[Variant auto-selections - Using VariantSets to modify other VariantSets](tricks/variant_set_auto_selections)\n\n[Copy opinions from a VariantSet onto another Prim](tricks/copy_variant_set_to_prim)\n\n[Find An Attribute's Source](tricks/attribute_source_check)\n\n[Find a Prim's bound material (includes collections API)](tricks/bound_material_finder)\n\n[2-pass exporting - Export USD stages 100x faster](tricks/fast_export)\n\n[Flatten a USD layer stack](tricks/flatten_layer_stack)\n\n[Use weaker layers to modify stronger layers](tricks/use_weaker_layers_to_modify_stronger_layers)\n\n[Multi-payloads - Yes, you can have more than one](tricks/multi_payload)\n\n[Getting Prims through VariantSets](tricks/get_sdf_prim_path)\n\n\n### Plugins\n\n[usdview_auto_reloader - Update layers in usdview automatically](plugins/usdview_auto_reloader)\n\n[usdview_root_loader - Recursively load / unload Prim payloads](plugins/usdview_root_loader)\n\n[usdview_purpose_swap - Change between proxy and render purposes with a single button](plugins/usdview_purpose_swap)\n\n[usdview_copy_camera - Make a prim in usdview to represent the current view](plugins/usdview_copy_camera)\n\n[VariantSet fallback selections](plugins/variant_fallbacks)\n\n[VariantSet selection export polices](plugins/registered_variant_selection_export_policies)\n\n[Adding custom metadata](plugins/plugin_metadata)\n\n[Custom USD schemas](plugins/custom_schemas_with_python_bindings)\n\n[A custom ArResolver plugin](plugins/custom_resolver)\n\n\n### Tools\n\n[usd_searcher - A command-line tool for searching USD files](tools/usd_searcher)\n\n[Exporting UsdSkel from scratch](tools/export_usdskel_from_scratch)\n\n\n### References\n\n[extentsHint and bounding boxes](references/extents_hint_and_bounding_boxes)\n\n[Link Python Documentation To USD's Documentation](references/link_to_the_api_documentation)\n\n[Understanding usdview](references/usdview_style_documentation)\n\n[The USD supported plugin mastersheet](references/working_with_plugins.md)\n\n[Where to find more resources](references/where_to_find_resources.md)\n\n\n## Studying\n\nThere's also Anki deck for this repository, which you can download\n[by clicking here](https://drive.google.com/file/d/1qx8N9wwL2ufviuWcQrY3zT2S6GN6nrg7/view?usp=sharing)\n\n\n## Roadmap\nSee [This wiki page](https://github.com/ColinKennedy/USD-Cookbook/wiki)\nfor a list of planned topics that will be added in the future.\n\n\n## Contributing\nThis repository is a constant WIP. If there's something that you'd like\nto see written about, please suggest it as an issue so that I / others\ncan pick it up and work on it. Also, if you have something that you'd\nlike to contribute, please make a PR. Submissions are welcome!\n\n\n## Disclaimer\nBut note: This repository may not actually show the best way to do\nthings in USD. It's just a collection of (my) personal findings. Also,\nas Pixar comes out with new USD releases and learning resources, this\ninformation may become out-of-date. Always prefer primary guides and\ndocumentation over anything that you see here.\n\n\n## Final Note\nTested with:\n- CentOS 7.6\n- USD 19.07\n- cmake version 3.13.4\n- make 3.82\n- g++ 8.3.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FColinKennedy%2FUSD-Cookbook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FColinKennedy%2FUSD-Cookbook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FColinKennedy%2FUSD-Cookbook/lists"}