Build, debug, and refine IWSDK PanelUI panels more efficiently.
This skill appears to be a prompt-only workflow document for IWSDK UI panel development, with no stated need for secrets, remote connectivity, local code execution, or expanded data access, so overall risk is low. The main caveat is supply-chain confidence: although it is open source on GitHub, community adoption is low, maintenance is unknown, and no license is declared.
The material explicitly states that no keys or environment variables are required, and the README does not request any API keys, tokens, or other credentials. No credential collection, storage, or misuse risk is evident.
The material states there are no remote endpoint hosts. The content is mainly a local UI development workflow and sample code, with no described behavior involving sending user data, telemetry, or screenshots to external services.
The system has already classified it as prompt-only. The README provides development examples and debugging guidance rather than instructing the skill itself to launch processes, run scripts, or invoke system commands, so no additional code-execution capability is evident.
The document only suggests that developers modify local `.uikitml` or panel configuration files and inspect screenshots. It does not claim that the skill can directly read, write, or broadly access local files, user data, system resources, or sensitive directories.
The source is an open-source GitHub repository, which is a clear risk-reducing factor because the code is auditable. However, the repository shows 0 stars, unknown maintenance status, and no declared license, so community validation and maintenance signals are weak; review repo activity and contents before adoption.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "iwsdk-ui-panel" skill from askskill: 1. Download https://raw.githubusercontent.com/facebook/immersive-web-sdk/main/.claude/skills/iwsdk-ui-panel/SKILL.md 2. Save it as ~/.claude/skills/iwsdk-ui-panel/SKILL.md 3. Reload skills and tell me it's ready
Generate a PanelUI settings panel for an IWSDK app with a title, toggle, dropdown, and save button, and provide the component structure and sample code.
A usable IWSDK panel component plan with layout guidance and sample implementation code.
I have overlapping buttons and broken spacing in an IWSDK PanelUI. Analyze common causes and provide step-by-step debugging and fix suggestions.
A clear diagnosis approach, debugging steps, and actionable fixes for the layout issue.
Review this IWSDK PanelUI panel’s interaction and visual hierarchy, suggest improvements for usability, information structure, and styling, and propose an improved design direction.
A UI improvement checklist and redesign direction focused on usability and visual consistency.
This skill teaches the efficient workflow for developing UI panels in IWSDK applications using temporary ScreenSpace positioning and backdrop techniques.
When working on a UI panel, follow these steps for rapid iteration:
Temporarily add the ScreenSpace component to your PanelUI entity to make it fill the 2D screen during development:
import { ScreenSpace } from '@iwsdk/core';
world
.createTransformEntity(panelHolder)
.addComponent(PanelUI, {
config: '/ui/your-panel.json',
maxWidth: 1.0,
maxHeight: 0.5,
})
.addComponent(ScreenSpace, {
width: '90vw', // Fill 90% of viewport width
height: '90vh', // Fill 90% of viewport height
top: '5vh', // Center with 5% margins
left: '5vw',
});
Important: This is temporary for development only. Remove before production.
Create a solid color backdrop far from your gameplay area for clean UI visibility:
const backdrop = new Mesh(
new BoxGeometry(20, 20, 0.1),
new MeshBasicMaterial({ color: 0x1a1a2e }),
);
backdrop.position.set(0, 0, -50); // Far from gameplay
scene.add(backdrop);
Move the camera very close to the backdrop (within 0.5m) to eliminate background distractions:
// Position camera very close to backdrop for clean UI development
camera.position.set(0, 0, -49.5); // Just 0.5m from backdrop at z=-50
camera.lookAt(0, 0, -50);
Why close? The backdrop must fill the entire field of view to block out the 3D scene. Being far away (50m) won't work - you'll still see the environment around the edges.
Now you can rapidly iterate on your UI:
.uikitml fileThe ScreenSpace component makes the panel "follow" the camera, so it appears as a 2D overlay on your backdrop.
When you enter VR mode:
This dual-mode behavior is handled automatically by the ScreenSpaceUISystem.
UIKit components expose size information through signals. Log these to debug layout issues:
const document = PanelDocument.data.document[entity.index];
console.log('computedSize:', document.computedSize); // Intrinsic size in cm
console.log('targetSize:', document.targetSize); // Target size in meters
console.log('rootElement.size.value:', document.rootElement?.size?.value);
console.log('document.scale:', document.scale); // Applied scale
Understanding the output:
computedSize: UIKit's rendered size in centimeters (based on your CSS)targetSize: The requested size in meters (from PanelUI maxWidth/maxHeight or ScreenSpace constraints)document.scale: Uniform scale factor applied to fit target while preserving aspect ratioExample output:
computedSize: { width: 100, height: 50 } // 100cm × 50cm
targetSize: { width: 0.274, height: 0.168 } // 0.274m × 0.168m
document.scale: { x: 0.274, y: 0.274, z: 0.274 } // Scaled down by 0.274x
The ScreenSpace component positions panels using CSS-like properties:
.addComponent(ScreenSpace, {
width: '90vw', // CSS size: px, vw, vh, %, auto
height: '90vh', // CSS size: px, vw, vh, %, auto
top: '5vh', // CSS position: px, %, vh, auto
bottom: 'auto', // CSS position: px, %, vh, auto
…
Test XR session lifecycle and mode transitions to verify behavior and debug state issues.
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.
Implement depth sensing occlusion in IWSDK and troubleshoot rendering issues.
Plan IWSDK features, architecture, and code patterns with best-practice guidance.
Create, modify, debug, and preview PanelUI components in IWSDK apps.
Test UI system behavior and compatibility against the poke example with iwsdk CLI.
Show interactive UIs by URL and collect structured responses back.
Implement physics simulation, interactions, and collision debugging in IWSDK projects.
Build, debug, and extend end-to-end tests for the OpenClaw Control UI.
Quickly add Zoom’s prebuilt React video UI to web workflows.