Houdini Resources

Updated on June 28  2025



Deborah R. Fowler



USD and Variant Sets

Posted June 26  2025
Updated on June 27  2025

USD Table of Contents


Peter Arcara has an excellent tutorial on usd-asset-building-with-solaris/ where he goes over Variants and LOD (level of detail). He includes a hip file as well - highly recommend.

Important (guidelines for USD asset create exist!): https://github.com/usd-wg/assets/blob/main/docs/asset-structure-guidelines.md

LOD again, is a concept broader than Houdini or USD and is the concept of putting less expensive geometry in place of more expensive based on how far it is from camera. In fact, for camera distance it is not implemented in USD but in individual DCC, in particular in this context - Solaris. The LOD from camera is currently not available for animated cameras.

This is where the difference in mechanism from instancing comes into play. Variant sets provide a "switchable" way to define different configurations for a prim. (Similar to the method with copy to points and the piece attribute method we discussed on the copy family page. That is effectively utilizing the concept of a variant set in USD however, it does not automatically create a USD variant set. To create a variant set you would need to add a create USD variant set node in LOP). The USD variant set is considered more performative (according to goggle AI summary) if you are using USD on a large-scale.

Variant sets in USD can be applied by opinions (overrides) or a prim property or switch at runtime during scene authoring (creating and editing scenes).

Instancing overrides apply to a specific instance with the overrides stored separately and applied. Overrides only affect the modified properties of the specific instance.

Both allow variation - instancing allows more instance-specific changes. Instancing can be more efficient.

Variant sets allow options for an asset that are pre-defined. Instances allow modifications to individual instances of an asset.

In the video there is an example of a pig head at various degrees of complexity. I have highlighted below some of the stumbling points I came across when trying to recreate the idea from scratch. I would encourage you to watch the original video. This is my very simplified quick example file variantSets.hipnc

In the instancer node be sure that you specify your prototype primitive in the Protoypes tab - this will only be available once you switch off "Use Entire Stage as Prototype". This will be used in the

In the Auto Select LOD node specify your Primitives (/copytopoints1** in my case)

Solaris has LOD from camera. One thing to note is that instanceable references (needed with variant sets) are more expensive than point instances so be careful when selecting optimization techniques.