Debug WebXR real-time behavior frame by frame with pause, snapshots, and diffs.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "iwsdk-debug" skill from askskill: 1. Download https://raw.githubusercontent.com/facebook/immersive-web-sdk/main/packages/starter-assets/claude-injections/skills/iwsdk-debug/SKILL.md 2. Save it as ~/.claude/skills/iwsdk-debug/SKILL.md 3. Reload skills and tell me it's ready
Help me debug a collision issue in this WebXR scene. Use pause, step, snapshot, and diff to inspect positions, velocities, and collider states frame by frame before and after contact, identify why the character passes through the wall, and suggest fixes.
A frame-by-frame collision analysis, the identified faulty state, and fixes to prevent clipping.
Pause and step through this WebXR scene to analyze the character’s animation state transitions from idle to grab. Compare keyframe snapshots and find issues in animation blending, trigger conditions, or ECS component update order.
An explanation of the animation transition, the frame where it breaks, and concrete fix directions.
Debug the game loop in this real-time interactive scene frame by frame. Check whether input handling, physics updates, and render synchronization stay consistent. Use snapshot diffs to find the root cause of object jitter or delayed response starting from a specific frame.
Inspection results for key game loop stages, the first problematic frame, and a root-cause analysis.
Real-time behavior (physics, animations, collisions, game loops) happens too fast for an agent to observe directly. By the time you take a screenshot, the action is over. This skill uses ECS time-control tools to freeze, step, and diff state frame by frame.
User request is in $ARGUMENTS.
Every debugging session follows this pattern:
ecs_pause — freeze ECS updates right before the interesting momentecs_snapshot({ "label": "before" }) — capture state before the actionecs_step(count, delta) — advance a few frames at fixed timestepbrowser_screenshot — visually verify what happenedecs_snapshot({ "label": "after" }) — capture state after steppingecs_diff({ "from": "before", "to": "after" }) — see exactly what changedecs_resume — return to normal execution when doneThe key insight: pause BEFORE triggering the action, not after. If you pause after, you've already missed the first frames.
| Tool | Purpose |
|---|---|
ecs_pause | Freeze all ECS system updates. Render loop continues — screenshots still work. |
ecs_step({"count":N,"delta":SECONDS}) | Advance N frames with fixed timestep (seconds). Must pause first. |
ecs_resume | Resume normal execution. First frame uses capped delta to avoid physics explosions. |
ecs_snapshot({"label":"..."}) | Capture full ECS state. Stores up to 2 snapshots. |
ecs_diff({"from":"...","to":"..."}) | Compare two snapshots. Shows added/removed entities and field-level value changes. |
ecs_toggle_system({"name":"...","paused":true}) | Pause/resume a single system. Use ecs_list_systems to discover names. |
browser_screenshot | Visual verification — works while paused since the render loop continues. |
delta is in seconds. Common values: 0.016 (60fps), 0.0139 (72fps/Quest refresh rate).Short domain-specific tips. Apply the core workflow above, plus these hints.
delta: 0.016 to catch initial acceleration.PhysicsBody._linearVelocity and PhysicsBody._angularVelocity to see motion direction and speed.Transform.position to track movement.PhysicsBody (Static) and PhysicsShape (TriMesh for complex geometry).ecs_query_entity to inspect PhysicsShape and PhysicsBody on both the falling object and the surface.PhysicsBody._linearVelocity shows the throw direction and speed.PhysicsBody with state: Dynamic.delta matching your target framerate.…
Plan IWSDK features, architecture, and code patterns with best-practice guidance.
Test XR session lifecycle and mode transitions to verify behavior and debug state issues.
Build, debug, and refine IWSDK PanelUI panels more efficiently.
Test multiple grab interaction modes with the iwsdk CLI.
Test XR interactions, panels, and audio behavior with the iwsdk CLI.
Find and click XR target objects to verify UI interactions work correctly.
Implement physics simulation, interactions, and collision debugging in IWSDK projects.
Test ECS core behaviors and example runtime via the iwsdk CLI.
Create, modify, debug, and preview PanelUI components in IWSDK apps.
Test Havok physics behaviors with the iwsdk CLI against example scenes.
Simulate grabbing objects in WebXR scenes for interaction testing and movement validation.
Test slide, snap turn, teleport, and jump locomotion with iwsdk CLI.