Agent Skills › dartsim/dart › dart-verify-sim

dart-verify-sim

GitHub

DART仿真验证技能,通过文本预言机与Filament视觉调试结合,对3D场景、动力学、碰撞及GUI输出进行端到端正确性审查,确保像素检查不替代语义分析。

.claude/skills/dart-verify-sim/SKILL.md dartsim/dart

Trigger Scenarios

验证DART物理仿真结果 审查3D场景加载或渲染输出 排查碰撞接触或动力学缺陷

Install

npx skills add dartsim/dart --skill dart-verify-sim -g -y
More Options

Non-standard path

npx skills add https://github.com/dartsim/dart/tree/main/.claude/skills/dart-verify-sim -g -y

Use without installing

npx skills use dartsim/dart@dart-verify-sim

指定 Agent (Claude Code)

npx skills add dartsim/dart --skill dart-verify-sim -a claude-code -g -y

安装 repo 全部 skill

npx skills add dartsim/dart --all -g -y

预览 repo 内 skill

npx skills add dartsim/dart --list

SKILL.md

Frontmatter
{
    "name": "dart-verify-sim",
    "description": "DART Verify Sim: text-first and Filament visual debugging for DART scenes, dynamics, collision, contacts, and GUI output"
}

DART Simulation Verification

Load this skill whenever a DART claim depends on 3D structure or behavior: model/scene loading, dynamics, collision/contact/constraints, simulation stepping, Filament rendering, or a visual example.

Lead with text, corroborate with images. An image-capable agent can inspect a rendered frame, but pixels do not expose solver state and machine pixel checks are not semantic inspection. First run a text oracle, then verify the same claim end to end through the core Filament capture/debug path.

Owner And Evidence Contract

Read docs/ai/verification.md.

For Python catalog scene changes, also follow docs/onboarding/testing.md § "Demo Catalog Verification" for construction, scripted controls, and matched-capture parity evidence.

Record:

  1. a text correctness oracle (focused behavioral test, poses/velocities, contact trace, or pixi run bm-boxes-headless checksum comparison);
  2. an assessed headless capture with only the debug layers needed by the claim; and
  3. an actual semantic inspection of the selected still or temporal frames; and
  4. the reproduce command, view-quality result, reconciliation, verdict, claim boundary, and limitations.

If Filament capture is unavailable or visual corroboration is genuinely irrelevant, state why and name the replacement evidence. Never use an image as the sole correctness oracle.

Image-capable Review Loop

Every model lane routed in docs/ai/README.md § "Updating Models And Coding Agents" supports native image input and original-detail inspection. Keep this loop capability-based; update model facts in that owner doc, not here.

  1. State one claim, its expected visible observation, and the text oracle that decides correctness.
  2. Capture one assessed, claim-tied view first. Add only the debug layers needed by the claim; use paired plain/debug views when overlays obscure geometry. For turntable or motion output, inspect at least the sidecar's start/middle/end targets and add intervening frames or a sheet when a transient event matters.
  3. Run image-verdict for artifact integrity, then open the selected PNG with the active agent's native image viewer. Use original detail for fine contacts, labels, bounds, or frame axes. A passing view report or image-verdict is not semantic visual review.
  4. Record the visible observation separately from the text result. If they disagree, do not average them into a pass: report fail or uncertain, inspect the capture sidecar, reframe or recapture, and investigate simulation state.
  5. Close with pass/fail/uncertain, artifact path, camera/layers, reproduce command, what the image shows, and what it does not prove. If native image review is unavailable, hand the selected files and sidecar to an image-capable reviewer with pixi run verification-bundle -- ... and record that limitation.

Visual Debugging And Capture

Use pixi run agent-capture -- ... for deterministic stills, turntables, or motion sequences. Select a built-in --scene or an applicable --factory module:callable that returns the changed dartpy.simulation.World. The v2 sidecar records the camera, layers, view report, reproduce command, and deterministic static or start/middle/end inspection targets.

Available layers are grid, world_frame, body_frames, contacts, velocities, coms, inertia_boxes, collision_bounds, trajectories, and labels. They render through dart::gui::DebugOverlay, not image-space annotation. Use --focus plus --auto-views when framing is uncertain; scripts/agent_view_quality.py rejects cropped, off-frame, too-near, too-far, occluded, ambiguous, or no-bounded-renderable views using core bounds and collision raycasts. Its framing distance fits the limiting horizontal or vertical field of view for the requested viewport, including portrait output.

Typical same-claim sequence for contact/debug-overlay work:

pixi run test-agent-debug-overlay
pixi run agent-capture -- --scene box_on_ground --steps 250 \
  --layers contacts body_frames collision_bounds labels --auto-views 1 \
  --out /tmp/dart-visual-evidence
pixi run image-verdict -- /tmp/dart-visual-evidence/capture_auto0.png

The task's first case is the text/geometry oracle for the same settled-contact claim shown in the capture; its second checks the underlying engine overlay, its third exercises a valid custom factory, and its fourth performs the full agent-capture A/B with identical cameras and requires debug layers to change at least 128 pixels plus visible contact-marker color pixels, then proves each of the contacts, collision-bounds, and labels layers changes pixels on its own. Filtered DART sentinel contacts remain diagnostic sidecar evidence rather than an A/B failure. For a custom --factory, replace the text case with a focused test, pose/contact trace, or checksum comparison that exercises that factory; do not pair a custom scene with an unrelated benchmark. Use pixi run bm-boxes-headless only when the claim is specifically about that benchmark's deterministic box trajectory.

