Agent skill

Align Urdf Mjcf

by i2rt-robotics in i2rt-robotics/i2rt

Align a MuJoCo MJCF robot model with a URDF source while preserving kinematics, geometry, masses, centers of mass, and inertia tensors.

MITAuto-check passedAI & LLM Engineering

Install Align Urdf Mjcf

skills CLI
$ npx skills add i2rt-robotics/i2rt --skill align-urdf-mjcf -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install i2rt-robotics/i2rt align-urdf-mjcf --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
align-urdf-mjcf
GitHub stars
166
Token cost
~4.4k tokens
SKILL.md length
2,320 words
Files
2
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

Align a MuJoCo MJCF robot model with a URDF source while preserving kinematics, geometry, masses, centers of mass, and inertia tensors.

  • Works in 5 steps: Read repository instructions and inspect… → Identify the source URDF, target MJCF,… → State the requested scope explicitly → …
  • Synchronizing .urdf and .xml robot descriptions
  • SKILL.md covers Goal, Establish the Contract, Inventory the Models and Align the URDF with World Axes, plus 10 more sections
  • Calls git and rg

What it does

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.

When your agent uses it

  • Synchronizing .urdf and .xml robot descriptions
  • Aligning URDF link frames
  • Mesh headings with world axes
  • Changing a robot root

Example prompts

  • “/align-urdf-mjcf”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Read repository instructions and inspect the dirty worktree before editing.
  2. Identify the source URDF, target MJCF, mesh directory, and any model-composition utilities or tests.
  3. State the requested scope explicitly
  4. Preserve unrelated user changes and assets.
  5. Create a short, verifiable task plan before editing.

What it can do on your machine

Read from SKILL.md and the folder at commit 120c3c8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • rg

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    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.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~190
When it runs · the whole SKILL.md, loaded when a task matches
~4.4k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from i2rt-robotics/i2rt at commit 120c3c8, republished under its MIT licence (© i2rt-robotics). 2,320 words, ~4,398 tokens.

Download SKILL.mdSave it as .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.
name
align-urdf-mjcf
description
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 at a specified DOF count without embedding gripper or tip bodies, or standardizing terminal mounts across linear, crank, flexible, no-gripper, and teaching-handle variants while preserving each end effector's physical placement.

Align URDF and MJCF

Goal

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.

Establish the Contract

  1. Read repository instructions and inspect the dirty worktree before editing.
  2. Identify the source URDF, target MJCF, mesh directory, and any model-composition utilities or tests.
  3. State the requested scope explicitly:
    • Which links and joints belong to the arm?
    • Does the terminal body represent a physical link or only an attachment frame?
    • Must gripper, finger, tip, tool, or top bodies be excluded?
    • How is “link length” defined? Default to the norm of the parent-to-child joint translation, but also require the full translation vector to match.
  4. Preserve unrelated user changes and assets.
  5. Create a short, verifiable task plan before editing.

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.

Inventory the Models

Use rg, rg --files, and an XML parser to collect:

  • Link names, parent-child relationships, and joint types.
  • Joint origins, axes, limits, and names.
  • Visual origins, mesh filenames, scales, and colors.
  • Masses, centers of mass, inertial-frame orientations, and inertia components.
  • MJCF compiler settings, mesh assets, nested body transforms, inertials, joints, geoms, sites, and top-level equality/contact sections.
  • Composition assumptions such as “append a gripper to the deepest body.”

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.

Align the URDF with World Axes

Normalize the URDF before synchronizing the MJCF:

  1. Name the arm links exactly base, link1 through linkN, and the joints joint1 through jointN in kinematic order. Update every parent, child, transmission, control, and configuration reference when renaming.
  2. Resolve every mesh URI against the filesystem and match the actual filename, capitalization, and extension. Use the repository's required URI form, such as package://yam/...; do not invent or silently rename a mesh file.
  3. Calculate all global link, visual, collision, and inertial poses at the home configuration and state the assumed world-axis convention.
  4. Render or otherwise present the base mesh with visible world axes and ask the user: “Does the base visually face the intended robot-forward direction?” If not, ask which world direction it should face or what yaw rotation is required. Treat this as a required checkpoint before changing heading; do not infer forward direction from CAD coordinates or link names.

When the user requests a heading correction while keeping the global base link frame fixed:

  1. Construct the requested rigid heading rotation R_heading, normally a yaw about world Z.
  2. Apply 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.
  3. Rotate every non-base home-pose link frame by the same rigid transform about the base origin. Encode the rotation once in the 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.
  4. Keep the first joint's local axis components unchanged when its entire joint frame rotates with the new origin; then verify the resulting world axis numerically. Re-express the axis only when the intended physical world axis is different. Never rotate both the joint frame and its local axis blindly.
  5. Preserve masses, joint ranges, and parent-to-child translation norms unless the user requests another physical change.
  6. Recompute all global home poses and verify that the 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.

Map URDF Semantics to MJCF

