Modern robotics development relies heavily on simulation. Before a robot ever moves in the real world, it often exists as a digital model inside a simulator. These models describe the robot’s structure, joints, sensors, and physical properties so that simulation engines can accurately reproduce how the robot behaves.
Several file formats have become widely used for describing robots in simulation environments. Among the most prominent are URDF, MJCF, and USD. Each format was designed with different goals in mind and is commonly associated with specific simulation ecosystems.
In this post, we’ll explore what these formats are, how they differ, and when you might choose one over another.
URDF (Unified Robot Description Format)
URDF is one of the most widely used robot description formats in robotics. It was originally developed as part of the Robot Operating System (ROS) ecosystem and is primarily used to describe the kinematic structure of robots.
URDF uses XML to define robots as a collection of links connected by joints. Links represent rigid bodies (such as arms, wheels, or sensors), while joints define how these parts move relative to each other.
A typical URDF file includes:
- Links with inertial, visual, and collision properties
- Joints describing motion (revolute, prismatic, fixed, etc.)
- Mesh references for geometry
- Basic physical parameters such as mass and inertia
Strengths of URDF
- Widely supported in ROS tools
- Simple and easy to understand
- Strong ecosystem (visualization, planning, control)
Limitations
URDF was designed mainly for kinematics, not full physics simulation. As a result:
- Contact modeling is limited
- Actuator modeling is basic
- Complex constraints are difficult to represent
Because of these limitations, URDF is often converted into simulator-specific formats when used in physics engines.
MJCF (MuJoCo XML Format)
MJCF is the modeling format used by the physics engine MuJoCo (Multi-Joint dynamics with Contact). It is designed specifically for high-performance physics simulation, making it popular in robotics research and reinforcement learning.
Unlike URDF, MJCF focuses strongly on accurate dynamics and contact simulation.
MJCF models are defined using XML as well, but the structure is oriented around bodies, joints, and physical interactions rather than just kinematic chains.
Strengths of MJCF
- Precise physics modeling
- Advanced contact handling
- Built-in actuator and sensor definitions
- Efficient simulation performance
Limitations
- More tightly coupled to MuJoCo
- Smaller ecosystem compared to ROS tools
- Less standardized across robotics frameworks
However, with the growing popularity of reinforcement learning and modern robotics simulation stacks, MJCF has gained significant traction.
USD (Universal Scene Description)
USD, developed by Pixar, is a powerful scene description framework designed originally for large-scale 3D graphics pipelines. It has recently become a key technology in robotics simulation platforms such as NVIDIA Omniverse and Isaac Sim.
Unlike URDF or MJCF, USD is not purely a robot description format. Instead, it is a general-purpose scene representation system capable of describing:
- Robots
- Environments
- Lighting
- Materials
- Physics
- Sensors
- Animations
USD supports layered scene composition, allowing multiple files to contribute to a final scene graph. This makes it especially useful for large and collaborative simulation environments.
Strengths of USD
- Scales to extremely large scenes
- Supports collaboration through layering
- Integrates rendering, physics, and assets
- Becoming the standard in modern robotics simulators
Limitations
- More complex than URDF or MJCF
- Steeper learning curve
- Requires supporting infrastructure
Comparing the Formats
| Feature | URDF | MJCF | USD |
|---|---|---|---|
| File type | XML | XML | Scene graph (USD) |
| Primary focus | Robot kinematics | Physics simulation | Full scene description |
| Ecosystem | All | MuJoCo | Omniverse / modern simulators |
| Complexity | Low | Medium | High |
| Best use case | ROS robotics development, Visualization | Physics-heavy research | Large-scale simulation environments |
When Should You Use Each?
URDF is ideal when:
- Working within the ROS ecosystem
- Describing robot kinematics
- Using tools like visualization, motion planning, or control frameworks
MJCF is ideal when:
- Using MuJoCo for simulation
- Running reinforcement learning experiments
- Requiring precise contact physics
USD is ideal when:
- Building complex simulation environments
- Using Omniverse or modern robotics simulators
- Managing large scenes and collaborative assets