For PR before/after 3D highlights, matched captures, and compute-only plots, follow docs/ai/verification.md § "Simulation Verification Route". For their placement beside the supported claim, follow docs/onboarding/contributing.md § "PR Descriptions".

Use pixi run image-sheet for motion. image-verdict checks pixel integrity and optional reference differences; it does not inspect meaning. pixi run evidence-select keeps a bounded claim-covering artifact set. pixi run evidence-publish requires the text oracle, visible observation, text/image reconciliation, semantic verdict, and at least one explicit not-proven boundary before it marks the PR visual section ready. It renders local references without network access. The Visual verification section keeps claims, supporting media, observations, boundaries, and limiting caveats visible, with reproduction/environment details collapsed. Follow docs/ai/verification.md § "Visual Verification (Headless Capture)" for publication after explicit maintainer/user approval. Attachments use the same store as drag-and-drop, never release assets or tags; --body-file replaces the whole PR body. pixi run verification-bundle packages primary text evidence, a still, and an optional grid with hashes and a semantic-review prompt for an image-capable handoff; producing the bundle does not itself complete semantic review.

Environment

Filament capture on Linux uses Vulkan without an X display or Xvfb. Native interactive tests still need a desktop session (Xvfb on headless Linux). Windows uses native OpenGL and macOS uses Metal. If the required graphics device or driver is unavailable, keep the text evidence, record the limitation, and name replacement evidence.

Version History

  • f630c91 Current 2026-10-18 20:26

    重构验证流程,强调先运行文本预言机再辅以图像佐证;细化图像审查循环步骤,明确仅在图像不可用或无关时豁免视觉证据,强化文本作为唯一正确性判定依据。

  • deb9869 2026-09-08 21:47
  • bcd584e 2026-09-02 23:42

    更新模型路由至Fable 5.1并刷新AI工具链内容

  • ef10cb2 2026-08-03 01:15

    新增Claude Code模型路由通道并强化模型升级审计路径

  • 83110ef 2026-07-30 23:36

    更新AI基础设施以支持GPT-5.6模型,新增针对该模型的图像输入与细节检查能力说明。

  • b9fbefc 2026-07-19 11:31

    升级AI基础设施与视觉验证能力;新增主动相机控制、调试图层支持,以及针对Agent视觉验证的声明关联PR证据功能。

  • 51b2d25 2026-07-11 18:25

Same Skill Collection

.agents/skills/dart-analyze/SKILL.md
.agents/skills/dart-architecture/SKILL.md
.agents/skills/dart-audit-agent-compliance/SKILL.md
.agents/skills/dart-backport-pr/SKILL.md
.agents/skills/dart-benchmark-packet/SKILL.md
.agents/skills/dart-branch-cleanup/SKILL.md
.agents/skills/dart-build/SKILL.md
.agents/skills/dart-changelog/SKILL.md
.agents/skills/dart-ci/SKILL.md
.agents/skills/dart-close-issue/SKILL.md
.agents/skills/dart-contribute/SKILL.md
.agents/skills/dart-deps/SKILL.md
.agents/skills/dart-docs-update/SKILL.md
.agents/skills/dart-downstream-fix/SKILL.md
.agents/skills/dart-execute-packet/SKILL.md
.agents/skills/dart-fix-issue/SKILL.md
.agents/skills/dart-io/SKILL.md
.agents/skills/dart-manage-pr/SKILL.md
.agents/skills/dart-mechanical-refactor/SKILL.md
.agents/skills/dart-model-upgrade/SKILL.md
.agents/skills/dart-new-task/SKILL.md
.agents/skills/dart-next/SKILL.md
.agents/skills/dart-perf/SKILL.md
.agents/skills/dart-plan-update/SKILL.md
.agents/skills/dart-pr/SKILL.md
.agents/skills/dart-python/SKILL.md
.agents/skills/dart-references/SKILL.md
.agents/skills/dart-release-ci-fix/SKILL.md
.agents/skills/dart-release-merge-main/SKILL.md
.agents/skills/dart-release-packaging/SKILL.md
.agents/skills/dart-resume/SKILL.md
.agents/skills/dart-retro/SKILL.md
.agents/skills/dart-review-pr/SKILL.md
.agents/skills/dart-test/SKILL.md
.agents/skills/dart-triage-issue/SKILL.md
.agents/skills/dart-ultrawork/SKILL.md
.agents/skills/dart-verify-sim/SKILL.md
.claude/skills/dart-architecture/SKILL.md
.claude/skills/dart-build/SKILL.md
.claude/skills/dart-ci/SKILL.md
.claude/skills/dart-contribute/SKILL.md
.claude/skills/dart-io/SKILL.md
.claude/skills/dart-perf/SKILL.md
.claude/skills/dart-python/SKILL.md
.claude/skills/dart-references/SKILL.md
.claude/skills/dart-test/SKILL.md
.codex/skills/dart-analyze/SKILL.md
.codex/skills/dart-architecture/SKILL.md
.codex/skills/dart-audit-agent-compliance/SKILL.md

Metadata

Files
0
Version
f630c91
Hash
518e841c
Indexed
2026-07-11 18:25

홈 - 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-20 03:10
浙ICP备14020137号-1