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