Inferensys

Glossary

SDF (Simulation Description Format)

SDF (Simulation Description Format) is an XML-based file format used to describe robots, sensors, objects, and environments for physics-based simulation, primarily within the Gazebo simulator.
Technical lab environment with sensor equipment and analytical workstations.
EMBODIED AI FRAMEWORKS

What is SDF (Simulation Description Format)?

SDF is the foundational file format for describing complex simulated worlds in robotics.

SDF (Simulation Description Format) is an XML-based file format used to define robots, static objects, sensors, lights, and their properties within a physics-based simulation environment, most notably Gazebo. It serves as a comprehensive world description, specifying kinematic and dynamic properties, visual and collision geometries, sensor parameters, and plugin interfaces for custom logic. Unlike its predecessor URDF, SDF supports nested model definitions and more complex multi-robot scenarios, making it the de facto standard for modern robotic simulation.

The format's hierarchical structure allows for the precise definition of joints, links, and inertial properties, enabling accurate physics simulation. It is integral to the sim-to-real transfer pipeline, where policies trained in simulation are deployed to physical hardware. SDF files are parsed by the simulator's physics engine to create a virtual environment, forming the backbone for testing perception, control policies, and task planning algorithms before real-world deployment.

SIMULATION DESCRIPTION FORMAT

Key Features of SDF

SDF (Simulation Description Format) is an XML-based specification for describing robots, sensors, objects, and entire simulated worlds. Its core features enable the construction of complex, reusable, and physically accurate virtual environments for robotics development.

01

Hierarchical Model Composition

SDF supports nested models, allowing complex robots to be built from reusable sub-assemblies. A robot arm can be defined as a single model, then instantiated multiple times within a larger mobile base model. This promotes modularity and reuse, a significant advantage over the flat, single-robot structure of URDF.

  • A world file contains model elements.
  • A model can contain link (rigid bodies), joint (connections), and other nested model elements.
  • This mirrors real-world engineering where systems are composed of subsystems.
02

Physics and Sensor Specification

The format provides detailed, first-class elements for defining physics properties and sensor models, which are critical for realistic simulation.

  • Physics: Define inertial properties (mass, inertia matrix) for links, collision geometries distinct from visual meshes, and surface properties like friction coefficients.
  • Sensors: Native support for simulating camera, imu, lidar, contact, and force_torque sensors with configurable noise, update rates, and topic outputs. This allows for the development and testing of perception and state estimation algorithms directly in simulation.
03

Static World Description

An SDF file can describe an entire static simulation world, not just a robot. This includes the environment's geometry, lighting, and global physics parameters.

  • World Elements: Define the gravity vector, magnetic_field, and atmosphere models.
  • Static Models: Include buildings, floors, and other immovable objects as static='true' models.
  • Scene Properties: Set ambient light and background color for rendering.
  • This holistic approach allows a single .world file to fully specify a test scenario for a robot.
04

Plugin System for Dynamic Behavior

SDF's plugin mechanism is a powerful feature that injects custom logic and control into static model descriptions. Plugins are shared libraries loaded at runtime by the simulator (e.g., Gazebo).

  • Control Plugins: Attach to a model to provide actuator control via ROS topics or services.
  • Sensor Plugins: Process raw sensor data or generate synthetic sensor outputs.
  • System Plugins: Modify global simulator behavior.
  • This separates the robot's description from its control code, enabling the same model file to be used with different controllers.
05

Versioning and Backward Compatibility

SDF is a versioned specification, with each major release (e.g., SDFormat 1.8, 1.9) introducing new capabilities while striving for backward compatibility. The version is declared at the root of the XML file (<sdf version='1.9'>).

  • Evolution: Newer versions add support for features like particle emitters, air pressure sensors, and improved heightmap rendering.
  • Parser Compatibility: Simulators like Gazebo can parse multiple SDF versions, converting older descriptions to a canonical internal form.
  • This ensures that robot models remain usable across different versions of simulation tools.
ROBOT DESCRIPTION FORMATS

SDF vs. URDF: A Technical Comparison

A feature-by-feature comparison of the two primary XML-based formats for describing robots and their environments in simulation and robotics frameworks.

FeatureSDF (Simulation Description Format)URDF (Unified Robot Description Format)

Primary Use Case

Describing entire simulated worlds (robots, static objects, lights, sensors, physics, scenes)

Describing a single robot's kinematic tree, geometry, and inertial properties

File Extension & Standard

.sdf or .world; Managed by Open Robotics (Gazebo)

.urdf; De facto standard within ROS (Robot Operating System)

Model Nesting & Composition

Multiple Robots in One File

Static World Objects (e.g., walls, tables)

Explicit Physics Engine Parameters

Light Source Definition

Closed Kinematic Loops (e.g., parallel mechanisms)

ROS 2 Native Support (via ros2_control)

Plugin System for Custom Logic

Default Format for Gazebo Simulator

Default Format for ROS 1/2 (for robot description)

Forward/Inverse Kinematics Solvers

Requires plugins or external libraries (e.g., libsdformat)

Integrated with ROS kinematics libraries (KDL, TRAC-IK)

FORMAT SPECIFICATION

How SDF Works: Structure and Semantics

An overview of the XML-based structure and semantic elements that define robots, objects, and worlds in the SDF format.

