OpenUSD vs SDF vs URDF vs MJCF
Four formats describe robots and scenes for simulation, and they are not interchangeable. Here is what each does well, where each falls short, and which to treat as your source of truth.
Updated 2026-05-19
URDF describes a single robot and is the ROS default. SDF extends URDF to whole worlds for Gazebo. MJCF is MuJoCo's format, tuned for fast contact physics. OpenUSD is a general scene format (Pixar/NVIDIA) that scales to huge environments and is the emerging cross-tool standard. Author in OpenUSD and convert outward when you need portability.
Side-by-side comparison
| Dimension | OpenUSDGeneral scene standard | SDFGazebo worlds | URDFROS robots | MJCFMuJoCo physics |
|---|---|---|---|---|
| Origin | Pixar / NVIDIA | Open Robotics | ROS community | MuJoCo / DeepMind |
| Primary scope | Whole scenes + assets | Whole worlds | Single robot | Robot + scene physics |
| Best simulator fit | Isaac Sim, Omniverse | Gazebo | ROS / ROS 2 | MuJoCo, MJX |
| Composition / references | Native (layers, references) | Includes / nesting | Limited (xacro macros) | Includes |
| Physics expressiveness | USDPhysics schemas | Rich (inertia, sensors) | Basic (inertial, collision) | Excellent contact model |
| Materials / rendering | Full PBR + MaterialX | Basic | Basic | Minimal |
| Scales to large scenes | Yes, built for it | Moderate | No | Moderate |
| Human-readable | .usda text variant | XML | XML | XML |
| Cross-tool support | Growing fast | Gazebo-centric | ROS-centric | MuJoCo-centric |
URDF: the ROS robot description
URDF (Unified Robot Description Format) is an XML format describing a single robot, links, joints, inertial properties, collision and visual geometry. It is the default in the ROS ecosystem and the format most robot manufacturers ship. Its limits are well known: it cannot describe closed kinematic loops cleanly, has no native concept of a world or multiple robots, and relies on xacro macros for reuse. For a single robot in a ROS pipeline, it is the path of least resistance.
SDF: URDF's bigger sibling for worlds
SDF (Simulation Description Format) was created by Open Robotics to address URDF's gaps. It describes entire worlds, multiple models, lights, sensors, physics properties, and environment, and is the native format for Gazebo. It is more expressive than URDF for sensors and physics, and supports nesting and includes. If your simulation lives in Gazebo, SDF is the natural source format.
MJCF: MuJoCo's physics-tuned XML
MJCF (MuJoCo XML) is the format MuJoCo and its JAX implementation MJX consume. It is designed around MuJoCo's contact solver, exposing parameters like condim, solref, and solimp that give fine control over contact dynamics. This makes it excellent for dexterous manipulation and locomotion research, but it is MuJoCo-specific, there is little tooling outside that ecosystem, and it is not built for large visual scenes.
OpenUSD: the general scene standard
OpenUSD (Universal Scene Description), created by Pixar and heavily backed by NVIDIA, is a general-purpose 3D scene format rather than a robotics-specific one. Its composition system, layers, references, variants, scales to enormous scenes (film, factory digital twins) that the XML formats cannot. Physics is expressed through USDPhysics schemas, and materials use full PBR/MaterialX. Under the Alliance for OpenUSD (Pixar, NVIDIA, Apple, Adobe, Autodesk), it is the closest thing the industry has to a converging cross-tool standard.
When to choose each
A canonical source-of-truth format that scales to large scenes and converts outward, especially anywhere NVIDIA Isaac Sim, Omniverse, or digital twins are involved.
Gazebo simulations where you need to describe whole worlds with sensors and environment, not just a single robot.
Single-robot description in a ROS / ROS 2 pipeline, the format your robot hardware likely already ships in.
MuJoCo and MJX research where fine-grained contact-dynamics control matters more than scene scale or rendering.
Where Rigyd fits
These formats are not mutually exclusive, most teams need more than one. Rigyd authors in OpenUSD (the most expressive, most portable option) and emits MJCF directly. URDF and SDF can be derived from the OpenUSD output via community USD→URDF/SDF converters, preserving mass, inertia, friction, and collision data across the boundary. That way a single source asset works in Isaac Sim, MuJoCo, and Gazebo without re-authoring physics three times. Both outputs are validated before release, so an asset is not merely emitted in two formats but checked in both.