Inferensys

Glossary

SDF

SDF (Simulation Description Format) is an XML file format used by physics simulators like Gazebo and Ignition to define robots, objects, environments, and their physical properties for robotic training and testing.
Stylish WeWork-like workspace with hot desks and document wall, professional searching through enterprise knowledge base on a mounted ultrawide display, warm industrial pendants overhead.
SIMULATION DESCRIPTION FORMAT

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.

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.

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.

SIMULATION DESCRIPTION FORMAT

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.

01

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.
02

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.
03

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).
04

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.
05

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.
06

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.
ROBOT DESCRIPTION FORMATS

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.

FeatureSDF (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.

APPLICATIONS

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.

SENSOR AND ACTUATOR SIMULATION

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.

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.