New Our agentic pipeline is live — the agent researches an object before it builds it. Read the post →
RIGYD
Launch app
Comparison

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

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

DimensionOpenUSDGeneral scene standardSDFGazebo worldsURDFROS robotsMJCFMuJoCo physics
OriginPixar / NVIDIAOpen RoboticsROS communityMuJoCo / DeepMind
Primary scopeWhole scenes + assetsWhole worldsSingle robotRobot + scene physics
Best simulator fitIsaac Sim, OmniverseGazeboROS / ROS 2MuJoCo, MJX
Composition / referencesNative (layers, references)Includes / nestingLimited (xacro macros)Includes
Physics expressivenessUSDPhysics schemasRich (inertia, sensors)Basic (inertial, collision)Excellent contact model
Materials / renderingFull PBR + MaterialXBasicBasicMinimal
Scales to large scenesYes, built for itModerateNoModerate
Human-readable.usda text variantXMLXMLXML
Cross-tool supportGrowing 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 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.

FAQ

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.

Build with Rigyd

Turn a 3D model, image, or text description into validated OpenUSD and MJCF.