# Rerun Urdf

Drive the Rerun URDF API (rerun.urdf.UrdfTree) to ingest a URDF as a Transform3D layer...

- Repository: https://github.com/rerun-io/rerun (11675 stars)
- Category: Engineering
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add rerun-io/rerun --skill rerun-urdf -g -a claude-code -y`
Codex: `npx skills add rerun-io/rerun --skill rerun-urdf -g -a codex -y`
Cursor: `npx skills add rerun-io/rerun --skill rerun-urdf -g -a cursor -y`
Gemini CLI: `npx skills add rerun-io/rerun --skill rerun-urdf -g -a gemini-cli -y`

## Description

Drive the Rerun URDF API (rerun.urdf.UrdfTree) to ingest a URDF as a Transform3D layer on a robot recording. Read when logging a robot model, running forward kinematics from joint states, composing a fixed chain for sensor extrinsics, or when the transform tree will not connect from the data alone. Builds on rerun-chunk-processing (stream/lens mechanics) and rerun-data-model (entity paths, timeline, base-vs-layer).

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Rerun URDF ingestion

A URDF gives you a robot's geometry and its kinematic tree.
Ingesting it means two API calls on one `rerun.urdf.UrdfTree`: stream the static model, then drive it with forward kinematics from joint states. The transforms it produces are derived, so they are a **layer**, never base (the `URDF + joints (computed)` row of the `rerun-data-model` table).

This skill is the `UrdfTree` API and the two judgment calls it cannot make for
you: how your joint values map to URDF joints, and how the disconnected frames
in the scene connect to one root. The stream/lens plumbing (`LazyChunkStream`,
`DeriveLens`, `Selector`, writing and optimizing RRDs) is in
`rerun-chunk-processing`; reach for it, do not re-derive it. Nothing below is
tied to a data format: where your joint names, joint values, and calibration
come from is yours to wire in.

## Getting the URDF

Datasets rarely ship one, and the robot's own repo is not always the fastest route.
In order:

- [`robot_descriptions.py`](https://github.com/robot-descriptions/robot_descriptions.py), `pip install robot_descriptions`, then `from robot_descriptions import ur5e_description; ur5e_description.URDF_PATH`.
  It downloads and caches the upstream description and hands you a plain path with the meshes already next to it.
  Check its index first; it covers most of the table below.
- The vendor repo, when the description is newer than the package's pin or is not in it.
- [MuJoCo Menagerie](https://github.com/google-deepmind/mujoco_menagerie), MJCF, not URDF, so it needs conversion. Worth it only when nothing else exists.

The rest: https://github.com/rerun-io/rerun/blob/HEAD/skills/rerun-urdf/SKILL.md
