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 May 19, 2026 · by Ugur Yekta
The short answer
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
| OpenUSD General scene standard | SDF Gazebo worlds | URDF ROS robots | MJCF MuJoCo 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
OpenUSD
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.
SDF
Gazebo simulations where you need to describe whole worlds with sensors and environment, not just a single robot.
URDF
Single-robot description in a ROS / ROS 2 pipeline, the format your robot hardware likely already ships in.
MJCF
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.
Frequently asked questions
What is the difference between URDF and SDF?
URDF describes a single robot (links, joints, inertia, geometry) and is the ROS default. SDF extends that idea to entire worlds, multiple models, lights, sensors, and environment physics, and is Gazebo's native format. SDF is more expressive; URDF is more widely shipped by robot manufacturers. Gazebo can consume both.
Should I author robotics assets in OpenUSD or a robotics-specific format?
Author in OpenUSD when you want a portable source of truth that scales to large scenes and converts outward to MJCF, URDF, or SDF. Author directly in URDF/SDF/MJCF when you are committed to a single ecosystem (ROS, Gazebo, or MuJoCo respectively) and do not need cross-tool portability. USD-to-others conversion is cleaner than the reverse.
Can I convert between these formats without losing physics data?
Conversion from OpenUSD to MJCF, URDF, or SDF preserves mass, inertia, friction, and collision geometry well because USDPhysics is more expressive than the targets. Converting the other direction (e.g. URDF to USD) is lossier, since the source formats carry less material, semantic, and scene metadata. Rigyd outputs OpenUSD and MJCF natively; URDF and SDF can be derived from the OpenUSD output using community conversion tools.
Why is OpenUSD becoming the standard for robotics simulation?
Three reasons: its composition system (layers, references, variants) scales to scenes the XML formats cannot handle; NVIDIA built Isaac Sim and Omniverse on it; and it is openly governed by the Alliance for OpenUSD (Pixar, NVIDIA, Apple, Adobe, Autodesk). For new projects involving large scenes or NVIDIA platforms, it is the path of least friction.
Generate your own catalog to SimReady
Convert a 3D model, image, or text description into a physics-enabled OpenUSD asset in minutes, exports to MJCF, URDF, and FBX too.
Related reading
Scaling Simulation Asset Libraries Beyond Curated Inventory
Curated SimReady libraries are a great starting point but a hard ceiling. Here is why fixed inventories limit robotics simulation at scale, and how on-demand asset generation closes the gap.
Domain Randomization for Robotics Training: Asset Diversity at Scale
Domain randomization makes trained policies transfer to the real world, but it only works if your asset library is diverse enough. Here is how asset diversity drives randomization, and how to generate it at the scale training needs.
Building a Scalable Embodied AI Asset Pipeline: From Raw Data to Simulation
A practical look at the stages of an embodied AI asset pipeline, from raw 3D data and reference inputs to physics-ready simulation assets, and what changes when you need to produce thousands of them instead of a handful.