An interactive WebXR (AR) application designed for Meta Quest 3 and compatible AR devices. This project combines real-time AI object detection with augmented reality to bridge the gap between the physical and digital worlds.
- AI Object Detection: Uses TensorFlow.js and the COCO-SSD model to identify real-world objects (people, chairs, laptops, phones, etc.) directly in your AR view.
- Surface Hit-Test: Detects surfaces and allows you to place virtual 3D objects (Torus Knots) in your physical space.
- Plane Detection: Automatically identifies floors, walls, and tables, highlighting them with semi-transparent overlays.
- Modern UI: A premium user interface with glassmorphism effects, a welcome screen, and real-time status updates.
- WebXR Integration: Built on top of the WebXR Device API for high-performance AR experiences in the browser.
- Three.js: For 3D rendering and XR session management.
- TensorFlow.js: For running machine learning models in the browser.
- COCO-SSD Model: Pre-trained object detection model.
- WebXR API: For accessing AR features on compatible headsets and mobile devices.
- A WebXR-compatible browser (e.g., Meta Quest Browser, Google Chrome on Android).
- A device with AR capabilities (Meta Quest 3, Meta Quest Pro, or ARCore-compatible Android devices).
- HTTPS connection (required for WebXR and camera access).
- Clone the repository:
git clone https://github.com/bciric1/ARVR.git
- Serve the directory using a local HTTPS server. You can use
serveor any similar tool:Note: For Meta Quest, you may need to use a tool likenpx serve
ngrokto provide a secure HTTPS tunnel if you're not hosting on a remote server.
- Open the application in your VR/AR browser.
- Click "Započni iskustvo" (Start Experience) on the welcome screen.
- Wait for the AI model to load (status will update to "AI model ucitan!").
- Click "Enter AR".
- AI Detection: Look around; the AI will periodically scan and label objects it recognizes.
- Placing Objects: Aim the green ring cursor at a surface and pull the trigger (or click) to place a 3D object.
This project is open-source and available under the MIT License.