Product Hunt Live on Product Hunt!

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 / NVIDIAOpen RoboticsROS communityMuJoCo / DeepMind
Primary scope Whole scenes + assetsWhole worldsSingle robotRobot + scene physics
Best simulator fit Isaac Sim, OmniverseGazeboROS / ROS 2MuJoCo, MJX
Composition / references Native (layers, references)Includes / nestingLimited (xacro macros)Includes
Physics expressiveness USDPhysics schemasRich (inertia, sensors)Basic (inertial, collision)Excellent contact model
Materials / rendering Full PBR + MaterialXBasicBasicMinimal
Scales to large scenes Yes — built for itModerateNoModerate
Human-readable .usda text variantXMLXMLXML
Cross-tool support Growing fastGazebo-centricROS-centricMuJoCo-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 converts to MJCF, URDF, or SDF on demand, 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 converts from its OpenUSD output to the others on demand.

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.

Convert your own catalog to SimReady

Upload any 3D model and get a physics-enabled OpenUSD asset in minutes — exports to MJCF, URDF, and FBX too.

Related reading