Skip to content

Core compliance checker (UsdValidation rewrite, stacked on #1)#5

Open
zakmat wants to merge 13 commits into
ros-simulation:core-schemafrom
RobotecAI:mzak/usd-validation-rewrite
Open

Core compliance checker (UsdValidation rewrite, stacked on #1)#5
zakmat wants to merge 13 commits into
ros-simulation:core-schemafrom
RobotecAI:mzak/usd-validation-rewrite

Conversation

@zakmat

@zakmat zakmat commented May 18, 2026

Copy link
Copy Markdown

This PR stacks on #1 since it depends on schemas introduced there.
It directly supersedes #3.

The checker ships its validators in two interchangeable forms that share the same plugInfo.json and the same implementation modules:

  • usd-check — a pure-Python CLI installable from PyPI. Works in any Python 3.12+ environment with no OpenUSD build required (usd-core brings the UsdValidation framework along on pip). Suited to quick local checks and lightweight CI workers.
  • usdRosValidators — a USD plugin discoverable via standard plugin loading. Studios with a full OpenUSD install can run the same validators through stock usdchecker. Suited to integrating with an existing USD asset pipeline.

Py-pi package was not republished as part of this PR - @maciejmajek let's sync how to approach that

Defers §4 extended-physics checks to a separate branch and until #2 .

Closes #3 once merged.

Demonstration of new validators integrated into usdview 26.05:
Screenshot from 2026-05-18 14-57-56

maciejmajek and others added 13 commits May 18, 2026 17:03
Signed-off-by: Maciej Majek <maciej.majek@robotec.ai>
Signed-off-by: Maciej Majek <maciej.majek@robotec.ai>
Signed-off-by: Maciej Majek <maciej.majek@robotec.ai>
Mechanically convert all test files to use the UsdValidation-style API
(run_validators, GetName, GetMessage, GetSites) while keeping the old
framework intact via a compatibility shim in conftest.py.

Signed-off-by: Mateusz Żak <mateusz.zak@robotec.ai>
What this enables:
- Validators are discoverable by keyword (rep0158, rep0158:1.1, etc.)
- Free usdchecker integration path via plugInfo.json (future)

Signed-off-by: Mateusz Żak <mateusz.zak@robotec.ai>
* Reduce bloat from the class→function conversion:

Signed-off-by: Mateusz Żak <mateusz.zak@robotec.ai>
* Follows the Pixar validatorTokens pattern from usdPhysicsValidators.

Signed-off-by: Mateusz Żak <mateusz.zak@robotec.ai>
Generate codeless plugin from core/ros/schema.usda
register it at checker startup.

Plugin layout separates library and resource modes:
- resources/generatedSchema.usda - shared schema definitions
- library/plugInfo.json - for C++ build (Type: library)
- resource/plugInfo.json - for Python checker (Type: resource)

Signed-off-by: Mateusz Żak <mateusz.zak@robotec.ai>
Signed-off-by: Mateusz Żak <mateusz.zak@robotec.ai>
Move the extended-physics validators and their tests out of the active checker.

Signed-off-by: Mateusz Żak <mateusz.zak@robotec.ai>
* declare validators under a new "usdRosValidators" entry
* make the checks discoverable with usdchecker --includeKeywords

Signed-off-by: Mateusz Żak <mateusz.zak@robotec.ai>
Signed-off-by: Mateusz Żak <mateusz.zak@robotec.ai>
Signed-off-by: Mateusz Żak <mateusz.zak@robotec.ai>
@zakmat zakmat marked this pull request as ready for review May 18, 2026 15:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants