Skip to content

carlynorama/USDHelloWorld

Repository files navigation

USDHelloWorld

Repo for learning about the OpenUSD "fileformat". A "Universal Scene Description", OpenUSD both provides a specification (through the code structure) for how to save information on disk, but also a runtime API to weave together complex interlocking information.

For more info and to get help: https://forum.aousd.org/

Related Projects: SketchPad | GHActionsForOpenUSD

USD, unlike other "file formats", has a a mission to provide NON DESTRUCTIVE compilation of information. That makes USD data storage verbose, but also very flexible, and very easy to work on in teams.

This repo focuses on understanding the specification for saving information in human readable format, the .usda file.

Proposed Spec for USDA files discussion:
PixarAnimationStudios/OpenUSD#2126

Proposed Spec for USDC files discussion:
PixarAnimationStudios/OpenUSD#2086

Asset Structure Guidelines:
https://github.com/usd-wg/assets/blob/main/docs/asset-structure-guidelines.md

Top Getting Started Picks

These are overviews of what USD is / what problems it was meant to solve, not technical installing the library how-tos.

Brief OVerview - Video

Luk, Aaron. “Universal Scene Description (OpenUSD): 4 Superpowers to Get You Started,” Video (4:11). YouTube NVIDIA Developer Channel: https://www.youtube.com/watch?v=1RnTSZK9Sw. Accessed: 2023 07 13.

Brief overview of what makes USD special by one of the folks who was there at the beginning.

In Depth Hello World - Video

Van Gelder, Dirk, "Introduction to USD," Video (26:36). NVidia-On-Demand, GTC Digital (April 2021): https://www.nvidia.com/en-us/on-demand/session/gtcspring21-s33132/?playlistId=playList-911c5614-4b7f-4668-b9eb-37f627ac8d17. Accessed: 2023 07 13.

This does include some 101 how to information, but also explains why USD does things that way. Python focused.

Longer Overview - Video

Has many "where to find more info" resources at the end.

Two Companions

The glossary on the official documentation site, alphabetical by definition, cannot be read in a way that presents a cohesive narrative.

The Book of USD resource provides simpler definitions in a useful order as an entry point to learn more.

The authors of the Book of USD recommend cross referencing what they've written with the glossary, so I list them as companions.

Biggest Surprise

https://developer.nvidia.com/isaac-sim No spoilers.

Where to Find More

Learning content hubs

Misc Tips

Gotcha's that got me:

  • Swift UUID() is too long to be a prim identifier, also may start with a number which appears to be not allowed.
  • ARKit compliant usd files must be a single usdc file or a usdz archive that contains a single usdc file (plus assets).
  • A defaultPrim cannot be a nested prim, e.g. no "defaultPrim = MainPrim/SubPrim"

In This Repo

SETUP.md

See SETUP.md for install instructions for the Pixar library and mention of USDZ Tools.

examples

.usda files pulled from explorations that are good exemplars of a learned concept.

All of these examples pass usdchecker but NONE will pass usdchecker --arkit because none of them are usdc files.

usdcat -o output_test_2.usdc --flatten $USDA_ROOT_FILE_PATH_WITH_EXT

Will make many of them pass so far.

explorations

the support files for the learning about the USD file format series on whynotestflight.com. More of a dev journal / travelogue than a how to

TOC

Link Dump

Pixar / OpenUSD

NVIDIA

ASWD USD WG

Apple

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published