VR & AR Development

Building immersive spatial computing experiences for virtual and augmented reality

VR & AR Development Hub

Welcome to the comprehensive guide for Extended Reality (XR) development. From standalone VR experiences to mobile AR applications, this resource covers the technical foundations and best practices for building immersive spatial computing experiences.

Virtual Reality (VR) and Augmented Reality (AR) represent transformative technologies that create immersive experiences by either fully replacing or enhancing the user's perception of reality. These technologies demand specialized development approaches, strict performance requirements, and careful attention to human factors to create comfortable, engaging experiences.

Getting Started

Prerequisites

Before diving into XR development, you should have:

Essential Skills:

  • 3D programming fundamentals - Understanding of 3D math, transforms, and coordinate systems
  • Game engine experience - Familiarity with Unity or Unreal Engine (see our Game Development Hub)
  • Graphics programming - Basic knowledge of rendering pipelines (see 3D Graphics & Rendering)
  • Performance optimization - Understanding of profiling and optimization techniques (see Performance Optimization)

Recommended Knowledge:

  • Object-oriented programming (C# for Unity, C++ for Unreal)
  • Mobile development for AR (Swift for iOS, Kotlin for Android)
  • Basic understanding of human perception and ergonomics

For VR Beginners:

  1. Start with Understanding XR Technologies to learn the landscape
  2. Explore VR Development Fundamentals for core concepts
  3. Try a simple project using Unity XR Interaction Toolkit
  4. Test on actual hardware - emulators can’t teach comfort

For AR Developers:

  1. Review AR Development and spatial understanding
  2. Choose your platform: ARKit vs ARCore
  3. Build a plane detection and object placement demo
  4. Experiment with WebXR for cross-platform experiences

For Enterprise Developers:

  1. Focus on Mixed Reality Features
  2. Study Performance Optimization for XR
  3. Learn Spatial UI Design for productivity applications
  4. Consider Microsoft HoloLens or Magic Leap development

Learning Paths

Path 1: VR Game Developer

Perfect for creating immersive gaming experiences on Quest, PSVR2, or PC VR.

1. Foundation
   ├─→ VR Development Fundamentals
   ├─→ Rendering Requirements
   └─→ Motion Sickness Prevention

2. Interaction Design
   ├─→ Hand Tracking and Controllers
   ├─→ Locomotion Systems
   └─→ Spatial UI Design

3. Performance & Polish
   ├─→ Performance Optimization for XR
   ├─→ Foveated Rendering
   └─→ Testing and Iteration

4. Platform Development
   ├─→ Unity XR Interaction Toolkit
   ├─→ Unreal Engine VR (see Unreal Guide)
   └─→ Meta Quest native SDK

Key Resources: Game Development Hub, Unreal Engine Guide

Path 2: Mobile AR Developer

Focus on smartphone AR experiences using ARKit (iOS) or ARCore (Android).

1. AR Fundamentals
   ├─→ Spatial Understanding
   ├─→ Plane Detection
   └─→ Image/Object Recognition

2. Platform Expertise
   ├─→ ARKit Development (iOS)
   ├─→ ARCore Development (Android)
   └─→ Cross-platform with Unity AR Foundation

3. Advanced Features
   ├─→ LiDAR scanning
   ├─→ Cloud Anchors for multi-user
   └─→ Geospatial API for outdoor AR

4. Production
   ├─→ Performance on mobile
   ├─→ Battery optimization
   └─→ App Store deployment

Key Resources: 3D Graphics & Rendering, Performance Optimization

Path 3: Enterprise XR Developer

Build productivity and training applications for HoloLens, Magic Leap, or enterprise VR.

1. Enterprise Foundations
   ├─→ Mixed Reality Features
   ├─→ Passthrough and World Anchors
   └─→ Scene Understanding

2. Business Applications
   ├─→ Spatial UI for productivity
   ├─→ Hand tracking interfaces
   └─→ Multi-user collaboration

3. Integration
   ├─→ Cloud services integration
   ├─→ Enterprise security
   └─→ Device management

4. Deployment
   ├─→ Enterprise app distribution
   ├─→ Training and support
   └─→ Maintenance and updates

Key Resources: Unreal Engine Guide, Performance Optimization

Path 4: WebXR Developer

Create browser-based XR experiences accessible on any device.

1. Web Foundations
   ├─→ WebXR API
   ├─→ Three.js or Babylon.js
   └─→ WebGL and WebGPU

2. Cross-Platform Development
   ├─→ Progressive Web Apps for XR
   ├─→ Device capability detection
   └─→ Responsive XR design

3. Advanced WebXR
   ├─→ Hand tracking in browser
   ├─→ WebXR Layers API
   └─→ Hit testing and anchors

4. Distribution
   ├─→ No app store required
   ├─→ Instant access via URL
   └─→ Analytics and telemetry

Key Resources: 3D Graphics & Rendering, Game Development Hub

Understanding XR Technologies

The Reality-Virtuality Continuum

Real          │ Augmented    │ Mixed        │ Virtual
Environment   │ Reality (AR) │ Reality (MR) │ Reality (VR)
──────────────┼──────────────┼──────────────┼──────────────
Physical      │ Digital      │ Digital      │ Fully
world only    │ overlays on  │ interacts    │ synthetic
              │ physical     │ with physical│ environment
              │              │              │
Examples:     │ Pokemon GO   │ HoloLens     │ Beat Saber
              │ Snapchat     │ Magic Leap   │ Half-Life Alyx
              │ Google Maps  │ Quest MR     │ VRChat

XR Hardware Landscape

VR Headsets:

Device Type Resolution (per eye) Refresh Rate Tracking
Meta Quest 3 Standalone 2064x2208 120Hz Inside-out
Valve Index PC VR 1440x1600 144Hz Outside-in
PlayStation VR2 Console 2000x2040 120Hz Inside-out
Apple Vision Pro Standalone 3660x3200 90Hz Inside-out
HTC Vive XR Elite Standalone/PC 1920x1920 90Hz Inside-out

AR Devices:

  • Meta Ray-Ban: Consumer smart glasses
  • Microsoft HoloLens 2: Enterprise AR
  • Magic Leap 2: Enterprise/industrial
  • Smartphones: ARKit (iOS) / ARCore (Android)

VR Development Fundamentals

Rendering Requirements

VR demands exceptional performance:

Target Metrics:
- Frame Rate: 90Hz minimum (72-120Hz typical)
- Latency: <20ms motion-to-photon
- Resolution: 2K+ per eye
- Stereo Rendering: 2x geometry passes

Effective load:
90 FPS × 2 eyes × 4MP per eye = 720M pixels/second
(vs 60 FPS × 1 view × 2MP = 120M pixels/second for traditional)

Stereo Rendering Techniques:

Technique Description Performance
Multi-pass Render scene twice Baseline
Instanced Stereo Single draw, dual viewports 1.5-2x faster
Single Pass Stereo Geometry shader duplication Variable
Variable Rate Shading Lower resolution periphery 20-30% savings

Motion Sickness Prevention

Causes and mitigations:

Vestibular Mismatch:

  • Visual motion without physical motion
  • Worse with acceleration, rotation
  • Accumulates over time

Mitigation Strategies:

1. Locomotion Design
   - Teleportation (safest)
   - Snap turning (reduce smooth rotation)
   - Comfort vignette during movement
   - User-controlled movement speed

2. Technical Requirements
   - Maintain target frame rate always
   - Minimize latency
   - Lock horizon/reference points
   - Avoid camera shake

3. User Options
   - Comfort settings exposed
   - Gradual exposure modes
   - Session length recommendations

Interaction Design

VR-specific input paradigms:

Hand Tracking:

Gestures:
- Pinch: Select/grab
- Point: Direct manipulation
- Open palm: Menu/UI
- Fist: Grip objects
- Thumbs up: Confirm

Hand presence adds:
- Natural object manipulation
- Social expression
- Accessibility without controllers

Controller Interactions:

  • Trigger: Primary action
  • Grip: Grab/hold objects
  • Thumbstick: Locomotion/menu navigation
  • Buttons: Context actions
  • Haptics: Tactile feedback

Gaze-Based:

  • Dwell time selection
  • Head-tracked cursor
  • Eye tracking for foveated rendering
  • Natural social cues

AR Development

Spatial Understanding

AR requires understanding the physical world:

Plane Detection:

Types:
- Horizontal (floors, tables)
- Vertical (walls)
- Arbitrary angle (stairs)

Quality:
- Boundaries refinement over time
- Hole detection
- Classification (floor vs table)

Scene Understanding:

  • Mesh reconstruction (real-time 3D scanning)
  • Semantic segmentation (identify objects)
  • Occlusion (virtual behind real)
  • Light estimation (match virtual to real lighting)

ARKit vs ARCore

Apple ARKit (iOS):

Features:
- World Tracking (6DoF)
- Plane Detection
- Image/Object Recognition
- Face Tracking (TrueDepth)
- Body Tracking
- LiDAR (Pro devices)
- RoomPlan API

Google ARCore (Android):

Features:
- Motion Tracking
- Environmental Understanding
- Light Estimation
- Cloud Anchors (shared experiences)
- Augmented Faces
- Depth API
- Geospatial API (outdoor positioning)

WebXR

Browser-based XR experiences:

// Basic WebXR session
async function startXR() {
    if (navigator.xr) {
        const session = await navigator.xr.requestSession(
            'immersive-vr',  // or 'immersive-ar'
            {
                requiredFeatures: ['local-floor'],
                optionalFeatures: ['hand-tracking']
            }
        );

        // Set up render loop
        session.requestAnimationFrame(onXRFrame);
    }
}

function onXRFrame(time, frame) {
    const pose = frame.getViewerPose(referenceSpace);

    if (pose) {
        for (const view of pose.views) {
            renderView(view);
        }
    }

    frame.session.requestAnimationFrame(onXRFrame);
}

XR Development Platforms

Unity XR

Cross-platform XR development:

XR Interaction Toolkit:

  • Standardized input handling
  • Locomotion systems
  • Grab/socket interactions
  • UI interaction

Supported Platforms:

  • Meta Quest (native, PC VR)
  • SteamVR (Index, Vive)
  • PlayStation VR2
  • Apple Vision Pro (visionOS)
  • ARKit/ARCore

Unreal Engine VR

Enterprise-grade XR:

Features:

  • OpenXR support
  • Motion controller support
  • VR Template projects
  • Stereo instancing
  • Forward renderer (better for VR)

See our Unreal Engine Guide for details.

Native Development

Platform-specific SDKs:

Meta Quest (Oculus SDK):

  • Native Android development
  • Best performance on Quest hardware
  • Access to all platform features

Apple Vision Pro (visionOS):

  • SwiftUI for spatial computing
  • RealityKit for 3D
  • ARKit for world understanding

SteamVR (OpenVR):

  • C++ SDK
  • Works with any SteamVR headset
  • Room-scale and seated configurations

Performance Optimization for XR

Frame Budget

Strict timing requirements:

At 90 Hz: 11.1ms per frame budget

Typical breakdown:
├── Game logic: 2-3ms
├── Physics: 1-2ms
├── Animation: 1ms
├── Rendering (CPU): 3-4ms
├── Rendering (GPU): 8-10ms
└── OS/Driver overhead: 1-2ms

Note: GPU renders previous frame while
CPU prepares next (pipelining)

Foveated Rendering

Reduce peripheral detail:

Foveation levels:
- Full resolution: Central 10-15°
- Medium: 15-45° from center
- Low: 45°+ periphery

Types:
- Fixed: Static regions (most compatible)
- Dynamic: Follows gaze (requires eye tracking)
- Application-based: Content-aware

Savings: 30-50% GPU time

Application SpaceWarp (ASW) / Reprojection

Frame synthesis when performance drops:

Normal: Render at 90 FPS, display at 90 FPS
ASW: Render at 45 FPS, synthesize to 90 FPS

How it works:
1. Detect missed frame deadline
2. Take previous frame
3. Apply motion vectors
4. Reproject to new head position
5. Display synthesized frame

Artifacts:
- Edge shimmer
- Disocclusion errors
- Latency perception

Optimization Techniques

Rendering:

  • Single-pass stereo rendering
  • Aggressive LOD
  • Occlusion culling
  • Baked lighting where possible
  • Forward rendering (simpler, faster)

Assets:

  • Mobile-quality textures
  • Simplified materials
  • Instance static meshes
  • Compress and stream textures

Code:

  • Object pooling
  • Avoid GC allocations
  • Multithreaded physics
  • Job system for parallel work

UX Design for XR

Spatial UI Design

UI in 3D space:

Placement:
- Comfortable viewing: 1-2m distance
- Avoid extremes of vision
- World-locked vs head-locked
- Hand-anchored for tools

Sizing:
- Minimum text: 1.5° of visual angle
- Comfortable text: 2-3°
- Touch targets: 2cm minimum

Depth:
- Avoid UI at arm's length (focus conflict)
- Match UI depth to content
- Use subtle depth cues

Comfort Guidelines

Physical Comfort:

  • Session length recommendations
  • Break reminders
  • Adjust for IPD (interpupillary distance)
  • Standing vs seated options

Visual Comfort:

  • Avoid vergence-accommodation conflict
  • Maintain stable frame rate
  • Limit bright flashing
  • Provide reference points

Motion Comfort:

  • Offer locomotion options
  • Gradual exposure for new users
  • User-controlled speed
  • Comfort vignettes

Accessibility

Inclusive XR design:

  • Seated play mode: For mobility limitations
  • One-handed mode: Controller remapping
  • Subtitles: Spatial audio visualization
  • Colorblind modes: Visual indicators
  • Eye tracking alternatives: Head gaze fallback
  • Adjustable text size: Readability options

Mixed Reality Features

Passthrough

Seeing the real world in VR:

Types:

  • Grayscale (older devices)
  • Color (Quest 3, Vision Pro)
  • High-resolution (Vision Pro)

Uses:

  • Room awareness
  • Mixed reality games
  • AR mode in VR headset
  • Safety boundaries

Spatial Anchors

Persistent placement in space:

Local Anchors:
- Saved to device
- Persist across sessions
- Limited to original location

Cloud Anchors:
- Shared across devices
- Multi-user experiences
- Azure Spatial Anchors, ARCore Cloud Anchors

World Anchors:
- GPS + visual positioning
- Outdoor AR experiences
- City-scale applications

Hand and Body Tracking

Natural interaction:

Hand Tracking Capabilities:
- 26 joints per hand
- Finger gestures
- Hand poses
- Pinch detection

Body Tracking:
- Full body (Quest 3 experimental)
- Upper body (common)
- Inverse kinematics for legs
- Social presence in VR

Development Workflow

Testing and Iteration

XR-specific challenges:

Device Testing:

  • Regular on-device testing essential
  • Simulator has limitations
  • Performance differs significantly
  • Comfort only testable in VR

Play Testing:

  • Recruit diverse testers
  • Track comfort metrics
  • Observe natural behaviors
  • Iterate on feedback

Tools and Debugging

In-VR Tools:

  • Performance HUD overlays
  • Debug visualization
  • Console access in VR
  • Screenshot/recording

External Tools:

  • OVR Metrics Tool (Quest)
  • RenderDoc (GPU debugging)
  • PIX (Windows)
  • Unity Profiler

Recent Updates (2025)

Hardware Developments

  • Meta Quest 3: Leading standalone VR/MR headset with color passthrough and improved optics
  • Apple Vision Pro: Revolutionary spatial computing platform with unprecedented display quality
  • PlayStation VR2: Console VR reaches new performance heights with 4K HDR and adaptive triggers
  • Mixed Reality Mainstream: Color passthrough enabling practical MR experiences on consumer devices

Software & APIs

  • WebXR Maturity: Browser-based XR now production-ready with hand tracking and AR features
  • Unity 6 XR: Improved XR plugin architecture with better performance and easier multi-platform support
  • Unreal Engine 5.4: Enhanced VR template projects with Nanite and Lumen support for VR
  • ARCore Geospatial API: Outdoor AR with cm-level accuracy using Visual Positioning Service
  • AI-Powered Scene Understanding: Real-time semantic segmentation and object recognition
  • Neural Rendering: Gaussian splatting and NeRF for photorealistic environments
  • Accessibility Focus: Industry-wide emphasis on inclusive XR design
  • Foveated Rendering Standard: Eye-tracked foveation now common on premium headsets
  • Cross-Platform Tools: Easier development for multiple XR platforms simultaneously

Industry Adoption

  • Enterprise Training: VR training programs showing measurable ROI improvements
  • Healthcare Applications: Surgical planning, therapy, and rehabilitation expanding rapidly
  • Architecture & Design: Real-time collaborative spatial reviews becoming standard practice
  • Education: Immersive learning experiences proven effective for STEM subjects

Future Directions

Emerging Technologies

  • Neural interfaces: Direct brain input
  • Haptic suits: Full-body feedback
  • Varifocal displays: Natural focus depth
  • Wider FOV: 200°+ field of view
  • Higher resolution: 8K+ per eye
  • Lighter form factors: Glasses-like devices
  • Enterprise adoption accelerating
  • Consumer VR gaming maturing
  • AR glasses approaching viability
  • Spatial computing as new paradigm
  • AI integration for scene understanding