Skip to main content

Quest Apps

Introduction

Welcome to our comprehensive suite of demo applications designed for Meta's Quest headsets, leveraging the powerful OpenXR framework. These demos are crafted to showcase a progressive range of functionalities, each building upon the last, to demonstrate the capabilities of VR development on this cutting-edge platform.

The journey through these demo apps is structured to enhance understanding and skills in a logical and incremental manner. Starting with the most fundamental concepts and moving towards more complex implementations, each app serves as a stepping stone to mastering VR development on the Quest.

The first two applications in this series, NativeApplication and VRNativeApplication, serve primarily as template applications. They are foundational but require additional development effort to become fully operational. These initial apps are crucial for developers who are keen on gaining a deep understanding of the basic building blocks of OpenXR and the initial setup required for VR applications on the Quest platform.

However, starting with the third demo app, Renderer, each subsequent application is fully functional on its own. From this point onwards, the demos are designed to not only illustrate specific functionalities but also to provide a hands-on, ready-to-execute experience. Developers interested in diving straight into functional demos, bypassing the foundational OpenXR and rendering topics covered in the first two apps, may choose to start here.

Each app not only adds more complexity but also introduces new features and capabilities, making it a rewarding experience to explore them sequentially. Whether you are a beginner looking to understand the basics or an advanced developer interested in specific functionalities like hand tracking, audio processing, or complex interaction models, there is value in exploring each demo app in the order presented.

We encourage developers to engage with each demo app, starting from where it makes sense based on their interest and expertise level. By progressing through these demos, developers will gain a comprehensive understanding of VR development on the Quest, leveraging the full potential of OpenXR to create immersive and interactive VR experiences.

App Catalog

App NameKey FeaturesUse CaseScreenshot
NativeApplicationOpenXR-ready, Basic TemplateStarting point for VR development
VRNativeApplicationIntegrated OpenXR Session, OpenGL ES Rendering EngineBasic VR app development
RendererCoordinate System Visualization, Custom OpenGL ES Engine IntegrationSpatial orientation in VR
VRNativeApplicationAdvancedController and Hand Tracking, Passthrough, 3D Mesh LoadingAdvanced VR app development
Finger DistanceDistance Measurement and Visualization, Simple 3D Object VisualizationEducational tool for hand interaction
Hand GesturesSupported Hand Gestures, Visualization Mode AlterationInteractive VR experiences
Panorama Viewer360-Degree Image Utilization, Asset IntroductionTourism and Real Estate VR applications
MicrophoneMicrophone Access, Android Permission Handling, Real-Time Audio ProcessingAudio-based VR interactions
ThereminTheremin Simulation, Real-Time Sound Generation, Passthrough ActivationMusical VR experiences
Solar SystemRich VR Experience, Scene Description with X3D, Educational Audio PlaybackEducational VR experiences
GraphsSelectable 3D graphs, adjustable rendering modes, Gradient Descent visualization3D graph exploration and algorithms
External CameraSupports external USB cameras, customizable settings, real-time displayCustom Computer Vision experimentation

Debugging Native Quest Apps

Debugging native apps on Android platforms, including Quest, can present some challenges. To facilitate this process, you can utilize the Ocean log mechanism for basic debugging and verification tasks. To access the logs from a connected Quest device, use logcat by entering the following command for unfiltered logs:

adb logcat

If the log output is overwhelming, you can filter it to show only Ocean-specific logs to make it more manageable by using:

adb logcat -s Ocean

Note that Ocean's debug logs are only available when you run an Ocean app in debug mode. Please refer to Ocean's build instructions to learn how to build debug or release binaries.

For debugging crashes that might involve issues between the Java and native components, it's useful to examine the broader Android runtime logs:

adb logcat -s AndroidRuntime

This approach can provide valuable insights into the underlying issues. Happy debugging!