Accessibility Champion Program
FerroxLabs/wayland
Organizational accessibility culture building expertise covering champion network design, accessibility training curricula, audit cadence and methodology, KPI definition and tracking, executive…
Align a MuJoCo MJCF robot model with a URDF source while preserving kinematics, geometry, masses, centers of mass, and inertia tensors.
$ npx skills add i2rt-robotics/i2rt --skill align-urdf-mjcf -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install i2rt-robotics/i2rt align-urdf-mjcf --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/i2rt-robotics/i2rt.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.codex/skills/align-urdf-mjcf .claude/skills/align-urdf-mjcf && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "align-urdf-mjcf" agent skill from https://github.com/i2rt-robotics/i2rt/tree/main/.codex/skills/align-urdf-mjcf into .claude/skills/align-urdf-mjcf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "align-urdf-mjcf", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/i2rt-robotics/i2rt/tree/main/.codex/skills/align-urdf-mjcfType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add i2rt-robotics/i2rt --skill align-urdf-mjcf -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install i2rt-robotics/i2rt align-urdf-mjcf --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/i2rt-robotics/i2rt.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.codex/skills/align-urdf-mjcf .agents/skills/align-urdf-mjcf && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "align-urdf-mjcf" agent skill from https://github.com/i2rt-robotics/i2rt/tree/main/.codex/skills/align-urdf-mjcf into .agents/skills/align-urdf-mjcf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "align-urdf-mjcf", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add i2rt-robotics/i2rt --skill align-urdf-mjcf -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install i2rt-robotics/i2rt align-urdf-mjcf --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/i2rt-robotics/i2rt.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.codex/skills/align-urdf-mjcf .cursor/skills/align-urdf-mjcf && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "align-urdf-mjcf" agent skill from https://github.com/i2rt-robotics/i2rt/tree/main/.codex/skills/align-urdf-mjcf into .cursor/skills/align-urdf-mjcf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "align-urdf-mjcf", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/i2rt-robotics/i2rt.git --path .codex/skills/align-urdf-mjcf--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add i2rt-robotics/i2rt --skill align-urdf-mjcf -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install i2rt-robotics/i2rt align-urdf-mjcf --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/i2rt-robotics/i2rt.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.codex/skills/align-urdf-mjcf .gemini/skills/align-urdf-mjcf && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "align-urdf-mjcf" agent skill from https://github.com/i2rt-robotics/i2rt/tree/main/.codex/skills/align-urdf-mjcf into .gemini/skills/align-urdf-mjcf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "align-urdf-mjcf", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install i2rt-robotics/i2rt align-urdf-mjcfInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add i2rt-robotics/i2rt --skill align-urdf-mjcf -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/i2rt-robotics/i2rt.git skills-src && mkdir -p .github/skills && cp -r skills-src/.codex/skills/align-urdf-mjcf .github/skills/align-urdf-mjcf && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "align-urdf-mjcf" agent skill from https://github.com/i2rt-robotics/i2rt/tree/main/.codex/skills/align-urdf-mjcf into .github/skills/align-urdf-mjcf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "align-urdf-mjcf", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add i2rt-robotics/i2rt --skill align-urdf-mjcf -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install i2rt-robotics/i2rt align-urdf-mjcf --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/i2rt-robotics/i2rt.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.codex/skills/align-urdf-mjcf .opencode/skills/align-urdf-mjcf && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "align-urdf-mjcf" agent skill from https://github.com/i2rt-robotics/i2rt/tree/main/.codex/skills/align-urdf-mjcf into .opencode/skills/align-urdf-mjcf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "align-urdf-mjcf", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
align-urdf-mjcfAlign a MuJoCo MJCF robot model with a URDF source while preserving kinematics, geometry, masses, centers of mass, and inertia tensors.
Align Urdf Mjcf is an agent skill from i2rt-robotics/i2rt. Align a MuJoCo MJCF robot model with a URDF source while preserving kinematics, geometry, masses, centers of mass, and inertia tensors. Use when comparing or synchronizing .urdf and .xml robot descriptions, aligning URDF link frames or mesh headings with world axes, changing a robot root or base orientation without moving downstream links unintentionally, fixing mesh paths or joint names, matching home-pose link frames and link lengths, converting URDF inertias to MuJoCo principal inertias, keeping an arm model…
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in AI & LLM Engineering, covering Accessibility and Embeddings. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 120c3c8. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitrgFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Align Urdf Mjcf loads about 4.4k tokens when it runs. Until then it costs about 190 tokens; SKILL.md has 2,320 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from i2rt-robotics/i2rt at commit 120c3c8, republished under its MIT licence (© i2rt-robotics). 2,320 words, ~4,398 tokens.
.claude/skills/align-urdf-mjcf/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Treat the URDF as the source of truth unless the user states otherwise. Produce the smallest MJCF change that makes the requested arm scope numerically equivalent at the home pose and remains compatible with the repository's model-composition code.
For the YAM arm-only contract, retain exactly six arm joints named joint1 through joint6. Keep the terminal body named gripper -- the end-effector mount, named after the URDF's joint6 child link. Do not copy the URDF gripper mass, gripper geometry, or tip bodies into the arm MJCF.
Use rg, rg --files, and an XML parser to collect:
Confirm actual mesh filenames on disk. Follow the repository's URI convention in URDF, such as package://yam/... when required. In MJCF, resolve the same files through meshdir or absolute paths used by the composition utility.
Normalize the URDF before synchronizing the MJCF:
base, link1 through linkN, and the joints joint1 through jointN in kinematic order. Update every parent, child, transmission, control, and configuration reference when renaming.package://yam/...; do not invent or silently rename a mesh file.When the user requests a heading correction while keeping the global base link frame fixed:
R_heading, normally a yaw about world Z.R_heading to the base visual and collision transforms. Rotate the base center of mass and inertial-frame orientation consistently so its dynamics continue to describe the rotated physical base.base -> link1 joint origin, for example T_base_link1_new = R_heading @ T_base_link1_old when base and world axes coincide. Leave downstream relative joint transforms unchanged.base frame is unchanged, the base mesh and every non-base link received exactly R_heading, downstream relative kinematics are unchanged, and all joint world axes are correct. Present the corrected visual heading to the user for confirmation.Use these equivalences:
| URDF | MJCF |
|---|---|
| Root link frame | Top-level body frame |
Joint origin | Child body pos and quat |
Joint axis | Joint axis, expressed in the joint/body frame |
Link visual origin | Geom pos and quat |
Link inertial origin xyz | Inertial pos |
| Link mass | Inertial mass |
| Inertia plus inertial RPY | Principal-axis quat plus diaginertia |
Represent the base as an explicit MJCF body when it has mass or inertia. A worldbody geom alone cannot represent the URDF base dynamics.
For an arm-only terminal mount:
1e-6 and diagonal inertia 1e-9 1e-9 1e-9.Interpret URDF RPY as:
R = Rz(yaw) @ Ry(pitch) @ Rx(roll)
Interpret MuJoCo quaternions as w x y z. Compare rotations as matrices because q and -q represent the same rotation.
Compute home-pose global transforms recursively:
T_world_child = T_world_parent @ T_parent_child
Apply frame changes deliberately:
After every transform edit, recompute all global link poses at the home configuration and verify that only the requested frames moved.
For each included link:
MuJoCo may recenter mesh vertices during compilation and store a mesh reference transform. Do not declare a geometry mismatch by comparing compiled geom_xpos directly with a URDF visual frame. First account for MuJoCo's mesh reference transform, or compare the source geom transform and underlying mesh file identity.
Copy mass and center of mass exactly for each physical arm link.
URDF gives a symmetric inertia tensor in its inertial frame:
I_urdf = [[ixx, ixy, ixz],
[ixy, iyy, iyz],
[ixz, iyz, izz]]Rotate it into the link/body frame using the URDF inertial-origin rotation:
I_body = R_inertial @ I_urdf @ R_inertial.T
Convert I_body to MuJoCo principal form:
eigenvalues, eigenvectors = eigh(I_body).+1; flip one eigenvector if necessary.w x y z quaternion.diaginertia.I_check = R_quat @ diag(diaginertia) @ R_quat.T and compare it with I_body.Prefer high-precision quat plus diaginertia values. MuJoCo can diagonalize fullinertia, but that compilation step may introduce a larger reconstruction residual. Do not specify an inertial quaternion together with fullinertia.
Nest bodies in kinematic order:
world
└── base
└── link1 / joint1
└── link2 / joint2
└── ...
└── gripper / joint6 (end-effector mount; empty in the arm-only MJCF)Place each joint at pos="0 0 0" inside its child body when the body's transform already represents the URDF joint origin. Copy joint type, axis, range, and name exactly. Keep actuator-force metadata only if the existing MJCF convention requires it.
For YAM, expect six arm meshes: base.stl and link1.stl through link5.stl. Exclude gripper.stl, tip_left.stl, and tip_right.stl from the arm MJCF.
Use the complete YAM end-effector contract when changing shared arm mounts or composition code:
| Variant | Role | Compiled gripper joints | Required sites | Preserve |
|---|---|---|---|---|
linear_4310 | Active linear reference | 2 | tcp_site, grasp_site | DM4310 settings, mass, inertia, linear limiter |
linear_3507 | Active linear | 2 | tcp_site, grasp_site | DM3507 settings, target-specific mass, inertia, linear limiter |
crank_4310 | Active crank | 0 | tcp_site, grasp_site | Root offset, mass, inertia, crank limiter |
flexible_4310 | Active flexible linear | 2 | tcp_site, grasp_site | Root offset, geometry, dynamics, motor direction, linear limiter |
no_gripper | Passive mount placeholder | 0 | tcp_site, grasp_site | No motor, no calibration, no limiter, six arm DOFs |
yam_teaching_handle | Passive physical handle | 0 | tcp_site | Root offset, mass, inertia, no motor, six arm DOFs |
Count only compiled body joints; an equality-section <joint> element does not add a MuJoCo joint. Do not add joints, sites, motors, or limiter settings merely to make variants structurally identical.
Use linear_4310 as the arm-side mount-frame reference for all four arm variants: yam, yam_pro, yam_ultra, and big_yam. Move each end-effector-specific rigid offset into its XML root body, but preserve every target-specific property listed above. Do not modify an unaffected variant unless the user requests it or a shared change requires it.
When a shared mount or composition change is in scope, compile the full four-arm by six-end-effector matrix. Verify the declared joint and site contract for each model, and separately verify the robot-interface DOF count because active crank actuation is not represented by a gripper MJCF joint.
Keep the arm's terminal joint frame independent of the selected gripper. If the composition code overwrites the deepest arm body's pos, quat, or joint axis from each gripper config, treat those fields as arm mount data rather than gripper-specific offsets.
Use a known-correct gripper as the reference, such as linear_4310:
Read the old reference and target mount transforms for every supported arm variant.
Derive the target gripper's root transform in the reference mount frame:
T_target_root = inverse(T_reference_mount_old) @ T_target_mount_old
Compare T_target_root across arm variants. If they agree within the precision of the original configs, encode one high-precision transform in the target gripper XML root body.
Copy each arm variant's reference pos, quat, and axis into the target gripper config. Preserve gripper motor polarity, gains, limits, calibration, and limiter settings.
Leave the target gripper's inertials, geoms, child-body transforms, joints, TCP site, and grasp site unchanged. The root-body transform carries the complete gripper rigidly.
After rebasing the reference mount itself, calculate the expected target placement as:
T_target_expected = T_reference_mount_new @ inverse(T_reference_mount_old) @ T_target_mount_old
The new composition must satisfy:
T_target_actual = T_reference_mount_new @ T_target_root
Compare these transforms as translation vectors and rotation matrices. Retain full calculated precision; do not replace a derived sub-micrometer translation or near-principal quaternion with a visually cleaner approximation unless it stays within the required tolerance.
If root transforms differ materially across arm variants, do not force them into one shared gripper XML. Determine whether the variants have genuinely different physical adapters or whether their source configs use inconsistent frames.
Parse both source files and calculate maximum absolute errors for:
Use tight tolerances appropriate to the source precision. A useful target for values copied from decimal XML is:
< 1e-12 m< 1e-12< 1e-15 kg·m²Compile the MJCF with the repository's supported MuJoCo version. For the standalone YAM arm-only model, verify:
nbody == 8: world plus base, five link bodies, and the gripper mount.njnt == 6nq == 6ngeom == 6base, link1 through link5, and gripper.joint1 through joint6.Then exercise the repository's arm/gripper composition function for every supported external gripper and compile every generated MJCF. Verify that the first six joints remain joint1 through joint6. Do not infer robot-interface DOF count solely from MuJoCo njnt: some grippers add no MuJoCo joint, while coupled linear grippers may add two.
For a gripper-mount standardization:
joint1 through joint6, tcp_site, and grasp_site remain present.T_target_expected.Finish with:
git diff --check
git diff -- path/to/model.urdf path/to/model.xml
git status --short --untracked-files=allLead with the achieved scope. Report:
© i2rt-robotics, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .codex/skills/align-urdf-mjcf of i2rt-robotics/i2rt.
Open the folder on GitHubat commit 120c3c8
Align Urdf Mjcf next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Align Urdf Mjcf this skilli2rt-robotics/i2rt | 166 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Accessibility Champion ProgramFerroxLabs/wayland | 608 | — | ~3.9k | Automated safety check: Pass | Apache-2.0 | |
| Tune Triton Ascend KernelsKrusty84/triton-ascend-agent-dev-kit | 106 | — | ~813 | Automated safety check: Pass | Apache-2.0 | |
| Streaming Responsethedaviddias/ux-patterns-for-developers | 258 | — | ~1k | Automated safety check: Pass | Custom licence | |
| Color Pickerthedaviddias/ux-patterns-for-developers | 258 | — | ~1.3k | Automated safety check: Pass | Custom licence | |
| Date Pickerthedaviddias/ux-patterns-for-developers | 258 | — | ~1.5k | Automated safety check: Pass | Custom licence |
FerroxLabs/wayland
Organizational accessibility culture building expertise covering champion network design, accessibility training curricula, audit cadence and methodology, KPI definition and tracking, executive…
Krusty84/triton-ascend-agent-dev-kit
Add standard or advanced autotuning to Triton-Ascend kernels, define shape keys and candidate meta-parameters, and structure kernels so automatic split and tiling analysis can recognize their axes.
thedaviddias/ux-patterns-for-developers
A skill your agent uses when implementing real-time AI response streaming.
thedaviddias/ux-patterns-for-developers
A skill your agent uses when implementing select colors with visual feedback.
thedaviddias/ux-patterns-for-developers
A skill your agent uses when implementing select dates from a calendar interface.
thedaviddias/ux-patterns-for-developers
A skill your agent uses when you need to display a menu icon for mobile devices.
i2rt-robotics/i2rt
Normalize a raw ONShape-exported YAM-family URDF into the aligned, world-referenced form used across i2rt robot models, as a two-stage pipeline around a human inspection checkpoint.
Categories
Align a MuJoCo MJCF robot model with a URDF source while preserving kinematics, geometry, masses, centers of mass, and inertia tensors. Align Urdf Mjcf is an agent skill from i2rt-robotics/i2rt. Align a MuJoCo MJCF robot model with a URDF source while preserving kinematics, geometry, masses, centers of mass, and inertia tensors.
Align Urdf Mjcf fits situations like: synchronizing .urdf and .xml robot descriptions; aligning URDF link frames; mesh headings with world axes; changing a robot root.
Run `npx skills add i2rt-robotics/i2rt --skill align-urdf-mjcf -a claude-code`. Or copy the skill folder (.codex/skills/align-urdf-mjcf in i2rt-robotics/i2rt) into .claude/skills/align-urdf-mjcf in your project. Claude Code loads it when a task matches its description.
Run `npx skills add i2rt-robotics/i2rt --skill align-urdf-mjcf -a codex`. Or copy the skill folder (.codex/skills/align-urdf-mjcf in i2rt-robotics/i2rt) into .agents/skills/align-urdf-mjcf in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add i2rt-robotics/i2rt --skill align-urdf-mjcf -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/align-urdf-mjcf, .gemini/skills/align-urdf-mjcf, .github/skills/align-urdf-mjcf and .opencode/skills/align-urdf-mjcf in your project.
Going by SKILL.md and its folder, Align Urdf Mjcf needs the command-line tools its instructions call (git and rg).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Align Urdf Mjcf is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Align Urdf Mjcf: Accessibility Champion Program (FerroxLabs/wayland, 608 stars), Tune Triton Ascend Kernels (Krusty84/triton-ascend-agent-dev-kit, 106 stars), Streaming Response (thedaviddias/ux-patterns-for-developers, 258 stars) and Color Picker (thedaviddias/ux-patterns-for-developers, 258 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
i2rt-robotics (a GitHub organization) maintains it in i2rt-robotics/i2rt, which has 166 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on September 17, 2026.
Source: i2rt-robotics/i2rt on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.