skills/urdf-validator/SKILL.md
Pre-import validation and auto-fix for URDF files targeting Isaac Sim / USD
npx skillsauth add hkqai/MatClaw URDF Validator & FixerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Validate and fix URDF files before importing into Isaac Sim. Catches USD naming violations, duplicate materials, unbounded joint limits, missing inertial properties, and broken mesh references — problems that otherwise cause silent import failures.
Follow this sequence for best results:
Get a structural overview of the robot model.
urdf_inspect(file_path="/path/to/robot.urdf")
Review: link/joint counts, kinematic tree, mass distribution, mesh files.
Check for all known issues.
urdf_validate(file_path="/path/to/robot.urdf")
Review: issues by severity (error > warning > info) and category.
Auto-fix what can be fixed.
urdf_fix(
file_path="/path/to/robot.urdf",
output_path="/path/to/robot_fixed.urdf"
)
The original file is never modified. Check name_mapping in the result — if links or joints were renamed, downstream code (controllers, configs) needs updating too.
Confirm fixes resolved the issues.
urdf_validate(file_path="/path/to/robot_fixed.urdf")
Expect zero errors for fixed categories. Remaining warnings (e.g., missing collision geometry, package:// URIs) may need manual attention.
urdf_validate| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| file_path | str | None | Path to URDF file |
| urdf_string | str | None | URDF XML as string |
| categories | list[str] | all | Filter: usd_naming, materials, joint_limits, inertial, collision, mesh_references |
| min_severity | str | "info" | Minimum: error, warning, info |
urdf_fix| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| file_path | str | None | Path to URDF file |
| urdf_string | str | None | URDF XML as string |
| output_path | str | auto | Output file path (default: *_fixed.urdf) |
| fix_categories | list[str] | all | usd_naming, materials, joint_limits, inertial |
| default_mass | float | 0.1 | Default mass (kg) for missing inertial |
| default_inertia | float | 0.001 | Default diagonal inertia value |
| max_joint_position | float | 2π | Replace ±inf position limits |
| max_joint_velocity | float | π | Default velocity limit (rad/s) |
| max_joint_effort | float | 100.0 | Default effort limit (Nm) |
urdf_inspect| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| file_path | str | None | Path to URDF file |
| urdf_string | str | None | URDF XML as string |
| Category | What it checks | Auto-fixable? |
|----------|---------------|---------------|
| usd_naming | Hyphens, dots, spaces, leading digits in link/joint/material names | Yes — renames + updates all references |
| materials | Duplicate definitions with different RGBA, missing textures, JPEG warnings | Yes — deduplicates by appending suffix |
| joint_limits | Infinite limits, missing effort/velocity, missing <limit> element | Yes — clamps to configurable defaults |
| inertial | Missing <inertial>, zero/negative mass, zero inertia tensor | Yes — adds configurable defaults |
| collision | Visual geometry without corresponding collision geometry | No — requires manual modeling |
| mesh_references | Nonexistent mesh files, package:// URIs | No — mesh files must exist on disk |
<inertial> may be silently skipped or cause physics instability.package:// URIs won't resolve: Isaac Sim doesn't have ROS package resolution. Convert to relative or absolute paths.merge_fixed_joints = False in import config.name_mapping output.After fixing, verify the import works in Isaac Sim:
/path/to/isaacsim/python.sh scripts/verify_urdf_isaac_sim.py \
--original /path/to/robot.urdf \
--fixed /path/to/robot_fixed.urdf
This script imports both URDFs headless, checks prim paths, joints, articulation, and runs physics steps to verify stability.
tools
Analyze thermodynamic stability of inorganic materials by routing between two workflows: a cheap Materials Project-backed lookup path for known compositions, and a custom self-consistent MLIP hull workflow for novel or structure-specific materials. Use this skill whenever the user asks whether a material is stable, requests energy above hull, decomposition products, polymorph context, or wants to include stability as a screening criterion. This skill is intended to become the single orchestration layer for stability analysis, with workflow branching handled in the skill rather than inside an MCP tool.
development
Professional skill for setting up, executing, and debugging VASP DFT calculations using the Atomic Simulation Environment (ASE).
tools
Intelligent synthesis route planning for inorganic materials. Use this skill whenever the user needs a synthesis protocol.
development
Optimize CUDA/GPU simulation code using NVIDIA Nsight Systems (nsys) profiling. Use this skill whenever the user mentions performance problems, slow simulations, profiling, nsys, Nsight Systems, kernel optimization, GPU bottlenecks, or wants to speed up CUDA code. Also trigger when the user compares two scenes and one is unexpectedly slower, or asks "why is this slow?" about GPU code. This skill covers the full optimization loop: profiling, bottleneck diagnosis, targeted optimization, verification, and iterative measurement.