Use these equivalences:

URDFMJCF
Root link frameTop-level body frame
Joint originChild body pos and quat
Joint axisJoint axis, expressed in the joint/body frame
Link visual originGeom pos and quat
Link inertial origin xyzInertial pos
Link massInertial mass
Inertia plus inertial RPYPrincipal-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:

  • Give the mount body the URDF joint6 child-frame pose and joint6.
  • Use a tiny valid placeholder inertia only when MuJoCo requires it, for example mass 1e-6 and diagonal inertia 1e-9 1e-9 1e-9.
  • Add no terminal mesh, gripper mass, finger joint, or tip body.
  • Let the existing composition utility attach the selected external gripper.

Preserve and Change Poses Correctly

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:

  • To remove a synthetic root link while preserving every global pose, compose its transform into the new root's children, visuals, and inertials as required.
  • To rotate only a base mesh, change the base geom/visual transform; do not rotate the base body frame.
  • To rotate all descendant link frames while leaving the base frame fixed, apply the desired world rotation to the first child global transform, solve back for its new parent-relative transform, and leave downstream relative transforms unchanged when the same rigid rotation should affect the entire subtree.
  • Recompute joint axes in their declared local frames after changing frame orientations. Do not guess an axis from its global appearance.

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:

  1. Copy the exact visual-to-link translation and rotation into the MJCF geom.
  2. Point the MJCF mesh asset to the same physical file as the URDF mesh.
  3. Preserve mesh scale and RGBA.
  4. Match the complete parent-to-child joint translation vector.
  5. Report link length as the norm of that vector, while treating vector equality as the stronger validation.

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.

Convert Mass and Inertia

Copy mass and center of mass exactly for each physical arm link.

URDF gives a symmetric inertia tensor in its inertial frame:

text
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:

  1. Run a symmetric eigendecomposition eigenvalues, eigenvectors = eigh(I_body).
  2. Ensure the eigenvector matrix is a proper rotation with determinant +1; flip one eigenvector if necessary.
  3. Convert the eigenvector rotation matrix to a normalized MuJoCo w x y z quaternion.
  4. Write the eigenvalues as diaginertia.
  5. Reconstruct 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.

Build the MJCF Chain

Nest bodies in kinematic order:

text
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.

Show full SKILL.md (1,022 more words)Show less

Cover All YAM End-Effector Variants

Use the complete YAM end-effector contract when changing shared arm mounts or composition code:

VariantRoleCompiled gripper jointsRequired sitesPreserve
linear_4310Active linear reference2tcp_site, grasp_siteDM4310 settings, mass, inertia, linear limiter
linear_3507Active linear2tcp_site, grasp_siteDM3507 settings, target-specific mass, inertia, linear limiter
crank_4310Active crank0tcp_site, grasp_siteRoot offset, mass, inertia, crank limiter
flexible_4310Active flexible linear2tcp_site, grasp_siteRoot offset, geometry, dynamics, motor direction, linear limiter
no_gripperPassive mount placeholder0tcp_site, grasp_siteNo motor, no calibration, no limiter, six arm DOFs
yam_teaching_handlePassive physical handle0tcp_siteRoot 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.

Standardize Interchangeable Gripper Mounts

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:

  1. Read the old reference and target mount transforms for every supported arm variant.

  2. Derive the target gripper's root transform in the reference mount frame:

    T_target_root = inverse(T_reference_mount_old) @ T_target_mount_old

  3. 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.

  4. 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.

  5. 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.

Validate Numerically

Parse both source files and calculate maximum absolute errors for:

  • Local body translation and rotation.
  • Global home-pose body translation and rotation.
  • Parent-to-child translation norm and complete translation vector.
  • Joint axis and range.
  • Mass and center of mass.
  • Reconstructed body-frame inertia tensor.
  • Local geom translation and rotation.
  • Mesh file identity, scale, and RGBA.

Use tight tolerances appropriate to the source precision. A useful target for values copied from decimal XML is:

  • Position: < 1e-12 m
  • Rotation-matrix entry: < 1e-12
  • Reconstructed inertia: < 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 == 6
  • nq == 6
  • ngeom == 6
  • Body names are exactly base, link1 through link5, and gripper.
  • Joint names begin with exactly joint1 through joint6.
  • No gripper or tip geom exists.

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:

  • Compile every target gripper standalone.
  • Assert that each target mount config equals the reference mount config for every arm variant.
  • Compile the Cartesian product of affected arms and grippers.
  • Verify the expected total joint count for each gripper model.
  • Verify joint1 through joint6, tcp_site, and grasp_site remain present.
  • Reconstruct the compiled transform from the arm's last physical link to the gripper root and compare it with T_target_expected.
  • Report the maximum source and compiled pose-preservation residuals. Interpret residuals against the precision of the original config quaternions.

Finish with:

bash
git diff --check
git diff -- path/to/model.urdf path/to/model.xml
git status --short --untracked-files=all

