HydraIssues

Make Khronos hello_xr a first-class ExperienceNet experience
closed unclassified Project: hydra Parent: #388 Reporter: 14 Sep 2026 11:04

Description

DONE 2026-09-14. hello_xr is now first-class:

  • Repo: github.com/cederikdotcom/hydrahelloxr (public), pins Khronos OpenXR-SDK-Source release-1.1.63 via OPENXR_TAG. No forked code; build+version+publish only.
  • Release v1.0.0: CI builds linux-amd64 (Vulkan) + windows-amd64, published to releases.experiencenet.com/hydrahelloxr/production/ (all artifacts verified 200 on the mirror). HYDRARELEASE_PUBLISH_TOKEN seeded.
  • Library: experience hello-xr LIVE, build 1 registered via builds/notify (watch_name hydrahelloxr), stream_mode xr, exe_path C:\experiences\hello-xr\hello_xr.exe for Windows bodies (externally-managed convention, like steamvr-perftest).
  • msi1060: installed from the release at /opt/experiencenet/hydrahelloxr/hello_xr, WiVRn config auto-launches it; hand-built /var/tmp copy removed.
    Future OpenXR bumps: edit OPENXR_TAG, tag vX.Y.Z, then builds/notify + production_build in the library.

UPDATE 2026-09-14: branded as HelloHydra XR, released v2.0.0.

  • Branding is a build-time patch (patches/0001-hydra-branding.patch) so upstream stays pinned: OpenXR application name "HelloHydra XR", binary hellohydra_xr, cube faces in the experiencenet.com palette, and the Hydra mark drawn in front of the viewer.
  • brand/hydra_brand.h is generated by brand/make_brand_header.py from the site's own mark.png. It converts the palette sRGB -> linear (hello_xr renders into an sRGB swapchain, so skipping this washes the colours out) and turns the mark into a 34x35 voxel grid, 258 cells, drawn with the cubes hello_xr already renders. No texture support needed for a vertex-coloured pipeline.
  • Library experience hello-xr now at production build 2, label "HelloHydra XR", exe_path C:\experiences\hello-xr\hellohydra_xr.exe. Slug kept as an identifier used by install paths.
  • Deployed on msi1060 (/opt/experiencenet/hellohydra_xr/hellohydra_xr) and chunky (C:\experiences\hello-xr\hellohydra_xr.exe), both from the release, stale binaries removed.
  • Confirmed in a Quest 2 over the WiVRn pyrowave stream.
  • CI trap fixed: git -C dir apply ../patches/*.patch fails because the shell expands the glob in the repo root where that path does not exist. Expand in the repo root and pass absolute paths.

SLUG RENAMED 2026-09-14: the library experience is now hellohydra-xr (was hello-xr); the old entry was deleted so only one remains. The slug also determines hydrabody's install directory, so chunky moved to C:\experiences\hellohydra-xr\hellohydra_xr.exe. Verified that chunky's district-filtered live query returns the renamed entry. Note the library has no rename endpoint: create the new experience, re-notify the build (watch_name matches both during the overlap), promote, then delete the old one.

Sub-issues (2)

open #730 hello_xr exits immediately when launched without a terminal
done #721 Library blanks build_url when exe_path is set, so bodies cannot auto-install