Agent skill

Debug Physics

by AgibotTech in AgibotTech/genie_sim

Diagnose physics misbehaviour in the Genie Sim RT Engine — robot swings on spawn, contacts tunnel, joints drift past their limits, cloth blows up, the convex-hull proxy renders instead of the visual…

MPL-2.0Auto-check passed

Install Debug Physics

skills CLI
$ npx skills add AgibotTech/genie_sim --skill debug-physics -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install AgibotTech/genie_sim debug-physics --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/AgibotTech/genie_sim.git skills-src && mkdir -p .claude/skills && cp -r skills-src/source/geniesim_ros/skills/debug-physics .claude/skills/debug-physics && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
debug-physics
GitHub stars
1.4k
Token cost
~2.3k tokens
SKILL.md length
797 words
Files
1
Skills in repo
26
Repo updated
First seen
Licence
MPL-2.0

At a glance

Diagnose physics misbehaviour in the Genie Sim RT Engine — robot swings on spawn, contacts tunnel, joints drift past their limits, cloth blows up, the convex-hull proxy renders instead of the visual…

  • Works in 5 steps: init_base_pose / init_joint_pos are… → init_joint_pos is JSON-encoded, not a… → The convex-hull look means the visual… → …
  • Reports robot swings at start
  • SKILL.md covers When to Use, Critical Patterns, Decision tree and Toggles & visualizers, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Debug Physics is an agent skill from AgibotTech/genie_sim. Diagnose physics misbehaviour in the Genie Sim RT Engine — robot swings on spawn, contacts tunnel, joints drift past their limits, cloth blows up, the convex-hull proxy renders instead of the visual mesh, or the wrong physics backend is active. Walks the user through the engine's debug toggles (visualizers, marker array, GL viewer, init teleport, backend swap) and the common failure-mode fixes. Trigger: When the user reports "robot swings at start", "objects float / sink into the floor", "contact tunnelling"…

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Simulation Platform from AgiBot. The licence is MPL-2.0.

When your agent uses it

  • Reports robot swings at start
  • Objects float / sink into the floor
  • Contact tunnelling
  • Joint went past limit

Example prompts

  • “robot swings at start”
  • “objects float / sink into the floor”
  • “contact tunnelling”
  • “/debug-physics”

Requirements

  • Docker

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. init_base_pose / init_joint_pos are non-physics teleport.
  2. init_joint_pos is JSON-encoded, not a launch list.
  3. The convex-hull look means the visual mesh was stripped. The
  4. Backend swap is one-arg. Whenever you suspect engine bugs,
  5. Use the GL viewer for ground truth. Newton-standalone +

What it can do on your machine

Read from SKILL.md and the folder at commit 6ca11c7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and yaml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Debug Physics loads about 2.3k tokens when it runs. Until then it costs about 179 tokens; SKILL.md has 797 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~179
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from AgibotTech/genie_sim at commit 6ca11c7, republished under its MPL-2.0 licence (© AgibotTech). 797 words, ~2,301 tokens.

