SDF (Simulation Description Format) is an open, XML-based specification for describing objects, robots, sensors, and entire simulated worlds for physics engines like Gazebo and Ignition. Unlike its predecessor URDF, which primarily defines a single robot's kinematics, SDF supports complex, hierarchical world descriptions with nested models, advanced physics properties, and detailed sensor configurations. It serves as the foundational scene description for creating high-fidelity digital twins and training environments for embodied AI and robotics.
Glossary
SDF

What is SDF?
SDF (Simulation Description Format) is an XML-based file format used to define robots, objects, environments, and their physical properties for high-fidelity physics simulators.
The format's extensible structure allows for precise definition of rigid body dynamics, actuator models, and sensor simulation parameters, including noise and distortion. By enabling the specification of entire ecosystems—from lighting and terrain to articulated mechanisms—SDF facilitates the creation of rich, parallelizable simulation environments essential for sim-to-real transfer learning. Its ability to define physics materials, joint limits, and collision geometries makes it a critical tool for building robust and realistic virtual proving grounds.
Key Features of SDF
SDF (Simulation Description Format) is an XML-based specification for describing robots, objects, sensors, and entire simulated worlds, providing a more feature-rich and flexible alternative to formats like URDF for complex physics-based simulations.
Nested Model Composition
SDF's core architectural feature is its support for nested models, allowing complex systems to be built hierarchically. This enables:
- Modular Design: Robots can be assembled from reusable subcomponents (e.g., a gripper, a mobile base).
- Encapsulation: Internal details of a sub-model are hidden, simplifying the description of the parent model.
- Instance Reuse: A single model definition (like a wheel) can be instantiated multiple times within a robot or world. This is a significant advancement over URDF, which treats a robot as a single, flat tree of links and joints.
World and Environment Description
SDF files can define entire simulation worlds, not just individual robots. This includes:
- Global Properties: Ambient light, gravity vector, magnetic field, and atmospheric settings.
- Static and Dynamic Objects: Placement of buildings, furniture, and other scene geometry with physics properties.
- Environment Effects: Ground planes, fog, and skyboxes for visual realism.
- Nested Worlds: Support for multiple, independent worlds within a single SDF file for batch simulation scenarios. This makes SDF a complete scene description language for simulation.
Advanced Physics and Actuator Modeling
SDF provides granular control over physics engines and actuator dynamics, crucial for high-fidelity sim-to-real transfer.
- Multiple Physics Profiles: Define different physics engines (ODE, Bullet, SimBody) and parameters (solver type, timestep) within the same file.
- Detailed Joint Actuation: Specify actuator types (velocity, position, effort), limits, and dynamics like damping, friction, and stiffness directly in the model.
- Custom Force Elements: Model springs, screws, and other mechanical transmissions.
- Contact Parameters: Define physics materials per link for coefficients of friction and restitution (bounciness).
Comprehensive Sensor Specification
SDF has first-class support for modeling a wide array of sensors with realistic noise profiles, essential for training perception systems.
- Built-in Sensor Types: Includes models for cameras (with intrinsics/extrinsics), IMUs, LiDAR, contact sensors, force-torque sensors, and GPS.
- Noise Injection: Apply Gaussian, custom, or sensor-specific noise models to outputs to mimic real hardware imperfections.
- Update Rates and Topics: Control sensor data publication frequency and the ROS topic or interface for output.
- Ray-based Sensing: Configure LiDAR and depth camera properties like range, field of view, and sample count for accurate point cloud generation.
Plugin System for Extensibility
SDF's plugin mechanism allows arbitrary code to be attached to models, sensors, or the world, enabling custom behaviors and interfaces.
- Runtime Behavior: Plugins can control model dynamics, implement custom controllers (e.g., PID), or log data.
- System Integration: ROS plugins bridge the simulation to the Robot Operating System for message passing.
- Sensor Simulation: Complex sensor models (e.g., for visual odometry) are often implemented as plugins.
- Proprietary Logic: Companies can embed custom control algorithms or business logic without modifying the core simulator.
Pose Frames and Semantic Scene Graphs
SDF uses a robust frame semantics system, allowing explicit definition of coordinate frames and their relationships.
- Explicit Frames: Define named frames (e.g.,
sensor_mount,gripper_tip) attached to any element. - Pose Relative to Frames: Any element's pose can be specified relative to any named frame, not just its parent, simplifying complex assemblies.
- Semantic Labeling: Models, links, and visuals can be tagged with semantic information (e.g.,
type: vehicle), useful for simulation environment generation and algorithmic processing. - Graph Structure: This creates an explicit scene graph that tools can query for relationships and poses, aiding in tasks like sensor fusion.
SDF vs. URDF: A Technical Comparison
A direct comparison of the two primary XML-based formats for describing robots and simulation worlds, highlighting key technical differences relevant to simulation and deployment.
| Feature | SDF (Simulation Description Format) | URDF (Unified Robot Description Format) |
|---|---|---|
Primary Purpose | Describing entire simulated worlds, including robots, static objects, lighting, and physics. | Describing the kinematic and dynamic structure of a single robot. |
Model Nesting & Composition | ||
Multi-Robot Scenarios | Native support for defining and instantiating multiple robots in a world. | Requires external tools or manual duplication for multi-robot scenarios. |
Physics & Actuator Modeling | Integrated, detailed modeling of physics engines, joint types, and actuator dynamics (e.g., PID gains). | Limited; primarily defines kinematic properties. Physics and control parameters are handled externally (e.g., in Gazebo plugins). |
File Format & Versioning | Explicit version attribute (e.g., <sdf version='1.9'>) for forward/backward compatibility. | No version attribute; format is implicitly tied to ROS distribution. |
Plugin Architecture | Extensive plugin system for sensors, actuators, and custom behaviors, integrated into the format. | Limited; relies on ROS-specific <gazebo> extension tags and ROS control for advanced features. |
Sensor Definition | Native, comprehensive tags for cameras, IMUs, LiDAR, contact sensors, etc., with full noise models. | Basic visual/collision geometry only. Sensors are added via Gazebo-specific extension tags. |
Standardization & Ecosystem | Open-source standard maintained by Open Robotics; used by Ignition Gazebo (now Gazebo) and others. | De facto standard within the ROS ecosystem; tightly coupled with ROS tools like RViz and MoveIt. |
World Description | ||
Joint Types | Extensive set including fixed, revolute, prismatic, ball, universal, screw, and continuous. | Basic set: fixed, revolute, prismatic, continuous, planar, floating. |
Where is SDF Used?
The Simulation Description Format (SDF) is the foundational world-building language for modern robotics simulation, enabling the precise definition of robots, environments, and physics. Its primary applications span from academic research to industrial validation.
Frequently Asked Questions
Answers to common technical questions about SDF (Simulation Description Format), the XML-based standard for describing robots, objects, and worlds in physics simulators like Gazebo and Ignition.
SDF (Simulation Description Format) is an open, XML-based file format used to describe the complete state of a simulated world for robotics, including robots, static objects, lighting, sensors, and physics properties. It works by providing a hierarchical, declarative model where elements like <model>, <link>, <joint>, and <sensor> are nested within a root <sdf> or <world> tag, which a simulator parses to instantiate and configure the virtual environment. Unlike URDF, which describes a single robot, SDF can describe entire scenes with nested models, articulated systems, and advanced physics parameters, making it the de facto standard for complex, multi-entity simulations in platforms like Gazebo and Ignition.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
SDF (Simulation Description Format) exists within a broader ecosystem of formats, simulators, and concepts essential for modeling robotic systems. These related terms define the tools and frameworks that interact with or complement SDF.
Model Plugins
Custom C++ or shared library modules that can be attached to any model in an SDF file to programmatically control its behavior. Plugins enable:
- Custom actuator control (e.g., complex motor models)
- Sophisticated sensor data processing
- Implementation of complex dynamics not natively supported
- Integration with external software (e.g., ROS 2 nodes)
A plugin is declared in the SDF <plugin> tag with a name, filename, and parameters. This extensibility is a core strength of SDF, allowing it to model virtually any system by linking to custom code that runs within the simulator's main loop.
World File
The top-level SDF document that defines an entire simulation scenario. A world file (typically with a .world or .sdf extension) contains:
- The global physics engine properties (gravity, solver type)
- Ambient light and scene settings
- All models present, including ground planes, robots, and objects
- World-level plugins for global logic
While SDF can describe a single robot model in isolation, the world file assembles these models into a cohesive, executable simulation environment. It is the file loaded by the simulator to start a session.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us