Test slide, snap turn, teleport, and jump locomotion with iwsdk CLI.
The material is mainly a set of local testing instructions, with no declared secrets or remote service endpoints, so the overall risk appears low. However, it does require running npm/npx commands, installing dependencies, and starting a local dev server, so it should be treated as a caution-level local development skill.
The material explicitly states that no keys or environment variables are required, and the README does not request any API keys, tokens, or account credentials; based on the provided facts, there is no direct credential collection or leakage surface.
No remote business endpoint is declared, and there is no stated transfer of user data to a specific third-party service; however, the instructions include `npm run fresh:install`, `npx iwsdk`, starting a dev server, and browser/xr operations, which commonly involve routine network activity (such as fetching dependencies or local dev connectivity), so actual egress destinations should be monitored.
The README explicitly requires running multiple local commands, including `npm run fresh:install`, `npm run dev`, `npx iwsdk ...`, background processes, and `sleep`; this implies local code execution and process-spawning capability, but it is consistent with the stated testing/development purpose and shows no additional signs of privilege abuse.
Operations are scoped to the `$IWSDK_REPO_ROOT/examples/locomotion` workspace and are expected to read the example project, install dependencies, generate build artifacts, read browser logs, and query runtime state; the material does not show a need to access sensitive files beyond that workspace, but dependency installation and dev tooling typically have read/write access within the workspace.
A positive factor is that the source is an open-source GitHub repository, so the code is in principle auditable; however, the license is undeclared, community adoption is 0 stars, maintenance status is unknown, and the docs require installing and running dependencies via npm/npx, which introduces normal supply-chain uncertainty. Therefore, caution is more appropriate than high risk.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "test-locomotion" skill from askskill: 1. Download https://raw.githubusercontent.com/facebook/immersive-web-sdk/main/.claude/skills/test-locomotion/SKILL.md 2. Save it as ~/.claude/skills/test-locomotion/SKILL.md 3. Reload skills and tell me it's ready
Use the test-locomotion skill to compare the current project's locomotion system against the locomotion example with the iwsdk CLI. Focus on slide, snap turn, teleport, and jump, and summarize any issues found.
A test summary showing whether each locomotion feature passed and listing any issues or differences found.
I just changed the character locomotion logic. Run test-locomotion against the locomotion example as a regression test and identify any behaviors that differ from the example.
A regression report highlighting affected locomotion behaviors and any mismatches with the example.
Use test-locomotion to investigate why the teleport mode test is failing. Based on comparison with the locomotion example, provide likely causes and troubleshooting suggestions.
A diagnostic result describing the failing mode, likely causes, and recommended next troubleshooting steps.
Run 6 test suites covering slide movement, snap turn, teleport, jump, system registration, and stability.
Configuration:
$IWSDK_REPO_ROOT/examples/locomotionTool calls: every tool call is npx iwsdk <subcommand> [--input-json '<JSON>'] [--timeout <ms>], run from inside the example workspace (cwd $EXAMPLE_DIR). The CLI auto-discovers the IWSDK app root from cwd, so no path tricks are required. Run npx iwsdk mcp inspect from the example to discover available tools and their CLI subcommands.
<JSON> is a JSON object string. Omit --input-json if no arguments are needed.{ok, workspaceRoot, operation, result}. Parse it to check assertions.--timeout 20000 for operations that may take longer (reload, xr enter, screenshot).IMPORTANT: Run each Bash command one at a time. Parse the JSON output and verify assertions before moving to the next command. Do NOT chain multiple CLI commands together.
IMPORTANT: When the instructions say "wait N seconds", use sleep N as a separate Bash command.
cd $IWSDK_REPO_ROOT/examples/locomotion && npm run fresh:install
Wait for this to complete before proceeding.
Start the dev server as a background task using the Bash tool's run_in_background: true parameter:
cd $IWSDK_REPO_ROOT/examples/locomotion && npm run dev
IMPORTANT: This command MUST be run with run_in_background: true on the Bash tool — do NOT append & to the command itself.
Once the background task is launched, poll the output for Vite's ready message (up to 60s). You can also run npx iwsdk dev status from the example directory until state.running becomes true. You do not need to extract or manage the port yourself; subsequent commands resolve the active runtime through the CLI automatically.
If the server fails to start within 60 seconds, report FAIL for all suites and skip to Step 5.
npx iwsdk ecs systems 2>/dev/null
This must return JSON with a list of systems. If it fails:
Run these commands in order:
npx iwsdk browser reload --timeout 20000 2>/dev/null
Then: sleep 3
npx iwsdk xr enter --timeout 20000 2>/dev/null
Then: sleep 2
npx iwsdk browser logs --input-json '{"count":20,"level":["error","warn"]}' 2>/dev/null
Assert: No error-level logs.
npx iwsdk ecs find --input-json '{"withComponents":["LocomotionEnvironment"]}' 2>/dev/null
Assert: At least 1 entity. Save as <env>.
npx iwsdk ecs query --input-json '{"entityIndex":<env>,"components":["LocomotionEnvironment"]}' 2>/dev/null
Assert: _initialized = true, _envHandle > 0.
npx iwsdk ecs systems 2>/dev/null
Assert:
| Action | Controller | Input | Tool |
|---|---|---|---|
| Slide forward | Left | Thumbstick Y = -1 | npx iwsdk xr set-gamepad-state axes [{0, 0}, {1, -1}] |
| Slide backward | Left | Thumbstick Y = 1 | npx iwsdk xr set-gamepad-state axes [{0, 0}, {1, 1}] |
| Snap turn right | Right | Thumbstick X = 1 (edge) | npx iwsdk xr set-gamepad-state axes [{0, 1}, {1, 0}] |
| Snap turn left | Right | Thumbstick X = -1 (edge) | npx iwsdk xr set-gamepad-state axes [{0, -1}, {1, 0}] |
…
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.
Debug WebXR real-time behavior frame by frame with pause, snapshots, and diffs.
Plan IWSDK features, architecture, and code patterns with best-practice guidance.
Test Havok physics behaviors with the iwsdk CLI against example scenes.
Test level hierarchy, tags, and lighting setup with the iwsdk CLI.
Test ECS core behaviors and example runtime via the iwsdk CLI.
Test UI system behavior and compatibility against the poke example with iwsdk CLI.
Test environment settings and component schemas with iwsdk CLI against poke.
Test audio loading, playback, stop, and spatial audio via iwsdk CLI.