Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Configure and build gz-sim from source using either CMake/Ninja directly or a colcon workspace. Trigger when the user asks to build, recompile, configure, or set up the gz-sim binary tree.
.claude/skills/harunkurtdev-gz-build/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 8% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -24% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -15% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -14% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -25% | 0% |
gz-sim follows the Gazebo project's standard build process. Two equally valid front-ends exist; pick based on what the user already has set up.
Assumes every Gazebo dependency (gz-cmake, gz-common, gz-physics, …) is already installed system-wide.
shcmake -S . -B build -G Ninja \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DBUILD_TESTING=ON cmake --build build -j"$(nproc)"
Useful flags:
| Flag | Effect | |------|--------| | -DCMAKE_BUILD_TYPE=Debug | Asserts on, no optimization, full symbols. | | -DENABLE_PROFILER=ON | Compiles in GZ_PROFILER hooks. | | -DBUILD_TESTING=OFF | Skip test targets (faster, smaller). | | -DCMAKE_INSTALL_PREFIX=/opt/gz | Override install location. | | -DBUILD_DOCS=ON | Build Doxygen + tutorials (needs doxygen). |
Install (optional, into prefix):
shcmake --install build
When the user is building the full Gazebo stack:
sh# from <workspace>/src/ that contains gz-sim and friends colcon build --merge-install --cmake-args -DBUILD_TESTING=ON source install/setup.bash
Limit to gz-sim and its deps:
shcolcon build --merge-install \ --packages-up-to gz-sim \ --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo
shbazel build //... --config=linux bazel test //... --config=linux
MODULE.bazel pins the dependencies; the matrix is exercised by .github/workflows/bazel.yml.
gz sim -v 4 shapes.sdf (needs source install/setup.bashwhen built via colcon).
xvfb-run -s '-screen 0 1280x800x24'.-DCMAKE_CXX_FLAGS="-fsanitize=address,undefined"and -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address,undefined".
find_package(gz-cmake REQUIRED) failing → user hasn't installed gz-cmake.qt6-base-dev + qt6-declarative-dev+ qt6-5compat-dev are present.
sdformat → install the matching libsdformat<NN>-dev for thecurrent Gazebo distribution (Rotary → check package.xml).
gz-msgs headers → rebuild gz-msgs before gz-sim.Always cd into the repo root (/home/rdadmin/gz-sim) before running these.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 6,581 | 2,462 | -63% | 1 | 1 | 0% | 1,171 | 1,266 | +8% | 0 | 0 | — |
case-02 | pass→pass | 10,168 | 3,129 | -69% | 1 | 1 | 0% | 1,755 | 1,402 | -20% | 0 | 0 | — |
case-03 | fail→pass | 33,884 | 8,303 | -75% | 1 | 1 | 0% | 3,040 | 2,318 | -24% | 0 | 0 | — |
case-04 | pass→pass | 10,278 | 4,675 | -55% | 1 | 1 | 0% | 1,789 | 1,615 | -10% | 0 | 0 | — |
case-05 | pass→pass | 8,216 | 6,032 | -27% | 1 | 1 | 0% | 1,540 | 1,885 | +22% | 0 | 0 | — |
case-06 | pass→pass | 6,765 | 2,541 | -62% | 1 | 1 | 0% | 1,169 | 1,154 | -1% | 0 | 0 | — |
case-07 | pass→pass | 7,914 | 5,141 | -35% | 1 | 1 | 0% | 1,329 | 1,628 | +22% | 0 | 0 | — |
case-08 | pass→pass | 7,673 | 4,256 | -45% | 1 | 1 | 0% | 1,318 | 1,544 | +17% | 0 | 0 | — |
case-09 | fail→pass | 10,823 | 4,288 | -60% | 1 | 1 | 0% | 1,770 | 1,496 | -15% | 0 | 0 | — |
case-10 | pass→pass | 10,745 | 6,643 | -38% | 1 | 1 | 0% | 1,908 | 1,912 | +0% | 0 | 0 | — |
case-11 | fail→pass | 10,663 | 5,110 | -52% | 1 | 1 | 0% | 1,958 | 1,691 | -14% | 0 | 0 | — |
case-12 | fail→pass | 13,591 | 5,737 | -58% | 1 | 1 | 0% | 2,401 | 1,794 | -25% | 0 | 0 | — |
case-13 | fail→pass | 12,498 | 7,091 | -43% | 1 | 1 | 0% | 1,914 | 1,972 | +3% | 0 | 0 | — |
case-14 | fail→pass | 8,295 | 3,788 | -54% | 1 | 1 | 0% | 1,491 | 1,278 | -14% | 0 | 0 | — |
case-15 | pass→pass | 11,876 | 2,705 | -77% | 1 | 1 | 0% | 1,869 | 1,195 | -36% | 0 | 0 | — |
case-16 | fail→pass | 9,854 | 4,836 | -51% | 1 | 1 | 0% | 1,570 | 1,559 | -1% | 0 | 0 | — |
case-17 | pass→pass | 19,397 | 3,129 | -84% | 1 | 1 | 0% | 3,161 | 1,237 | -61% | 0 | 0 | — |
case-18 | pass→pass | 4,181 | 1,893 | -55% | 1 | 1 | 0% | 635 | 1,064 | +68% | 0 | 0 | — |
case-19 | pass→pass | 21,134 | 15,772 | -25% | 1 | 1 | 0% | 4,472 | 4,395 | -2% | 0 | 0 | — |
case-20 | pass→pass | 11,584 | 8,215 | -29% | 1 | 1 | 0% | 2,425 | 2,452 | +1% | 0 | 0 | — |
case-21 | pass→pass | 19,381 | 22,488 | +16% | 1 | 1 | 0% | 3,903 | 5,183 | +33% | 0 | 0 | — |
case-22 | pass→pass | 8,846 | 4,935 | -44% | 1 | 1 | 0% | 1,537 | 1,570 | +2% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +36 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.