Phase 0 of the hydragon MVP (#615). Decide and measure. Nothing else starts until this closes.
UPDATED 2026-09-01
The build machine question is answered: fluffy-dumpling-87. It is the only machine we own that can build Unreal today: 1013.8 GB free, 31.7 GB RAM, RTX 5070 Ti, UE 5.7, Visual Studio 2022, Windows SDK, Perforce 2025.2, WDAC user mode off. chunky has almost none of that. The catch is that fluffy is a PRODUCTION venue body (district bxl1, venue gallo-romeins-museum), so builds run off-hours in an agreed window, with a check that no session is live. Buy a dedicated build machine in parallel; do not wait for it to start.
Unreal packaging already exists: hydraunrealengine. It wraps RunUAT with preflight checks and has a Perforce wrapper built in. Install the binary on fluffy from the release server. The task is no longer "write a packager", it is "run the packager we have".
Two things to re-check on fluffy: it reports three video controllers with two Virtual Display Driver entries, which is the #428 condition; and no Pico runtime was found under C:\Program Files*, so the assumption that fluffy runs Pico Business Streaming co-located must be re-verified before #626 relies on it.
Tasks
- Hand tracking spike. UPDATED 2026-08-31: mostly answered at the desk, and BLOCKED on hardware.
- Desk finding: ALVR 20.14.1 (the version on chunky) already sends the FULL 31 bone hand skeleton to SteamVR. Its OpenVR driver calls CreateSkeletonComponent on /input/skeleton/left and /right and pushes real joint data every SetTracking call. chunky's live session.json has hand_skeleton enabled and steamvr_input_2_0 true. It is NOT emulated controller poses only.
- What is still unproven: which ALVR device SteamVR binds to /user/hand/left, and whether xrLocateHandJointsEXT reports isActive true to an Unreal application. One small OpenXR probe settles it.
- BLOCKED on four things: there is no C++ toolchain on chunky (no Visual Studio, no MSVC, no Windows SDK, no dotnet) so the probe cannot be built; the ALVR driver is not registered in openvrpaths.vrpath today so a probe would attach to SteamVR with no headset; quest-head-36afcd must be online with its xr_client_hostname set, which needs a human wearing it; and the disk decision below comes first. Realistic: 3 to 5 working days with a person present, not "run the spike first".
- The Pico half cannot run at all. No Pico headset exists in the fleet, and Pico documents hand tracking over streaming only on the Pico 4 Ultra Enterprise. That is a purchase decision.
- ORIGINAL TEXT: Measure whether hand joint data reaches an Unreal app running on the body.
- Quest lane: ALVR plus SteamVR on chunky-turnip-23.
- Pico lane: Pico Business Streaming on fluffy-dumpling-87.
- Record for each lane: joint fidelity (full skeleton or emulated controller poses only), update rate, added latency.
- ALVR maps hands to emulated controllers, so full skeletal data on the Quest lane is unproven. If it does not arrive, that is a finding for #560 and #557. It is never a reason to add controllers.
- Build machine. MEASURED 2026-08-31, and it fails. chunky-turnip-23 has 113.6 GB free (44.8 on C:, 69.7 on D:) against a 500 GB need, 15.7 GB of RAM in one module, a MECHANICAL D: drive, Unreal 5.4.4 not 5.7, no Perforce client, no C++ toolchain, and no Epic account signed in. Space is held by D:\Cederik (Steam, 261.4 GB), C:\Users (185.5 GB), D:\Edorble (39.0 GB), D:\Executxr (38.9 GB). Somebody has to decide what gets deleted. This is the first task, and everything waits on it. Then add RAM (three free slots, 128 GB maximum), install the toolchain, and sign in to Epic interactively. Or decide to use a dedicated build machine and leave chunky as the XR test target.
- Pin the Unreal Engine version. chunky has 5.4.4 installed, using 35.9 GB. UE 5.7 is on fluffy for hydramark (#513). Installing 5.7 needs about 40 GB that does not exist today, so the engine choice and the disk decision are the SAME decision. Also confirm the Paragon Serath pack supports whatever you pick: the reconnaissance could not read the supported versions off Fab, so a human must open the listing signed in and check. If the pack is 4.27 only, a UE4 to UE5 conversion pass appears in Phase 2 and Phase 3 that nobody has costed.
- Design the gesture set. Four gestures or fewer. Aim and shoot covers both attack and node teleport, so the set needs aim and shoot, one ability, and one menu gesture. Decide how the game tells an attack shot from a teleport shot. The target decides it, not the gesture.
- Design the node layout. Node count, spacing, sightlines, cover at each node. Spacing and the 10 second cooldown work together: a node you cannot leave for 10 seconds needs enough to fight from.
- Pick how the cooldown reads. No screen HUD. Show it in the world (nodes dark until ready) and on the hand. Decide whether respawn resets the cooldown, and whether the one ability can break it. If the ability is an escape it defeats the cooldown, so pick the ability with this in mind.
- Decide the bot movement model. Do the bots use the node graph or walk freely? Free walking bots against a node hopping player is a different game from both sides hopping. Pick one and write down why.
- Set the frame budget. 72 to 90 frames for each eye, plus encoder headroom.
Done when
Every item above has a written answer in this issue, and the hand tracking spike has numbers, not opinions.