Download SKILL.mdSave it as .claude/skills/debug-physics/SKILL.md (or your agent's skills folder).
name
debug-physics
description
Diagnose physics misbehaviour in the Genie Sim RT Engine — robot swings on spawn, contacts tunnel, joints drift past their limits, cloth blows up, the convex-hull proxy renders instead of the visual mesh, or the wrong physics backend is active. Walks the user through the engine's debug toggles (visualizers, marker array, GL viewer, `init_*` teleport, backend swap) and the common failure-mode fixes. Trigger: When the user reports "robot swings at start", "objects float / sink into the floor", "contact tunnelling", "joint went past limit", "robot vibrates / explodes", "shelf looks like a convex hull", "wrong gripper poses", "newton vs physx vs mjwarp difference", or asks to "debug the physics".
license
MPL-2.0
metadata.author
genie-sim
metadata.version
1.0
prerequisites
geniesim_ros:launch-scene

When to Use

  • Visual / kinematic glitch on launch (swing, drift, float, sink).
  • Contact behaviour wrong (tunnelling, no contact, no friction).
  • Solver-specific symptoms — works on PhysX but not Newton, or vice versa.
  • Render proxy showing instead of visual mesh (convex-hull look).
  • Joint exceeds URDF <limit> and MoveIt rejects the start state.

Do not use for:

  • Launch errors before physics even runs → check build-workspace skill output first.
  • MoveIt planning failures with sane physics → that's moveit-wbc, in particular the fix_start_state + start_state_max_bounds_error knobs.
  • Performance tuning (low FPS, JIT compile time) — different topic.

Critical Patterns

  1. init_base_pose / init_joint_pos are non-physics teleport. The engine writes them to USD attributes before world.reset() on PhysX and to model.joint_q + control.joint_target_pos before the first solver tick on Newton — drive error is zero at t=0, so no startup swing. If you see a swing, your launcher / scene yaml is bypassing this path.
  2. init_joint_pos is JSON-encoded, not a launch list. launch_ros mangles list-typed params; the engine reads init_joint_pos_json and decodes. Always edit it in scene yaml, not on the CLI.
  3. The convex-hull look means the visual mesh was stripped. The engine blocks the physics:approximation token when collisionEnabled=False, so the GL viewer renders the visual mesh. If you still see the proxy, the USD set collisionEnabled=True with a convexDecomposition approximation and the visual mesh is missing.
  4. Backend swap is one-arg. Whenever you suspect engine bugs, re-launch with the other launcher: launcher_ovrtx_isaac_physx (stable) vs launcher_newton_mjwarp (rigid, mujoco-warp). If only one backend reproduces, the issue is solver-side, not asset-side.
  5. Use the GL viewer for ground truth. Newton-standalone + inline OVRtx can mask geometry issues with photoreal lighting. The Newton GL viewer renders raw visual + collision meshes, so it's the right tool for "is the asset actually there".

Decision tree

Symptom: robot swings violently on spawn
CheckWhat to do
Was init_joint_pos set?Add to scene yaml under the robot block.
Did the swing happen on PhysX?Engine seeds state:angular/linear:physics:position before world.reset(). If swing returns, you're on an old build — rebuild via build-workspace.
Did the swing happen on Newton?Engine writes model.joint_q + control.joint_target_pos + syncs state_0.joint_q + calls eval_fk in _phase_finalize_init_state before _warmup. Confirm with cat source/geniesim_ros/src/ros_ws/src/genie_sim_engine/scripts/engine/newton/setup/init_pose.py
Mimic followers still swing?Mimic states are trivial — they ride the constraint. If they swing, the master joint init pose is wrong, not the follower.
Symptom: contact tunnelling / objects sink through floor
CheckWhat to do
Backend?Try the other launcher — PhysX 5 vs mujoco-warp have very different defaults.
Was collisionEnabled=False set on the floor / object?The engine strips the physics:approximation token only; if the whole CollisionAPI is disabled it'll fall through. Re-enable in the USD.
Soft joint limit drift?MoveIt URDF limits are padded ±0.01 rad / ±0.001 m at launch (see wbc.launch.py). For the engine itself, raise the URDF <limit> if real contact load is pushing past it.
MuJoCo soft contact?mjwarp uses a softer contact model than PhysX; reduce solref / solimp in the scene mjcf injection block.
Show full SKILL.md (316 more words)Show less
Symptom: shelf / object renders as a convex hull
CheckWhat to do
GL viewer or OVRtx?OVRtx renders visual mesh; GL viewer renders both visual + collision. If only GL shows the hull, that's expected — toggle off the collision layer.
collisionEnabled value on the primIf False, the engine should not be authoring a collision shape at all. If a hull renders, the USD still has physics:approximation=convexDecomposition. The engine blocks that token at load — rebuild via build-workspace if not.
Recently merged scene?Re-run assemble_scene.py (rm -rf assets/scenes/<scene>/ + relaunch).
Symptom: gripper poses wrong / EEF off

Common one for omnipicker / swiftpicker — verify:

  • Scene yaml gripper: matches the URDF you built MoveIt for.
  • MoveIt's (arm, gripper) matches the engine's. See moveit-wbc.
  • EEF_ABS payloads use arm_base_link framing (not base_link) — this was the most common confusion before commit 6391cdcf6.

Toggles & visualizers

bash
# Newton GL viewer (rigid only, kit-free) — see raw geometry:
ros2 launch genie_sim_bringup app.launch.py \
  scene:=<SCENE> \
  launcher_config:=launcher_newton_mjwarp \
  headless:=false   # local workstation with a screen; flip to true on a remote/headless host

# Debug marker / pointcloud publishers (enabled in the launcher yaml):
ros2 topic list | grep -E "marker|pointcloud|debug"
ros2 topic echo /debug/contacts                      # contact normals + impulses
ros2 topic echo /debug/init_pose                     # confirms init_* applied

# Compare runtime USD against source:
cat assets/scenes/<scene>/robot_runtime.usda | head  # post-strip / post-overrides

Per-scene viewer-camera pose is configurable in the scene yaml:

yaml
viewer_camera:
  pos:    [1.6, -1.6, 1.2]
  lookat: [0.0,  0.0, 0.8]

Backend swap as a bisection tool

When in doubt, run the same scene through both stable launchers and diff the behaviour:

bash
ros2 launch genie_sim_bringup app.launch.py scene:=<S> launcher_config:=launcher_ovrtx_isaac_physx
ros2 launch genie_sim_bringup app.launch.py scene:=<S> launcher_config:=launcher_newton_mjwarp
  • Same misbehaviour on both → asset / scene yaml bug (URDF inertia, init_pose, collision flags).
  • Different misbehaviour → solver-tuning bug (gains, contact compliance, integrator step).

Commands (copy-paste summary for the user)

bash
# 1. Force scene regenerate to rule out a stale cache
rm -rf assets/scenes/<scene>/
# OR:
ros2 launch genie_sim_bringup app.launch.py scene:=<S> launcher_config:=launcher_ovrtx_isaac_physx always_regenerate_robot_usd:=true

# 2. Try the other backend (bisection) — flip headless to true on a remote/headless host
ros2 launch genie_sim_bringup app.launch.py scene:=<S> launcher_config:=launcher_newton_mjwarp headless:=false

# 3. Inspect debug topics
ros2 topic list | grep -E "marker|debug|contacts"
ros2 topic echo /debug/contacts

# 4. Inspect the runtime USD
cat assets/scenes/<scene>/robot_runtime.usda

Notes

  • All launcher_newton_* rows except launcher_newton_mjwarp are experimental — physics, perf, and yaml schema can break between commits. Use them when you specifically need cloth / soft body or are intentionally testing a solver, not as a general fallback.
  • The _apply_init_base_pose helper writes to the session layer with a unique suffix, so re-launching doesn't accumulate xformOpOrder ops. Safe to relaunch repeatedly.
  • The OVRtx first-frame banner is one-shot, not a heartbeat — shader compile holds the GIL inside a C extension, so there's nothing to tick. If the banner sits without progress for >2 min, the compile cache is missing (rebuild the docker image's shader cache mount).

