Runtime schema registration

Does anyone know if it’s possible for a plugin to register a schema with USD without having to build up the schema first with usdGenSchema?

e.g for a toy Hydra render, I want to be able to register a schema class that inherits and specialized RenderSettings in the way that Karma and VRay do.

I don’t particularly need any of the C++ API definitions etc… or the things that usdGenSchema does, but I also don’t want to do completely ad-hoc schema reading

You’re basically talking about what we call a “codeless schema”, and the only requirements are that the plugInfo.json and generatedSchema.usda published with the plugin contain the right data in the right form. Doesn’t matter how you generate them.

Curious to hear that vendors are deriving from RenderSettings… we had imagined that most schemas that renderers care about would be augmented by vendors with auto-apply API schemas, so that the base/core settings would still be usable by other renderers.

Ah cool. I’ll play with that. I wasn’t sure if codeless schemas were integrated yet but must have missed it. I see NVIDIA have a sample here usd-plugin-samples/src/usd-plugins/schema/omniExampleCodelessSchema/schema.usda at main · NVIDIA-Omniverse/usd-plugin-samples · GitHub

All of the schemas that ship in pxrUsdRi are codeless - we developed it initially to foster our Prman integration!