Report the Result

Lead with the achieved scope. Report:

  • Which files changed.
  • Whether the model remains arm-only and at the requested DOF count.
  • Whether terminal mount bodies are physical or placeholders.
  • Whether terminal mount configs were standardized and gripper-specific offsets moved into gripper XML roots.
  • Maximum pose, length, mass, COM, and inertia errors.
  • Maximum gripper pose-preservation error across all affected arm/gripper combinations.
  • MuJoCo structure counts and compilation result.
  • Composition-test results.
  • Any pre-existing dirty files or untracked meshes left untouched.

Avoid Common Errors

  • Do not confuse a visual rotation with a link-frame rotation.
  • Do not compare Euler angles directly when a rotation-matrix comparison is available.
  • Do not mix quaternion conventions.
  • Do not rotate an axis in world coordinates and write it as a local axis.
  • Do not omit base mass by leaving the base as a world geom.
  • Do not copy gripper or tip dynamics into an arm-only MJCF.
  • Do not replace a composition mount placeholder with a physical gripper body.
  • Do not let arm joint6 pose or axis vary by gripper when the physical arm mount is the same.
  • Do not move a gripper-specific offset into the XML root without updating every affected per-arm mount config.
  • Do not standardize only one arm variant when the gripper XML is shared by several variants.
  • Do not round a derived gripper root transform before validating pose preservation.
  • Do not round principal inertias or quaternions prematurely.
  • Do not treat MuJoCo mesh recentering as a source-transform mismatch.
  • Do not modify unrelated formatting, assets, or robot models.

© 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

Files

SKILL.md and 1 other file in .codex/skills/align-urdf-mjcf of i2rt-robotics/i2rt.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit 120c3c8

Compare with similar skills

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.

Align Urdf Mjcf compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Align Urdf Mjcf this skilli2rt-robotics/i2rt166—~4.4kAutomated safety check: PassMIT
Accessibility Champion ProgramFerroxLabs/wayland608—~3.9kAutomated safety check: PassApache-2.0
Tune Triton Ascend KernelsKrusty84/triton-ascend-agent-dev-kit106—~813Automated safety check: PassApache-2.0
Streaming Responsethedaviddias/ux-patterns-for-developers258—~1kAutomated safety check: PassCustom licence
Color Pickerthedaviddias/ux-patterns-for-developers258—~1.3kAutomated safety check: PassCustom licence
Date Pickerthedaviddias/ux-patterns-for-developers258—~1.5kAutomated safety check: PassCustom licence

Similar skills

  • Organizational accessibility culture building expertise covering champion network design, accessibility training curricula, audit cadence and methodology, KPI definition and tracking, executive…

    608 GitHub stars~3.9k tokensUpdated 3 days ago
    Frontend & DesignAuto-check passed
  • Tune Triton Ascend Kernels

    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.

    106 GitHub stars~813 tokensUpdated 1 mo ago
    AI & LLM EngineeringAuto-check passed
  • Streaming Response

    thedaviddias/ux-patterns-for-developers

    A skill your agent uses when implementing real-time AI response streaming.

    258 GitHub stars~1k tokensUpdated 4 days ago
    AI & LLM EngineeringAuto-check passed
  • Color Picker

    thedaviddias/ux-patterns-for-developers

    A skill your agent uses when implementing select colors with visual feedback.

    258 GitHub stars~1.3k tokensUpdated 4 days ago
    Frontend & DesignAuto-check passed
  • Date Picker

    thedaviddias/ux-patterns-for-developers

    A skill your agent uses when implementing select dates from a calendar interface.

    258 GitHub stars~1.5k tokensUpdated 4 days ago
    Frontend & DesignAuto-check passed
  • Hambuger Menu

    thedaviddias/ux-patterns-for-developers

    A skill your agent uses when you need to display a menu icon for mobile devices.

    258 GitHub stars~1.2k tokensUpdated 4 days ago
    Frontend & DesignAuto-check passed

More from i2rt-robotics/i2rt

  • Transform Onshape Urdf

    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.

    166 GitHub stars~2.4k tokensUpdated 22 days ago
    Auto-check passed

Questions about Align Urdf Mjcf

What does Align Urdf Mjcf do?

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.

When should I use Align Urdf Mjcf?

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.

How do I install Align Urdf Mjcf in Claude Code?

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.

How do I install Align Urdf Mjcf in Codex?

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.

Can I use Align Urdf Mjcf in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Align Urdf Mjcf need to run?

Going by SKILL.md and its folder, Align Urdf Mjcf needs the command-line tools its instructions call (git and rg).

Does Align Urdf Mjcf access the network?

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.

Is Align Urdf Mjcf safe to install?

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.

What licence does Align Urdf Mjcf use?

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.

How many tokens does Align Urdf Mjcf use?

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.

What are the alternatives to Align Urdf Mjcf?

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.

Who maintains Align Urdf Mjcf?

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.