Files

Hermes Quest

Status: quarantined experiment. This project is not shipped, supported, or exercised by normal Hermes-Relay CI. It is preserved as a standalone prototype for a possible future spatial terminal and voice client.

Spatial SDK Quest prototype for the Hermes relay terminal cockpit. Its Quest-specific transport and UI modules live beside it so the production Android build remains independent.

Build

From the repo root:

$env:ANDROID_HOME='C:\Users\Bailey\AppData\Local\Android\Sdk'
.\gradlew.bat -p experiments\quest assembleDebug --console=plain

APK:

experiments\quest\build\outputs\apk\debug\quest-debug.apk

Install on a connected Quest:

adb install -r experiments\quest\build\outputs\apk\debug\quest-debug.apk
adb shell monkey -p com.axiomlabs.hermesquest.debug 1

Realtime Voice Harness

The Quest panel includes a compact voice test harness beside the terminal cockpit. Pair with the relay first, then use the voice panel to connect a realtime session, capture a short mic sample, stream it to the relay, and play assistant PCM deltas as they arrive.

Run the relay realtime backend from the repo root before sideloading:

.\scripts\voice-relay-dev.ps1 -Provider grok

# Local provider/no-quota route smoke:
.\scripts\voice-relay-dev.ps1 -Stub

The Quest client uses the relay-owned realtime route:

GET  /voice/realtime/config
POST /voice/realtime/session
GET  /voice/realtime/{session_id}

The provider stays server-side. Quest only owns mic PCM capture, relay session/WebSocket state, streamed assistant PCM playback, a compact event log, and MorphingSphere listening/speaking hooks.

Tooling

Use Android Studio for Kotlin, Compose, Gradle, logcat, and direct install/run. Open experiments/quest/ as its own Gradle project. The production repo root does not include this experiment in its project graph.

Use Meta Quest Developer Hub for headset setup, ADB pairing, install/uninstall, casting, logcat, and quick device state checks.

Use Meta Spatial Editor when editing/exporting .metaspatial/.glxf scenes or using Spatial SDK hot reload:

$env:ANDROID_HOME='C:\Users\Bailey\AppData\Local\Android\Sdk'
.\gradlew.bat -p experiments\quest export -Pquest.exportScenes=true --console=plain
.\gradlew.bat -p experiments\quest hotReload -Pquest.exportScenes=true --console=plain

Normal assembleDebug does not require Meta Spatial Editor. The app creates a programmatic spatial terminal panel when exported GLXF scene assets are absent.

Preview Boundaries

Desktop preview is useful for Compose UI iteration and Meta Spatial Editor scene layout. It is not a faithful Quest 3 passthrough, headset-camera, controller-ray, hand-tracking, or Bluetooth-keyboard validation environment.

Use the headset for final checks:

  • Passthrough and environment depth
  • QR scanning via Quest camera
  • Controller focus and system keyboard
  • Bluetooth keyboard input
  • Panel grab/resize comfort
  • Relay pairing and tmux persistence