Skip to content

RememVR-2024-SolutionChallenge/vr-viewer

Repository files navigation

🔎 Overview

This repository implements VR viewer designed for real-time NeRF rendering in mobile devices. Powered by WebXR, Three.js and MobileNeRF, we provide a lightweight web-view integrated with Flutter app. It eliminates the need for high-end hardware, making it possible to run 3D models smoothly on standard mobile devices - Achieves 60 fps on the Galaxy S22.

🤖 Features

We support viewing the generated 3D models in two modes: VR Mode and Web Mode.

👐 Care giver 👐 Care recipient
Demo Preview Dataset Preview
✔️ Dynamic position & scale editing and saving capabilities
✔️ Simple interactions through VR devices
✔️ Editing support on mobile devices
✔️ Static scene viewer with pre-saved settings
✔️ Viewing support for both VR and mobile platforms
✔️ Support for forward-facing, unbounded, and indoor(⚠️) scene

We plan to support more features and interactions soon!🥳

🙍‍♂️ User Guide with VR Devices

Experience our VR viewer if you have a VR setup. Before launching the app, ensure your VR and mobile devices are connected.

😎 For Quest 2 Users:

  1. Connecting your Quest 2: Link your Quest2 with mobile device. Follow the instructions in-VR and in the Meta Quest mobile app to complete the setup process. Refer to the official guidance. Just ensuring a mirroring connection suffices for our service.

    ❗Note: Your VR device and mobile device MUST BE connected with same network.

  2. Accessing the VR Viewer: Once connected, the Start VR button on our web-based VR viewer becomes automatically accessible. Click it, and enjoy your VR journey!

    • Access several pre-trained example models here.
    • This VR viewer connects with Flutter APK. If you have your own trained scene and avatar, you can see your own model with this viewer. Learn how to create your own model here.
    • We've tested with Oculus Quest 2 and Galaxy S22. We will support more VR devices soon.

✅ TODO

  • Add Avatar interactions using mixamo.
  • Add trackball interactions for manipulating scene and avatar using ray casting.
  • Support for more VR and mobile devices.

🔖 References

  • MobileNeRF + WebXR [Link] [Apache 2.0]
  • Google Draco [Link] [Apache 2.0]
  • three.js example [Link] [MIT]
  • WebXR Device API [Link] [Google Codelab]