Resources

© AgibotTech, MPL-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in source/geniesim_ros/skills/debug-physics of AgibotTech/genie_sim.

Open the folder on GitHubat commit 6ca11c7

Compare with similar skills

Debug Physics next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Debug Physics compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Debug Physics this skillAgibotTech/genie_sim1.4k—~2.3kAutomated safety check: PassMPL-2.0
Debugasgeirtj/system_prompts_leaks69k—~439Automated safety check: PassCC0-1.0
Debugging Toolkitsickn33/agentic-awesome-skills47k1 repos~344Automated safety check: PassMIT
Hypothesis-Driven Debuggingcode-yeongyu/oh-my-openagent70k—~3.2kAutomated safety check: PassCustom licence
Aoti Debugpytorch/pytorch104k1 repos~1.7kAutomated safety check: PassCustom licence
Agent Introspection Debuggingaffaan-m/ECC274k2 repos~1.4kAutomated safety check: PassMIT

Similar skills

  • Debug

    asgeirtj/system_prompts_leaks

    Enable debug logging for this session and help diagnose issues

    69k GitHub stars~439 tokensUpdated yesterday
    Auto-check passed
  • Debugging Toolkit

    sickn33/agentic-awesome-skills

    A skill your agent uses when working with debugging toolkit smart debug (Alias for debugging-toolkit-smart-debug)

    47k GitHub starsUsed in 1 repo~344 tokens
    DevelopmentAuto-check passed
  • Hypothesis-Driven Debugging

    code-yeongyu/oh-my-openagent

    Runs a hypothesis-driven debugging loop for crashes, hangs and silent failures in any language, grounding every claim in runtime evidence and locking the fix with a test.

    70k GitHub stars~3.2k tokensUpdated today
    DevelopmentAuto-check passed
  • Aoti Debug

    pytorch/pytorch

    Debug AOTInductor (AOTI) errors and crashes. An agent skill from pytorch/pytorch.

    104k GitHub starsUsed in 1 repo~1.7k tokens
    DevelopmentAuto-check passed
  • Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports.

    274k GitHub starsUsed in 2 repos~1.4k tokens
    DevelopmentAuto-check passed
  • Gaia Debugging

    ruvnet/ruflo

    Diagnose why a GAIA question failed — extract trace, classify failure mode, and propose a fix.

    74k GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check: notes

