Skip to content
gazebo-world-builder logo

Gazebo World Builder Skill

gazebo-world-builder

Design simulation worlds using SDF with ground planes, models, physics configuration, and lighting

SKILL.md

Full skill instructions

Gazebo World Builder Skill

Persona

Think like a simulation environment designer who creates realistic testing grounds for robots. You understand physics engines, lighting, and model placement. You build worlds that are stable, performant, and suitable for the testing scenarios required.


Pre-Flight Questions

Before creating or modifying any SDF world, ask yourself:

1. Environment Purpose

  • Q: What is this world testing?
    • Impact: Determines obstacles, terrain, lighting needs
    • Navigation → obstacles, open spaces
    • Manipulation → tables, objects to grasp
    • Outdoor → terrain, weather effects

2. Physics Requirements

  • Q: What physics engine should be used?

    • DART: Default, good balance of speed/​accuracy
    • ODE: Older, widely compatible
    • Bullet: Good for many contacts
  • Q: What step size is appropriate?

    • 0.001s: High accuracy, slower
    • 0.004s: Default, good balance
    • 0.01s: Fast but less accurate

3. Model Sources

  • Q: Are models from Gazebo Fuel or custom?
    • Fuel: Use https://fuel.gazebosim.org/​... URIs
    • Custom: Define inline or reference local files

Principles

Principle 1: Every World Needs Core Elements

<?xml version="1.0"?>
<sdf version="1.8">
  <world name="my_world">
    <!-- Physics configuration -->
    <physics type="dart">
      <max_step_size>0.004</​max_step_size>
      <real_time_factor>1.0</​real_time_factor>
    </​physics>

    <!-- Lighting -->
    <light type="directional" name="sun">
      <cast_shadows>true</​cast_shadows>
      <pose>0 0 10 0 0 0</​pose>
      <diffuse>0.8 0.8 0.8 1</​diffuse>
      <direction>-0.5 0.1 -0.9</​direction>
    </​light>

    <!-- Ground plane -->
    <model name="ground_plane">
      <static>true</​static>
      <link name="link">
        <collision name="collision">
          <geometry><plane><normal>0 0 1</​normal></​plane></​geometry>
        </​collision>
        <visual name="visual">
          <geometry><plane><normal>0 0 1</​normal><size>100 100</​size></​plane></​geometry>
        </​visual>
      </​link>
    </​model>
  </​world>
</​sdf>

Principle 2: Use Gazebo Fuel for Standard Models

<!-- Include model from Fuel -->
<include>
  <uri>https://fuel.gazebosim.org/​1.0/​OpenRobotics/​models/​Table</​uri>
  <name>table_1</​name>
  <pose>2 0 0 0 0 0</​pose>
</​include>

<!-- Multiple instances with different names -->
<include>
  <uri>https://fuel.gazebosim.org/​1.0/​OpenRobotics/​models/​Cardboard Box</​uri>
  <name>box_1</​name>
  <pose>2.5 0.3 0.8 0 0 0</​pose>
</​include>

Popular Fuel models:

  • OpenRobotics/​models/​Table
  • OpenRobotics/​models/​Cardboard Box
  • OpenRobotics/​models/​Coke Can
  • OpenRobotics/​models/​Construction Cone

Principle 3: Configure Physics for Stability

<physics type="dart">
  <!-- Step size: smaller = more accurate but slower -->
  <max_step_size>0.004</​max_step_size>

  <!-- Real-time factor: 1.0 = real-time, less than 1.0 = slower -->
  <real_time_factor>1.0</​real_time_factor>

  <!-- Gravity vector (m/​s²) -->
  <gravity>0 0 -9.81</​gravity>
</​physics>

For unstable simulations:

  1. Reduce step size (0.004 → 0.001)
  2. Increase solver iterations
  3. Check collision geometry (too complex?)
  4. Verify inertia values (too small?)

Principle 4: Surface Properties for Realism

<surface>
  <friction>
    <ode>
      <mu>0.8</​mu>      <!-- Static friction -->
      <mu2>0.6</​mu2>    <!-- Dynamic friction -->
    </​ode>
  </​friction>
  <contact>
    <ode>
      <kp>1e6</​kp>      <!-- Contact stiffness -->
      <kd>100</​kd>      <!-- Contact damping -->
    </​ode>
  </​contact>
</​surface>

Typical values:

  • Rubber on concrete: mu=0.8-1.0
  • Metal on metal: mu=0.3-0.5
  • Ice: mu=0.05-0.1

Common Patterns

Indoor Room

<world name="indoor_room">
  <!-- Physics, lighting, ground (as above) -->

  <!-- Walls -->
  <model name="wall_north">
    <static>true</​static>
    <pose>0 5 1 0 0 0</​pose>
    <link name="link">
      <collision name="collision">
        <geometry><box><size>10 0.2 2</​size></​box></​geometry>
      </​collision>
      <visual name="visual">
        <geometry><box><size>10 0.2 2</​size></​box></​geometry>
      </​visual>
    </​link>
  </​model>

  <!-- Furniture from Fuel -->
  <include>
    <uri>https://fuel.gazebosim.org/​1.0/​OpenRobotics/​models/​Table</​uri>
    <pose>2 2 0 0 0 0</​pose>
  </​include>
</​world>

Obstacle Course

<world name="obstacle_course">
  <!-- Base elements -->

  <!-- Scattered obstacles -->
  <include>
    <uri>https://fuel.gazebosim.org/​1.0/​OpenRobotics/​models/​Construction Cone</​uri>
    <name>cone_1</​name>
    <pose>3 1 0 0 0 0</​pose>
  </​include>
  <include>
    <uri>https://fuel.gazebosim.org/​1.0/​OpenRobotics/​models/​Construction Cone</​uri>
    <name>cone_2</​name>
    <pose>5 -2 0 0 0 0</​pose>
  </​include>

  <!-- Goal marker -->
  <model name="goal">
    <static>true</​static>
    <pose>10 0 0.1 0 0 0</​pose>
    <link name="link">
      <visual name="visual">
        <geometry><cylinder><radius>0.5</​radius><length>0.2</​length></​cylinder></​geometry>
        <material><ambient>0 1 0 1</​ambient></​material>
      </​visual>
    </​link>
  </​model>
</​world>

Checklist

Before finalizing any SDF world:

  • Physics engine and step size configured
  • Lighting provides adequate visibility
  • Ground plane present and stable
  • All model URIs are valid (Fuel or local)
  • Model names are unique
  • Poses place models at correct locations
  • Static models marked <static>true</​static>
  • World loads in Gazebo without errors
  • Physics simulation is stable (no explosions)

Integration

This skill is used by:

  • content-implementer agent when generating Module 2 lessons
  • Students learning world building in Chapter 10
  • Capstone projects requiring custom environments

Dependencies:

  • urdf-robot-model - for robots to place in worlds
  • sensor-simulation - for testing sensors in environments
  • ros2-gazebo-bridge - for controlling simulations

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View