Rules
Basic
- class omni.asset_validator.core.KindChecker
All kinds must be registered and conform to the rules specified in the USD Glossary.
- class omni.asset_validator.core.ExtentsChecker
Boundable prims have the extent attribute. For point based prims, the value of the extent must be correct at each time sample of the point attribute
- class omni.asset_validator.core.TypeChecker
All prims must have a type defined.
- class omni.asset_validator.core.LayerSpecChecker
This checker validates all LayerSpecs to ensure their type names and values types conform to SdfValueTypeNames. Also, their value types (including timesamples) should match the underlying type names.
Omniverse Geometry
- class omni.asset_validator.core.SubdivisionSchemeChecker
USD default value for subdivision scheme is Catmull-Clark. This is often overlooked and incorrect for tessellated CAD geometry. Additionally, it’s often overlooked that normals should not be authored on a subdivision mesh.
- class omni.asset_validator.core.ManifoldChecker
Counts the number of non-manifold edges and vertices. A non-manifold edge has more than two adjacent faces. A non-manifold vertex as more than two adjacent border edges, where a border edge is an edge with only one adjacent face.
Works on non time varying geometry.
- class omni.asset_validator.core.IndexedPrimvarChecker
For Primvars with non-constant values of interpolation, it is often the case that the same value is repeated many times in the array.
An indexed primvar can be used in such cases to optimize for data storage if the primvar’s interpolation is non-constant (i.e. uniform, varying, face varying or vertex).
- class omni.asset_validator.core.UnusedMeshTopologyChecker
Points which are not referenced by the indices can be removed.
Works on non time varying geometry.
- class omni.asset_validator.core.UnusedPrimvarChecker
Values which are not referenced by the indices in a primvar can be removed.
Works on non time varying geometry.
- class omni.asset_validator.core.ZeroAreaFaceChecker
Faces with zero area can be removed. May produce welding after removal.
Works on non time varying geometry.
- class omni.asset_validator.core.WeldChecker
If attributes contain equal values they can be unified and the indices adjusted accordingly.
Works on non time varying geometry.
- class omni.asset_validator.core.ValidateTopologyChecker
Validate the topology of a mesh on all time samples.
Omniverse Layout
- class omni.asset_validator.core.OmniDefaultPrimChecker
- class omni.asset_validator.core.OmniOrphanedPrimChecker
Omniverse Material
- class omni.asset_validator.core.OmniMaterialPathChecker
- class omni.asset_validator.core.OmniMaterialOutOfScopeChecker
- class omni.asset_validator.core.OmniMaterialUsdPreviewSurfaceChecker
USD Schema
- class omni.asset_validator.core.UsdGeomSubsetChecker
Ensures that a valid family name attribute is set for every UsdGeomSubset that has a material binding.
- class omni.asset_validator.core.UsdLuxSchemaChecker
In USD 21.02, Lux attributes were prefixed with inputs: to make them connectable. This rule checker ensure that all UsdLux attributes have the appropriate prefix.
- class omni.asset_validator.core.UsdMaterialBindingApi
Rule ensuring that the MaterialBindingAPI is applied on all prims that have a material binding property.
- class omni.asset_validator.core.UsdDanglingMaterialBinding
Rule ensuring that the bound material exists in the scene.
- class omni.asset_validator.core.SkelBindingAPIAppliedChecker
A prim providing skelBinding properties, must have SkelBindingAPI applied on the prim.
USD Performance
- class omni.asset_validator.core.UsdAsciiPerformanceChecker
For performance reasons, large arrays and time samples are better stored in crate files. This alerts users to any layers which contain large arrays or time sample dictionaries stored in .usda or ASCII backed .usd files.