The Simulation Description Format (SDF) is an XML-based specification that hierarchically describes all elements within a simulated world. Its core structure uses nested <model>, <link>, <joint>, and <sensor> tags to define a robot's kinematic tree, inertial properties, and perceptual systems. The format supports model composition, allowing complex robots to be built from reusable sub-assemblies, and includes a powerful plugin architecture for custom simulation logic. Unlike URDF, SDF can describe entire multi-robot environments, static objects, and atmospheric properties in a single, self-contained file.

Semantically, SDF provides a declarative and unified description of physics, rendering, and programmatic interfaces. Key semantic elements include precise <pose> frames, <collision> and <visual> geometry, and <surface> properties for contact physics. The format's strict schema ensures simulator-agnostic descriptions, while its versioning system (e.g., SDF 1.7, 1.8) manages backward-compatible evolution. This design enables the same SDF file to be used for high-fidelity simulation in Gazebo, visualization in Ignition Gazebo, and as a data source for downstream robotic planning tools.

SIMULATION DESCRIPTION FORMAT

Primary Use Cases for SDF

SDF (Simulation Description Format) is the foundational XML schema for describing complex simulated worlds in Gazebo and other robotics simulators. Its primary applications extend beyond simple robot models to enable sophisticated, multi-agent virtual environments.

01

Complex Robot & World Modeling

SDF excels at describing nested models and static worlds, capabilities beyond the simpler URDF format. It allows a single file to define an entire simulated scene, including:

  • Robots with articulated joints, sensors, and plugins.
  • Static objects like walls, tables, and obstacles with precise collision geometry.
  • Environmental properties such as gravity, magnetic field, and atmospheric conditions.
  • Nested model composition, enabling the creation of complex robots from reusable sub-assemblies (e.g., a mobile base with an attached manipulator arm). This hierarchical structure is essential for simulating warehouses, factories, and other structured environments.
02

Sensor Simulation & Data Generation

SDF provides a detailed, standardized method for defining and configuring virtual sensors, which is critical for training and testing perception algorithms. It specifies parameters for:

  • Camera sensors (resolution, field of view, noise models).
  • LiDAR and depth sensors (range, sample count, angular resolution).
  • IMUs and force-torque sensors (update rates, Gaussian noise).
  • Contact sensors for detecting collisions. This allows researchers to generate synthetic training data for computer vision and to test sensor fusion pipelines in a controlled, repeatable environment before real-world deployment.
03

Physics-Based Training for Embodied AI

SDF is the backbone for creating training environments in sim-to-real transfer pipelines. By precisely defining physical properties, it enables the training of robust control policies.

  • Mass and inertia properties for accurate rigid-body dynamics.
  • Surface friction and contact physics for realistic manipulation tasks.
  • Joint limits, actuator dynamics, and transmission types (e.g., position vs. velocity control). Frameworks like Gazebo and Ignition use SDF to simulate these physics, allowing Reinforcement Learning and Imitation Learning algorithms (like PPO or SAC) to train visuomotor policies for tasks like grasping or navigation in safety, at scale.
04

Multi-Agent & Fleet Simulation

SDF's ability to define multiple independent models within a single world file makes it ideal for simulating heterogeneous robot fleets. This is crucial for developing coordination and orchestration software.

  • Define distinct agents (e.g., delivery drones, ground robots, human avatars) each with unique kinematics and sensors.
  • Simulate inter-agent communication and collision avoidance in a shared coordinate frame.
  • Test multi-agent reinforcement learning and task allocation algorithms for logistics and warehousing applications. This use case is foundational for research into Heterogeneous Fleet Orchestration.
05

Plugin System for Custom Logic

SDF's <plugin> tag allows users to attach custom C++ or shared library code to any model, sensor, or the world itself. This extensibility is key for advanced research and development.

  • Custom controllers: Implement novel control algorithms beyond standard PID.
  • Procedural world generation: Dynamically modify the environment during runtime.
  • External interface plugins: Connect the simulation to external middleware like ROS or ROS 2 via bridges.
  • Data logging and monitoring: Capture custom telemetry for algorithm evaluation. This transforms SDF from a static description format into a dynamic programming interface for the simulator.
06

Standardization & Tool Interoperability

As an open, versioned XML standard, SDF enables interoperability between different tools in the robotics software stack.

  • Model sharing and reuse: A robot described in SDF can be used across different simulation platforms that support the format.
  • Conversion pipelines: Tools exist to convert from URDF to SDF (adding necessary simulation properties like inertia), and from SDF to formats for visualization or control.
  • Integration with development tools: SDF files are parsed by GUI tools for model editing (like Gazebo's Model Editor) and by build systems for model validation. This standardization reduces vendor lock-in and accelerates development.
SDF (SIMULATION DESCRIPTION FORMAT)

Frequently Asked Questions

SDF (Simulation Description Format) is the foundational file format for describing robots and worlds within the Gazebo simulator. These questions address its core purpose, technical structure, and role in the embodied AI development pipeline.

SDF (Simulation Description Format) is an XML-based file format used to define the complete state of a simulated world, including robots, static objects, sensors, lights, and environmental properties, primarily for the Gazebo robotics simulator. It serves as a comprehensive, hierarchical description language that can represent complex, nested models and multi-robot scenarios, extending beyond the kinematic-focused capabilities of formats like URDF. An SDF file describes not just a single robot's geometry and joints, but also its sensors (e.g., cameras, LiDAR), the physics engine parameters (like friction and gravity), and the placement of all entities within a 3D scene. This makes it the de facto standard for authoring high-fidelity, physically realistic simulation environments used in robotics research, reinforcement learning, and sim-to-real transfer pipelines.

Prasad Kumkar

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.