More from AgibotTech/genie_sim

All 26 skills in this repo
  • Challenge Baseline Model

    AgibotTech/genie_sim

    Provision and launch the Simulation Challenge baseline inference model end to end: clone the inference code from a given git repo/branch, download the checkpoints from ModelScope into the repo's…

    1.4k GitHub stars~2.4k tokensUpdated 1 mo ago
    Auto-check passed
  • Challenge Download Datasets

    AgibotTech/genie_sim

    Download the Simulation Challenge LeRobot v2.1 training datasets from ModelScope using ./scripts/downloaddataset.sh.

    1.4k GitHub stars~960 tokensUpdated 1 mo ago
    Auto-check passed
  • Add Robot

    AgibotTech/genie_sim

    Bring a custom robot into the Genie Sim RT Engine — author / fix a xacro / URDF in geniesimrobotmodel, prep meshes with the offline tools (normalizeobjnames.py, diagnoseurdf.py, recomputeinertia.py…

    1.4k GitHub stars~2.1k tokensUpdated 1 mo ago
    Auto-check passed
  • Build Workspace

    AgibotTech/genie_sim

    Build the geniesimros colcon workspace inside the Genie Sim Docker container using the geniesim ros build CLI verb.

    1.4k GitHub stars~1.2k tokensUpdated 1 mo ago
    Auto-check passed
  • Challenge Inference Protocol

    AgibotTech/genie_sim

    Reference for the Simulation Challenge inference wire protocol — the exact obs (input) and action (output) message format exchanged between the gateway/genie-sim simulator and the contestant's…

    1.4k GitHub stars~1.7k tokensUpdated 1 mo ago
    Auto-check passed
  • Challenge Login

    AgibotTech/genie_sim

    A skill your agent uses when the contestant needs to obtain or refresh their Simulation Challenge JWT (CHALLENGETOKEN), or wants to inspect the current logged-in user.

    1.4k GitHub stars~1.6k tokensUpdated 1 mo ago
    Auto-check passed

Questions about Debug Physics

What does Debug Physics do?

Diagnose physics misbehaviour in the Genie Sim RT Engine — robot swings on spawn, contacts tunnel, joints drift past their limits, cloth blows up, the convex-hull proxy renders instead of the visual…. Debug Physics is an agent skill from AgibotTech/genie_sim. Diagnose physics misbehaviour in the Genie Sim RT Engine — robot swings on spawn, contacts tunnel, joints drift past their limits, cloth blows up, the convex-hull proxy renders instead of the visual mesh, or the wrong physics backend is active.

When should I use Debug Physics?

Debug Physics fits situations like: reports robot swings at start; objects float / sink into the floor; contact tunnelling; joint went past limit.

How do I install Debug Physics in Claude Code?

Run `npx skills add AgibotTech/genie_sim --skill debug-physics -a claude-code`. Or copy the skill folder (source/geniesim_ros/skills/debug-physics in AgibotTech/genie_sim) into .claude/skills/debug-physics in your project. Claude Code loads it when a task matches its description.

How do I install Debug Physics in Codex?

Run `npx skills add AgibotTech/genie_sim --skill debug-physics -a codex`. Or copy the skill folder (source/geniesim_ros/skills/debug-physics in AgibotTech/genie_sim) into .agents/skills/debug-physics in your project. Codex loads it when a task matches its description.

Can I use Debug Physics in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AgibotTech/genie_sim --skill debug-physics -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/debug-physics, .gemini/skills/debug-physics, .github/skills/debug-physics and .opencode/skills/debug-physics in your project.

What does Debug Physics need to run?

SKILL.md names no scripts, command-line tools or credentials: Debug Physics is instructions for the agent only. Our summary lists: Docker.

Does Debug Physics access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Debug Physics safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Debug Physics use?

Debug Physics is published under the MPL-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Debug Physics use?

About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Debug Physics?

Skills that share tags, products or a category with Debug Physics: Debug (asgeirtj/system_prompts_leaks, 69k stars), Debugging Toolkit (sickn33/agentic-awesome-skills, 47k stars), Hypothesis-Driven Debugging (code-yeongyu/oh-my-openagent, 70k stars) and Aoti Debug (pytorch/pytorch, 104k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Debug Physics?

AgibotTech (a GitHub organization) maintains it in AgibotTech/genie_sim, which has 1,413 GitHub stars. The repository holds 26 skills in this directory. The repository was last updated on September 7, 2026.

Source: AgibotTech/genie_sim on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.