WebXR AR/VR Expert
SkillDev toolsExpert guide for WebXR (Web-based Virtual and Augmented Reality) development using Babylon.js and Three.js. Covers device compatibility, immersive sessions, controllers, and hit-testing.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the WebXR AR/VR Expert skill
What this skill tells your AI
The instructions your AI receives, as published by roedyrustam/vibes-plug in skills/webxr-ar-vr-expert/SKILL.md and read by ahel’s review.
English | Bahasa Indonesia
English
Orchestration & Integration
Connects and orchestrates with relevant domain skills like brainstorming, zero-to-prod-orchestrator, and project-context-mapper to ensure cohesive execution.
Description
Production-grade guidance for building immersive Augmented Reality (AR) and Virtual Reality (VR) experiences in the browser using the WebXR Device API. Focuses on implementation via Babylon.js (which has industry-leading WebXR support) and Three.js / React Three Fiber.
Trigger Conditions
Activate this skill when the user is:
- Building AR/VR experiences for Oculus/Meta Quest, Apple Vision Pro, or mobile AR devices.
- Setting up an
immersive-vrorimmersive-arWebXR session. - Implementing controller tracking, hand tracking, or teleportation in 3D space.
- Using AR Hit-Testing to place digital objects on physical surfaces (floors/tables).
Core Concepts
1. Babylon.js WebXR Setup
Babylon.js provides the most robust default WebXR experience.
import { Scene, FreeCamera, Vector3, Engine } from '@babylonjs/core';
async function setupXR(scene: Scene) {
// Initialize default WebXR experience
// This automatically adds the "Enter VR/AR" button, teleportation, and controller models
const xr = await scene.createDefaultXRExperienceAsync({
uiOptions: {
sessionMode: 'immersive-vr', // or 'immersive-ar'
},
optionalFeatures: true
});
// Example: Listen for controller input
xr.input.onControllerAddedObservable.add((controller) => {
controller.onMotionControllerInitObservable.add((motionController) => {
// Handle button presses
});
});
}
2. Three.js / React Three Fiber Setup
In R3F, use @react-three/xr.
import { Canvas } from '@react-three/fiber';
import { XR, createXRStore } from '@react-three/xr';
const store = createXRStore();
export default function App() {
return (
<>
<button onClick={() => store.enterVR()}>Enter VR</button>
<Canvas>
<XR store={store}>
<mesh>
<boxGeometry />
<meshBasicMaterial color="red" />
</mesh>
</XR>
</Canvas>
</>
);
}
3. AR Hit-Testing
In AR mode, "Hit-Testing" allows you to detect real-world surfaces.
- Ensure
immersive-aris used. - Request the
hit-testfeature when initializing the session. - Use the hit-test results (a matrix/position) to place a reticle or object.
Best Practices
- Performance is Critical: VR requires a consistent 72 to 90 FPS (or 120 FPS on Apple Vision Pro). Dropped frames cause motion sickness.
- Polycount: Keep polygon counts and draw calls low.
- UI in XR: Standard HTML UI will not work in immersive mode. You must use 3D UI (e.g., Babylon's GUI 3D system or Three.js spatial HTML layers if supported).
Integration with Other Skills (MANDATORY)
This skill works best when combined with:
web-3d-graphics-expert— For building the 3D scene that XR will visualize.apple-ecosystem-expert— For optimizing WebXR compatibility with iOS (Safari) and visionOS.web-game-engine-expert— For adding physics to VR interactions (e.g., throwing objects).
Referenced By Orchestrators (MANDATORY)
brainstorming— Add to "3D & Graphics" or "Spatial Computing".zero-to-prod-orchestrator— Phase 5 (Frontend / XR Implementation).
Bahasa Indonesia
Integrasi Orkestrasi
Terhubung dan mengorkestrasi skill domain yang relevan seperti brainstorming, zero-to-prod-orchestrator, dan project-context-mapper untuk memastikan eksekusi yang kohesif.
Deskripsi
Panduan ahli untuk pengembangan Virtual Reality (VR) dan Augmented Reality (AR) di web menggunakan WebXR API. Difokuskan pada implementasi menggunakan Babylon.js dan Three.js untuk ekosistem Spatial Computing.
Kondisi Pemicu
- Mengembangkan aplikasi VR/AR untuk Meta Quest, Apple Vision Pro, atau Mobile AR.
- Mengimplementasikan pelacakan pengontrol (controller), pelacakan tangan (hand tracking), atau teleportasi.
- Menggunakan AR Hit-Testing untuk meletakkan objek 3D di permukaan dunia nyata.
Panduan Singkat
- Performa Mutlak: Jaga FPS tetap stabil di angka 72-90 FPS. Frame drop pada VR menyebabkan rasa mual (motion sickness) pada pengguna. Batasi jumlah poligon dan draw calls.
- Babylon.js sebagai Prioritas: Untuk proyek XR berskala besar, prioritaskan Babylon.js karena dukungan bawaannya untuk interaksi VR, fisika, dan UI 3D jauh lebih matang dibanding library lain.
- UI Spasial: Ingat bahwa elemen HTML biasa tidak muncul di dalam sesi
immersive-vratauimmersive-ar. Anda harus membuat UI berupa objek 3D (seperti panel yang melayang di udara). - Hit-Testing: Untuk AR, gunakan fitur Hit-Test yang disediakan WebXR API untuk mengenali lantai atau meja sebagai tempat menaruh objek.
Signals
- GitHub stars
- 50
- Forks
- 10
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
webxr-ar-vr-expert- Source
- github.com/roedyrustam/vibes-plug