---
id: hand-driven-vr-locomotion-and-mounts
title: Hand-driven VR locomotion leaves vehicles and mounts open
version: 1
published: '2026-10-27'
updated: '2026-10-27'
author: Hiina
produced-by: Claude deep-research run with citation checking
model: claude-opus-5-5
sources-through: '2026-10-26'
status: current
takeaway: Gorilla Tag's contact-anchored integration rule ports to chairs, wheels,
  cranks and mounts, which shipped VR has left nearly untouched; avoid artificial
  yaw and start with a cheap office-chair prototype.
topics:
- vr
- vr-locomotion
- game-design
---

Index of everything on this site: https://ai.hiina.space/index.md

# Hand-driven VR locomotion leaves vehicles and mounts open

- Author: Hiina (hiina@hiina.space)
- Produced by: Claude deep-research run with citation checking
- Version: 1 · published 2026-10-27 · updated 2026-10-27 · status: current
- Canonical: https://ai.hiina.space/reports/hand-driven-vr-locomotion-and-mounts.md (this version as one file: https://ai.hiina.space/reports/hand-driven-vr-locomotion-and-mounts/v1.md)
- Takeaway: Gorilla Tag's contact-anchored integration rule ports to chairs, wheels, cranks and mounts, which shipped VR has left nearly untouched; avoid artificial yaw and start with a cheap office-chair prototype.
- Topics: [vr](https://ai.hiina.space/topics/vr.md), vr-locomotion, game-design
- Model: claude-opus-5-5
- Sources through: 2026-10-26

Gorilla Tag's movement is one member of a larger family. A contact point stays fixed in the world, the body integrates the inverse of the hand's motion, and the body keeps its momentum once contact ends. Climbing, Lone Echo's zero-G push-off, Meta's walking-stick locomotor, world-drag, kayak paddling and push-rim wheelchairs all share that core. A second family, arm-swing impulses, flapping, palm thrusters and grapples, works in open air with no surface.

This report catalogues both families, looks for the gaps that shipped VR has left, and proposes six prototypes for a builder who already has stationary-bike, foot-tracker rollerblade and mech-cockpit locomotion experiments in Godot.

## 1. Summary

Shipped VR has worked the standing variants hard: there are dozens of Gorilla Tag derivatives, and Meta delisted more than 60 clones in a single hour in 2025. The seated, vehicle and mount variants are thin. In searches we admit were shallow, **we found no polished goofy VR wheelchair or office-chair racer, no hand-cranked vehicle, no physics-simulated monowheel, and no VR mount whose reins have slack, which acts on its own, or which learns.**

The comfort evidence is small-sample, and we found no study of Gorilla Tag-style hand walking at all. The pattern it does show is that velocity the player controls and can stop quickly is comfortable, while artificial yaw is what makes people sick. That makes a real swivel chair an asset and smooth differential turning a hazard.

Six prototypes follow, cheapest first. Each one reuses the contact-anchored core or the existing bike, rollerblade and mech-cockpit work:

1. Office-chair push-off.
2. A push-rim wheelchair derby.
3. A hand-cranked handcar.
4. A "gerbiling" monowheel.
5. A reined mount that learns.
6. Co-op tether and carry.

## 2. Seventeen mechanics fall into two families: anchored and open-air

The table is the catalogue. "Anchored" means a world-fixed contact point drives the body; "open-air" means a gesture or pose produces force without a surface. Dates are release dates unless noted. Sources marked (secondary) are press, wiki or summary pages.

| Mechanic | Input | Examples (dates) | Comfort notes |
|---|---|---|---|
| Contact-anchored hand walking (anchored) | Hand spheres hit surfaces, no buttons | Gorilla Tag (early access Feb 2021, Quest Store 15 Dec 2022, PSVR2 8 Nov 2024) ([Wikipedia, secondary](https://en.wikipedia.org/wiki/Gorilla_Tag)); Yeeps adds glide/grapple (Quest Store 18 Jul 2024) ([Road to VR, secondary](https://roadtovr.com/yeeps-hide-and-seek-gorilla-tag-evolution/)); Nock 2022, Space Ball 2023, Outta Hand 2023, Underdogs (mech) 2024, Stilt (spring arms) 2024 ([Road to VR, secondary](https://www.roadtovr.com/new-category-of-vr-game-arm-based-locomotion/)) | We found no comfort study. The developer stresses a "connection with the world" ([Meta dev blog](https://developers.meta.com/horizon/blog/gorilla-tag/)) |
| Climbing (anchored) | Grip near a hold; body moves opposite hand | The Climb (Crytek; Touch hands-on) ([Road to VR, secondary](https://roadtovr.com/hands-on-the-climb-with-oculus-touch-reaches-new-heights/)); Godot XR Tools climb provider | Drops and launches may sicken some; arms tire (same hands-on) |
| Zero-G grab-and-push plus thrusters (anchored) | Grab surfaces, push off; aimed thrusters | Lone Echo (Ready At Dawn; demo hands-on 7 Oct 2016) ([Road to VR, secondary](https://roadtovr.com/hands-on-lone-echo-nails-zero-gravity-in-vr-with-oculus-touch/)) | Velocity ramps "almost instantaneously"; no artificial rotation |
| World-drag (anchored) | Two hands drag/rotate the world | PushPull study, 2023 ([arXiv](https://arxiv.org/pdf/2306.14484)); Google Earth VR, Tilt Brush | Fewer symptoms than smooth joystick, but SUS 66 vs about 75 for joystick |
| Pole / walking stick (anchored) | Stick tip pushed against floor plane | Meta Interaction SDK WalkingStick ([Meta docs](https://developers.meta.com/vr/documentation/unity/unity-isdk-locomotion-walkingstick/)); The Slopes, 19 May 2017 ([Steam](https://store.steampowered.com/app/620790/The_Slopes/)) | Momentum decays after release; no comfort data |
| Paddling (anchored in a fluid) | Stroke per side; uneven strokes turn | Phantom: Covert Ops (25 Jun 2020) ([Road to VR preview](https://roadtovr.com/phantom-covert-ops-preview-compelling-vr-stealth-comfort-smooth-turning/), [review](https://roadtovr.com/phantom-covert-ops-review-quest-rift/), secondary); Kayak VR: Mirage ([UploadVR, secondary](https://uploadvr.com/kayak-vr-mirage-playstation-vr2-review/)) | Smooth stroke-turning caused discomfort after about an hour; snap-turn option fixed it |
| Push-rim wheelchair (anchored on rim) | Grab each wheel, push, brake | Drag x Drive (non-VR, Switch 2, 14 Aug 2025) ([Nintendo](https://www.nintendo.com/whatsnew/ask-the-developer-vol-20-drag-x-drive-part-1/)); Wheelchair Basketball VR (itch.io, last devlog Jan 2020) ([itch.io](https://dagliadubi.itch.io/wheelchair-basketball-vr)) | Direct mode sickened some players, so a teleport hybrid was added ([devlog](https://itch.io/devlog/120819/indirect-wheelchair-locomotion.amp)); Drag x Drive reviews report arm strain ([Wikipedia, secondary](https://en.wikipedia.org/wiki/Drag_x_Drive)) |
| Office/swivel chair lean (body) | Backrest lean, body yaw | VRChairRacer, TU Darmstadt 2019 ([nweon, secondary](https://paper.nweon.com/?p=1897)); NaviChair, swivel chair ([Kitson 2017 via nweon, secondary](https://paper.nweon.com/6902)) | Joystick beat all leaning seats on comfort and precision in Kitson 2017 |
| Arm-swing impulse (open-air) | Trigger, swing arm back, release | Sprint Vector (Survios; hands-on 3 Mar 2017) ([Road to VR, secondary](https://roadtovr.com/hands-on-survios-sprint-vector-fluid-locomotion-system/)); XR Tools jog/sprint | Reviewer raced "with no nausea" but warned that tolerance varies |
| Flapping / gliding (open-air) | Arm flaps, arm roll to turn | Aquila Bird Flight Simulator (early access 18 Aug 2017, release 27 Dec 2020; flapping is an optional workout) ([Steam](https://store.steampowered.com/app/583530)); Flappy Arms ([VR Grid, secondary](https://www.thevrgrid.com/flappy-arms)); XR Tools glide | Flappy Arms: tiring, 15 to 20 minute sessions, flap mapping unclear |
| Palm thrusters (open-air) | Palm direction = thrust, trigger fires | Marvel's Iron Man VR (PSVR, 3 Jul 2020) ([Road to VR, secondary](https://www.roadtovr.com/iron-man-vr-psvr-review-first-great-superhero-game/)) | Snap turn and blinders on by default; invisible "bumpers" ([PlayStation Blog](https://blog.playstation.com/?p=213674)); Road to VR comfort score 8/10 |
| Grapple / web tether (open-air) | Aim hand, fire line, pull/swing | Swarm (Greensky; 8 April 2020, year not re-verified) ([Intel](https://www.intel.com/content/www/us/en/developer/articles/technical/greensky-gaming-hits-vr-sweet-spot.html)); Spider-Man: Far From Home VR ([UploadVR, secondary](https://www.uploadvr.com/spider-man-far-from-home-vr-review/)); Windlands | Swarm avoids forced hard stops and uses distant scenery and a horizon |
| Lean vehicles (body) | Torso lean or balance board | MonoRaceVR (store page says no longer available; not re-verified) ([Steam](https://store.steampowered.com/app/1722290)); LeanOn, ISMAR 2023 ([XJTLU](https://scholar.xjtlu.edu.cn:443/en/publications/leanon-simulating-balance-vehicle-locomotion-in-virtual-reality)) | LeanOn: better feedback experience than joystick, similar sickness (N=24) |
| Reined mounts (anchored to reins) | Grips hold reins, pull to turn, pump arms for speed | Rival Stars Horse Racing: VR Edition (Pikpok; released 17 Apr 2025 on Quest 2/3 and SteamVR per Pikpok's launch post; Vision Pro announced, not verified) ([Pikpok FAQ](https://faq.pikpok.com/hc/en-nz/articles/46118431075609-Rival-Stars-Horse-Racing-VR-Edition-FAQ-Controls-Help)); DovaVR Skyrim mod ([Nexus](https://www.nexusmods.com/skyrimspecialedition/mods/154803)) | Reviewer reported "small bouts of nausea" in races ([UploadVR, secondary](https://uploadvr.com/rival-stars-horse-racing-vr-edition-impressions)) |
| Flight mounts (mixed) | Arms as wings, wand, or physical saddle | Dragons Flight VR ([itch.io](https://morderkaine.itch.io/dragonsflightvr)); DragonRideVR (2020) ([Steam](https://store.steampowered.com/app/1197620/DragonRideVR/)); Dreamscape Dragons Flight Academy, location-based ([Time Out, secondary](https://www.timeout.com/los-angeles/things-to-do/dreamworks-dragons-flight-academy)); Birdly ([Road to VR, secondary](https://roadtovr.com/?p=162571)) (none of these was re-verified) | Indie page warns of sickness; a commenter said a view-tilt mode helped |
| Foot and pedal trackers (body) | Step, slide, pedal, foot pressure | OpenVR-WalkInPlace ([GitHub](https://github.com/flypigy/openvr-walkinplace)); Cybershoes (shut down about Apr 2025) ([Road to VR, secondary](https://www.roadtovr.com/vrs-quirkiest-locomotion-device-cybershoes-shuts-down/)); VirZOOM bike (own hardware retired 23 Jun 2020) ([VR Fitness Insider, secondary](https://www.vrfitnessinsider.com/virzoom-retires-vzfit-hardware-to-focus-exclusively-on-software-development-why-this-is-testament-to-the-growth-of-vr/)); Glide-in-Place insoles (preprint Apr 2026) ([arXiv](https://arxiv.org/pdf/2604.10237)) | Cycling: handlebar steering least sickening, airflow the best countermeasure ([nweon, secondary](https://paper.nweon.com/12237)) |
| Co-op carry and group travel (social) | Seats on avatars, leader moves group | VRChat avatar stations and pickup prefabs ([VRChat docs](https://creators.vrchat.com/worlds/components/vrc_station)); group navigation, IEEE TVCG May 2020 ([Uni Weimar](https://www.uni-weimar.de/de/medien/professuren/medieninformatik/vr/research/multi-user-virtual-reality/getting-there-together/)); non-VR PEAK (2025), Chained Together | Group navigation lowered task load; we found no VR postmortem on physically coupled players |

## 3. Gorilla Tag's core is a contact anchor plus a body-velocity history

The open-source GorillaLocomotion repo (MIT, Player.cs and Surface.cs) is the primary source ([GitHub](https://github.com/Another-Axiom/GorillaLocomotion)). Each physics frame, the body collider is rotated to head yaw. Each hand then sphere-casts from its last position to its tracked position, with a small gravity term (`Vector3.down * 2 * 9.8 * dt * dt`). On contact, the rigidbody's velocity is zeroed and the hand is held at the contact point, so the real hand's motion becomes a correction that moves the body the opposite way. With both hands touching, the two corrections are averaged; otherwise they add. The head is then swept along the combined movement and clipped on hit.

The launch is often misdescribed. `StoreVelocities` keeps a rolling history of the **body's** per-frame displacement over dt, not the hand's velocity. **While any hand is touching** and that average exceeds `velocityLimit`, the rigidbody velocity is set every frame to `jumpMultiplier * average` (or to `average.normalized * maxJumpSpeed` past the cap), and the body simply carries that velocity once contact ends ([raw Player.cs](https://raw.githubusercontent.com/Another-Axiom/GorillaLocomotion/master/Player.cs)). A hand un-sticks once it is more than 1 m from its anchor and a head-to-hand cast is clear. The hard-coded values are maxArmLength 1.5 m, sphere radius 0.05, slide factor 0.03 with two hands (0.001 with one hand and no Surface component), precision 0.995, and a ×0.66 retry radius. Per-surface slip comes from `Surface.slipPercentage`. The four tunables that define feel (`velocityHistorySize`, `velocityLimit`, `jumpMultiplier`, `maxJumpSpeed`) have **no defaults in the source**. They are set in the Unity inspector, so you tune them yourself.

The mechanic matters commercially. Gorilla Tag passed about $100M in revenue by June 2024 ([Wikipedia, secondary](https://en.wikipedia.org/wiki/Gorilla_Tag)), and UploadVR reported about 1M daily and 3M monthly players in 2025 ([UploadVR, secondary](https://www.uploadvr.com/animal-company-shoots-past-gorilla-tag-to-become-top-earning-game-on-quest/)). SideQuest stopped taking clones in 2022, and QuestStoreDB data relayed by UploadVR show 65+ clones delisted in about an hour on 30 Sep 2025 and 64 more on 9 Oct 2025 ([UploadVR, secondary](https://uploadvr.com/gorilla-tag-clones-mass-delisting-meta-horizon-store)). My inference is that the standing hands-as-legs design space is crowded and its storefront is hostile to near-copies, while the same integration code applied to a different body (a chair, a wheel, a saddle) is not.

### Where it sits in the taxonomies

None of the major taxonomies has a class for "propel yourself by pushing a surface or vehicle with your hands". Boletsis splits motion-based, room-scale, controller-based and teleport ([MDPI](https://www.mdpi.com/2414-4088/1/4/24)). Locomotion Vault codes 109 techniques and records a steady decline in new "Grab" inventions ([Birmingham PDF](https://research.birmingham.ac.uk/files/116774658/CHI_2021_Locomotion_VR.pdf)). Gorilla Tag sits awkwardly between "motion-based" and Vault's "Movement"/"Grab". That placement is my inference; neither source names it.

## 4. Seated vehicles and thinking mounts are where shipped VR thins out

These gaps rest on searches that mostly returned bare link lists, so read every "we found no" as "a few days of searching did not surface one".

### Goofy wheelchair and office-chair racing

The Switch title that prompted the question is almost certainly Drag x Drive. Our inference is that it is the Switch 2 wheelchair-basketball game, not a racer and not VR: each Joy-Con 2 works as a mouse driving one wheel ([Nintendo](https://www.nintendo.com/whatsnew/ask-the-developer-vol-20-drag-x-drive-part-1/)). In VR, we found only itch.io prototypes. Wheelchair Basketball VR lets you "grab each wheel individually, push it in either direction or brake", but its developers say they cannot currently work on it ([itch.io](https://dagliadubi.itch.io/wheelchair-basketball-vr)). Wheely Stealy is a mall-heist proof of concept with a motion-sickness warning; its page was not re-verified ([itch.io](https://alden-burgess.itch.io/wheely-stealy)). Research systems simulate real chairs: Genova et al. put a real wheelchair on a CAVE motion platform and named the lack of force feedback as the main limitation ([Springer](https://link.springer.com/article/10.1007/s10055-021-00547-w)).

For office chairs, Need for Seat is a non-VR office-chair kart racer. The two accounts we found reconcile: it is a playable pay-what-you-want itch.io prototype (0.2.1 in Oct 2025, the devlog reports 15,000+ downloads) with a Steam page and playtest sign-ups but no release date and no VR mode found ([itch.io devlog](https://dead-leg-production.itch.io/need-for-seat/devlog/972827/cooming-soon-on-steam-big-update); [Insider Gaming, secondary](https://insider-gaming.com/need-for-seat-game/)). Neither source was re-fetched in the verification pass. VRChairRacer steers a cart by backrest lean, not hands. **We found no VR game in which you push off desks and walls from a rolling chair**, and no arcade VR wheelchair racer.

### Responsive AI mounts

The shipped rein pattern is grip-to-hold and pull-to-turn: Rival Stars' horse "will not turn if blocked", and energy comes from smooth up-down arm motion ([Pikpok FAQ](https://faq.pikpok.com/hc/en-nz/articles/46118431075609-Rival-Stars-Horse-Racing-VR-Edition-FAQ-Controls-Help)). DovaVR adds whip-to-accelerate in 3 to 6 stages, hand-above-chest to lock heading, and arms-down-and-back to slow ([Nexus](https://www.nexusmods.com/skyrimspecialedition/mods/154803)). **We found no VR mount with rein slack and tension, autonomy, trust, voice commands or learning.**

The best mount minds are all non-VR. Agro steers around obstacles and stops at drops too big to jump ([Team Ico wiki, secondary](https://teamico.fandom.com/wiki/Agro)). Trico picks "points of interest" by priority ([GameAnim, secondary](https://www.gameanim.com/?p=15474)). Breath of the Wild has a hidden 0-to-100 bond that never decreases, rises +3 for soothing after a gallop, +5 for soothing after a stray, +10 per apple, and pays out as obedience and road-following ([Zelda Dungeon wiki, secondary](<https://www.zeldadungeon.net/wiki/Horse_(Breath_of_the_Wild)>)). RDR2 has four bond levels that improve response ([GameSpot, secondary](https://www.gamespot.com/articles/how-red-dead-redemption-2s-horses-level-up/1100-6462200/)). The best-known RDR2 VR mod did not support motion controllers in the article we found. That article is undated, and its "early access" framing is our inference ([VRScout, secondary](https://vrscout.com/news/play-red-dead-redemption-2-in-vr)). So RDR2's horse has never been ridden with tracked hands, as far as we can tell. Dragon titles treat the dragon as a vehicle skin: arms-as-wings or a wand.

On the research side, Flemisch's H-Metaphor proposes a "well-trained horse" as the model for shared human-automation control, a design point between manual control and full automation ([DLR 2005](https://elib.dlr.de/21258); [DLR 2007](https://elib.dlr.de/51859/)). That framing supports the idea; our research did not confirm any finer-grained mode vocabulary from it.

### Other open spaces

We found no VR handcar, handcycle or crank-driven vehicle, and no VR monowheel or unicycle that the player must balance with physics. MonoRaceVR is lean-only and apparently delisted. We found no shipped game where the hands become wheels, tentacles or other appendages on the Gorilla Tag core, no documented stroke-to-thrust swim model, and no VR co-op game with networked physical coupling, such as a three-legged race or piggyback. The physics tether co-op hits (PEAK at about 10M copies, Chained Together) are flat-screen ([Co-Optimus, secondary](https://www.co-optimus.com/blog/article-poster/3381/five-dollars-one-mountain-and-a-masterclass-in-co-op.html); [80.lv, secondary](https://80.lv/articles/unreal-powered-co-op-game-that-chains-players-together/)). For foot-tracker kick skating like the existing rollerblade prototype, we found almost no prior art.

## 5. Prototypes 1 to 3: chair, wheelchair and handcar

All six prototypes assume Godot 4 with OpenXR. XR Tools ships climb, glide (with flap and arm-roll), grapple, jog and flight providers according to a changelog copy on a third-party mirror; check the official repo's VERSIONS.md before relying on specific versions. From background knowledge of the API rather than a cited source, a custom provider plugs in via XR Tools' movement-provider hook on its CharacterBody3D player body. Where a prototype needs a vehicle, parent `XROrigin3D` under the vehicle body. Controller transforms are then already vehicle-relative, which makes hand-on-rim and hand-on-crank maths trivial. The rule numbers (R1 to R10) refer to the design rules in section 7.

### 1. Office-chair push-off: the Gorilla Tag core on a plane, with real yaw for free

This is the cheapest because it is a near-direct port of Player.cs to a body constrained to the floor. The player sits on a real swivel chair. The virtual chair is a `CharacterBody3D` locked to XZ translation. Its yaw follows the hip tracker if present, otherwise head yaw, as Player.cs does for its collider. Translation comes only from hands pushing furniture. Each physics tick, sphere-cast each hand (r ≈ 0.05 m) from its last world position to its tracked world position against a "pushable" layer. On a hit, anchor the hand and move the chair by `(anchor − tracked_hand_world)` projected onto XZ, averaging when both hands touch. Push the chair's per-frame displacement over dt into a ring buffer. While touching and `|avg| > v_min`, set `v = min(k·|avg|, v_max)·avg.normalized()`, the same structure as Player.cs, with your own constants. After release, coast with caster friction, `v *= exp(−μ·dt)`. Give μ per floor material (carpet versus polished concrete), which is Surface.slipPercentage's job in Gorilla Tag. Bounce off walls with `v −= (1+e)(v·n)n`. Gripping a desk edge with a still hand zeroes velocity, the same as Player.cs zeroing velocity on contact, which gives a brake and a pivot.

The goofy layer: caster wobble that adds slow lateral drift, swappable chairs (racing chair, broken chair, exercise ball), knockable stacks of paper, and a coffee cup that spills past a lateral-acceleration threshold. The Drag x Drive team found players preferred crashing into cones to avoiding them and built a tackle mechanic around it ([Nintendo](https://www.nintendo.com/whatsnew/ask-the-developer-vol-20-drag-x-drive-part-1/)), so reward collisions.

The comfort rule is R2: **never generate artificial yaw.** A tangential push spins the real swivel chair because the player's body twists; the game only translates. My inference is that this is the main comfort advantage of the concept over a wheelchair. The first test is a desk corridor time trial with two caster-friction values. Measure whether players can stop on a line, and take a fast motion sickness (FMS) rating at about 10 minutes.

### 2. Push-rim wheelchair derby: wheel torque from hand tangential velocity, with a straightness assist

Model two drive wheels (radius r_w), a rim at radius r_rim, and track width W. Starting values of about 0.3 m, 0.27 m and 0.55 m are my assumption from typical chairs. A hand grabs a rim when it is within a few centimetres of the rim torus and grip is pressed. In chair-local coordinates, take the radial vector `r = p_hand − hub` projected into the wheel plane, the tangent `t = normalize(axle × r)`, and the hand angular rate `ω_hand = dot(v_hand, t) / |r|`. Couple wheel to hand through a grip spring with a torque cap rather than locking them: `ω_w += clamp(K·(ω_hand − ω_w), −a_max, a_max)·dt`. A still, gripping hand then brakes, and a slow hand cannot magically match a fast wheel. Released wheels coast with rolling resistance. Drive with differential kinematics: `v = r_w(ω_L + ω_R)/2` and `yaw_rate = r_w(ω_R − ω_L)/W`.

Then add Nintendo's fix. Raw input caused unintended turning because dominant hands push harder, so they added a "straightness correction" that aligns both wheels when both inputs point roughly forward, and spent another two to three weeks tuning straight motion and turning ([Nintendo](https://www.nintendo.com/whatsnew/ask-the-developer-vol-20-drag-x-drive-part-1/)). A workable version: when both ω_hand values share a sign and differ by less than about 25% (my starting guess), blend both toward their mean. Drag x Drive also used a rattling HD Rumble synced to wheel motion that made it feel "like you were actually turning a wheel". Approximate it with `trigger_haptic_pulse` at a pulse rate proportional to |ω_w| while gripped. Goofy layer: wheelies from leaning back (HMD or hip offset behind the calibrated seated pose) plus a hard push, half-pipes, rocket rims, and a tackle that knocks rivals sideways.

The comfort rule is R2 and R3. Differential turning is artificial yaw, and both precedents ran into it. Wheelchair Basketball VR added an "Indirect" teleport hybrid because direct mode sickened some players ([devlog](https://itch.io/devlog/120819/indirect-wheelchair-locomotion.amp)). Phantom's smooth stroke-turning caused discomfort until snap turning was added ([Road to VR review, secondary](https://roadtovr.com/phantom-covert-ops-review-quest-rift/)). Ship three yaw modes: smooth yaw capped near 30°/s, inside the 15 to 35°/s range that 10 of 12 pilot participants preferred; accumulated differential yaw released as 22.5° snaps ([Farmani & Teather](https://www.csit.carleton.ca/~rteather/pdfs/VR_2020_cybersickness.pdf)); and a teleport hybrid. Damp the view's wheelie pitch hard (R3). Plan for arm fatigue (R9): keep races to a few minutes with coasting stretches. The first test is a cone slalom with straightness correction on and off. Measure unintended drift (degrees of heading error per 10 m when the player intends to go straight) and compare FMS across the yaw modes.

### 3. Hand-cranked handcar: the bike pipeline driven by hands, with pseudo-haptic load

This reuses an existing stationary-bike pipeline: cadence feeds a flywheel, and the flywheel feeds speed. Only the input changes. A crank hub sits in the vehicle frame with handle radius r_c (about 0.17 m). While gripped, the target angle is `θ_h = atan2` of the hand projected onto the crank plane. The crank's own state (θ_c, ω_c) is driven by an angular spring with a torque cap, `τ_hand = clamp(k·wrap(θ_h − θ_c) − c·ω_c, ±τ_max)`, against an effective inertia: `I·ω̇_c = τ_hand − (τ_roll + τ_grade + τ_aero)/G`, where G is the gear ratio.

The trick is to **render the hand on the crank handle at θ_c, not at the tracked position.** The visible lag between the real and rendered hand becomes the cue for load. Rietzler et al. showed that visual hand offsets convey weight. "Good" ratings held to about 20 to 24 cm and acceptance to about 35 to 42 cm, and the authors advise staying below about 24 cm for sustained interaction ([Rietzler, Geiselhart, Gugenheimer, Rukzio, CHI 2018](https://www.uni-ulm.de/fileadmin/website_uni_ulm/iui.inst.100/institut/mitarbeiterbereiche/rietzler/Breaking_the_Tracking.pdf)). Applying those thresholds to cranking resistance is my extrapolation from a lifting study. If the offset exceeds about 24 cm, the hand slips off the handle, which doubles as a goofy failure. A handcar variant replaces the crank with a see-saw lever pumped by both hands, with the lever angle driving the crank through a fixed linkage. It is the obvious two-player upgrade, covered in prototype 6.

The comfort rule is R1 and R2: put it on rails. Speed is the player's own effort smoothed by the flywheel, so it never stops dead. Yaw comes only from gentle track curves at bounded rates. Speed-synced airflow is a cheap add (R6). My inference is that this is the most comfortable prototype on the list. The first test is a hill climb at two gear ratios. Ask players to rate perceived heaviness when only the visual offset differs, and log how often hands slip off.

## 6. Prototypes 4 to 6: monowheel, learning mount and co-op coupling

### 4. Gerbiling monowheel: a hanging pendulum with throttle consequences

The motivating critique, "less interesting if it's just hold joystick forward", rules out lean-to-go self-balancers like MonoRaceVR. A real monowheel has a better hook: the rider hangs inside the wheel, so motor torque swings the rider body in the opposite direction. Brake too hard and you swing forward; accelerate too hard and you loop. Riders call that loop "gerbiling" (background knowledge, not from a cited source). Build it as a `RigidBody3D` wheel and a `RigidBody3D` rider/seat joined at the axle by a `HingeJoint3D` with its angular motor enabled. The throttle is an analogue hand input: right-controller roll as a twist grip, or the trigger, setting the motor target velocity and max impulse. Rider lean from the hip tracker or HMD forward offset applies a corrective torque of about `m·g·Δx` on the rider body. Steering is simplified to `yaw_rate ∝ lean_roll × speed`, my bicycle-like approximation. The skill is modulating throttle and lean to keep the pendulum angle φ small; the goofy outcome is a loop.

The comfort rule is R3, and it bites hard. The camera must not follow φ. Parent `XROrigin3D` to a stabilised frame at the seat position, with roll locked, yaw following heading at a capped rate, and pitch set to `g_p · lowpass(φ)` with g_p between 0 and 0.3 (my starting range). Instability is shown by the rim and handlebars moving relative to a steady view, so the vehicle frame acts as the rest frame. This is the same "movement frame decoupled from head, no camera shake" decision as a mech-cockpit design, so that code transfers directly. When |φ| passes about 120°, fade out and show the loop in a third-person replay instead of first person (my inference). The first test compares g_p = 0 with g_p = 0.3 on a flat oval: can players hold a target speed without looping, and what does FMS show?

### 5. Reined mount that learns: spring-damper saddle, two rein tethers, a trust scalar and TAMER-style feedback

This is the most expensive prototype because animation is the long pole. The Godot motion-matching GDExtension has stable inertialisation and two-bone IK, but its motion-matching data path is not ready and it does not mention quadrupeds ([GitHub](https://github.com/Remi123/MotionMatching)). Learned controllers such as MANN and AMP remain research code. Build it in four layers.

The **body** is a `CharacterBody3D` with authored gait states (walk, trot, canter, gallop, stop, rear) blended by inertialisation, with per-gait acceleration limits. Those limits serve both comfort and believability.

**Rider coupling** is a pelvis anchor that follows the saddle bone through a spring-damper, `P̈ = k(S − P) − c(Ṗ − Ṡ)`. The viewpoint is not the saddle: it is a low-pass of the anchor, with vertical bob heavily attenuated, a one-pole filter cut below the stride frequency, and yaw following heading at a capped rate. Meta's guidance says to stabilise camera elevation, keep accelerations brief, and use cockpit-like occlusion to cut optic flow ([Meta](https://developers.meta.com/horizon/design/locomotion-comfort-usability/)). Rival Stars keeps the horse's head always in view as a focal point, according to its developer blog (not re-verified) ([Rival Stars blog](https://www.rivalstarshorseracing.com/post/rival-stars-horse-racing-vr-edition-developer-blog-designing-for-vr)). Applying that guidance to gallop bob as a low-passed anchor is my inference, not something any source tested.

**Cues** start with the reins, modelled as two tethers from the bit to each gripped hand, each with a rest length L_i, so that `T_i = k·max(0, |hand_i − bit_i| − L_i)`. Steering bias is `(T_R − T_L)`, a brake is both tensions above a threshold, and both slack hands the pace back to the mount. Render each rein as a sagging curve when slack and straight when taut, and offset the proxy hand by tension under the Rietzler cap. Heel taps are spikes in foot-tracker velocity toward the flank, which existing foot trackers already detect. Hip lean drives banking, and raising the free hand locks heading for archery, as in DovaVR.

The **mind** turns cues into intent (desired heading and a speed band). The mount then executes that intent with its own avoidance and refusals, Agro-style. A monotonic trust scalar, BotW-style, scales obedience latency, spook threshold and road-following. Learning follows TAMER, in which the agent models the human trainer's reinforcement and acts to maximise predicted feedback, and non-experts trained agents without a predefined reward ([Knox & Stone, K-CAP 2009](https://www.cs.utexas.edu/~pstone/Papers/bib2html/b2hd-KCAP09-knox.html)). Concretely, a slow hand on the neck collider is a stroke (+r), a fast contact is a slap (−r), and "good" by voice is +r. Spread each reward over recent (context, action) pairs with an eligibility window of about 1 to 2 s, update `H(s,a) += α·r·e(s,a)`, and choose actions by softmax over H plus an innate prior. That makes tricks like "rear on a double rein lift" shapeable. The delay window is my assumption; our research did not read TAMER's own credit-assignment method.

Voice uses Godot Whisper (MIT, whisper.cpp, realtime with VAD and quantised models, v2.0.3 updated 20 Sep 2026) ([Godot Store](https://store.godotengine.org/asset/appsinacup/godot-whisper-speech-to-text-stt-offline/)), using the tiny or base model, with fuzzy matching of transcripts against a vocabulary of five to ten words (walk, trot, whoa, back, here, up). The listing publishes no latency figures and says nothing about Android. For PC VR on Linux, the question is whether the addon ships Linux binaries, which needs checking. **Measure keyword-to-action latency before designing around voice.** The dragon version reuses every layer and adds glide physics. Background knowledge from the film rather than a cited source: Hiccup works Toothless's prosthetic tail fin with a foot pedal, so a foot-tracker "tail fin" that the dragon needs from its rider to turn is a literal How to Train Your Dragon co-control. That is an idea, not a cited precedent.

The comfort rule is R3 plus R2: gallop bob and heading changes are the hazards, and the Rival Stars reviewer still felt nausea despite a visible-head focal point and vignettes ([UploadVR, secondary](https://uploadvr.com/rival-stars-horse-racing-vr-edition-impressions)). Start new riders at walk and trot (R8). The first test is a gallop on an oval, comparing a camera on the raw saddle bone with the low-passed anchor, using FMS at about 10 minutes. Then run a 15-minute training session to see whether players can tell the mount has learned anything.

### 6. Co-op tether and carry: local authority, soft springs, saddle-relative ownership

Physical coupling across a network is where latency bites. Glenn Fiedler rejected deterministic lockstep for VR physics. Hiding up to 250 ms of latency would need about 25 simulation steps per render frame (about 22.5 at 90 Hz; the article rounds), and PhysX is not deterministic anyway ([gafferongames](https://gafferongames.com/post/networked_physics_in_virtual_reality/)). His working pattern has three parts: authority goes to the last interactor, a stronger "ownership" taken on grab wins by sequence number, and held objects leave physics updates and ride as hand-relative transforms inside the avatar state, with a 100 ms jitter buffer on hands. Adapted to the three cases (my adaptation; the sample covers only cubes):

A **three-legged race** keeps each player's locomotion locally authoritative, using either the Gorilla core or foot-tracker walking. The strap is a soft spring-damper between hip anchors that each client applies **only to its own body**, against the partner's jitter-buffered position. Because the spring is symmetric, forces balance on average, and low stiffness keeps 100+ ms of staleness from oscillating.

A **piggyback or human mount** is an ownership relation. The rider sends a saddle-relative transform, the carrier's body stays physics-authoritative on the carrier's client, and the rider's camera is parented locally to the carrier's remote transform through prototype 5's low-pass viewpoint. The rider steers the carrier with prototype 5's rein cues, shown to the carrier as haptic pulses and a visible tug.

An **office-chair conga** extends prototype 1 by letting a push off another player's chair transfer an impulse, arbitrated by the host using Fiedler's authority rule.

For held tethers (towing a chair-mate, carrying a stretcher), use the Rietzler proxy-hand offset instead of vibration. In a 20-pair study, vibrotactile overlap feedback slightly lowered agency (preprint, not re-verified) ([arXiv](https://arxiv.org/pdf/2403.08363)). Research on group navigation also found that a designed, consent-based formation (a navigator moves passengers) improved joint travel and lowered task load ([Weissker et al., TVCG 2020](https://www.uni-weimar.de/de/medien/professuren/medieninformatik/vr/research/multi-user-virtual-reality/getting-there-together/)). That argues for formations over raw force coupling when precision matters. If this lands in VRChat instead, stations offer "Immobilize For Vehicle" for moving seats, Udon can only teleport the local player, and avatars in moving cockpits are reported to slide out of their seats ([VRChat docs](https://creators.vrchat.com/worlds/components/vrc_station); [VRChat Ask](https://ask.vrchat.com/t/avatar-sliding-desync-inside-cockpit-during-vehicle-movement/47603)). The comfort rule is R3 for riders, whose view is driven by someone else's delayed motion. The first test runs two clients with 150 ms of artificial round-trip latency plus jitter, measuring strap oscillation amplitude and rider FMS.

## 7. Comfort evidence says yaw and stopping matter more than "using hands"

The evidence base is thin. Most studies have 15 to 30 participants, use one task and one session, and none tests Gorilla Tag-style hand walking, climbing or grapples. The cleanest small-N results all share one property: the player controls the velocity profile and can stop instantly. TriggerWalking (controller trigger "steps") raised SSQ by 17.6 versus about 143 for gamepad and keypad (omnibus p = 0.005; versus gamepad p = 0.009; versus keypad only marginal; N = 15) ([Sarupuri et al.](https://diglib.eg.org/bitstream/handle/10.2312/egve20171350/133-139.pdf)). PushPull world-drag had fewer symptoms than smooth joystick, but only in the smooth condition, and its usability was worse (SUS 66.0 versus about 75) ([arXiv](https://arxiv.org/pdf/2306.14484)). Head-lean flight left SSQ unchanged where gamepad raised it significantly, and 16 of 22 preferred it ([Adhikari et al. 2021](https://www.frontiersin.org/journals/virtual-reality/articles/10.3389/frvir.2021.730334/full)).

My reading, which these studies do not test directly, is that the benefit comes from control over velocity and easy stopping, not from embodiment as such. A counterexample supports that reading: the Cybershoes foot-slider produced the most sickness in one maze study (abstract only, not re-verified) ([DOAJ](https://doaj.org/article/58a3e3961d5747dfbfc69fedd9ea9e07)). Leaning is task-specific. It beat the gamepad for flying, yet a joystick beat every leaning seat, swivel chair included, for ground travel ([Kitson et al. 2017 via nweon, secondary](https://paper.nweon.com/6902)). So "leaning is better" is not a safe claim without naming the task.

| Rule | Bears on | Evidence | Strength |
|---|---|---|---|
| R1. Velocity is a direct, stoppable function of effort: impulse plus friction, a still hand or still pedals means a quick stop | Chair, rim, crank, climbing, Gorilla core | TriggerWalking, PushPull, Lone Echo's near-instant ramps | Weak to moderate; mechanism untested |
| R2. Treat artificial yaw as the main hazard. Real yaw (swivel chair) is free; otherwise snap at 22.5° or smooth at 15 to 35°/s | Wheelchair, paddling, mounts, monowheel | Snap rotation SSQ 29.8 vs 48.1 (N=28) ([Farmani & Teather](https://www.csit.carleton.ca/~rteather/pdfs/VR_2020_cybersickness.pdf)); Phantom and Wheelchair Basketball VR fixes | Moderate (small seated samples plus field reports) |
| R3. Stabilise viewpoint elevation and pitch; drive the camera from a low-passed anchor, not a bouncing bone | Mounts, monowheel, wheelies, piggyback | Meta guidance, qualitative ([Meta](https://developers.meta.com/horizon/design/locomotion-comfort-usability/)) | Weak; the mount application is inference |
| R4. Use a world- or vehicle-fixed frame (cockpit, chair frame, horse neck), not a head-fixed one | All vehicles and mounts | A head-fixed nose gave no benefit (N=32, preregistered) ([Springer](https://link.springer.com/article/10.1186/s41235-024-00593-3)); cockpits cut optic flow (Meta) | Moderate against a head-fixed frame; cockpit benefit unverified |
| R5. Prefer a physical-analogue steering input (handlebar, rim, reins) to gaze steering for ground vehicles | Bike, handcar, wheelchair, mounts | Handlebar steering gave the least sickness (N=18) ([nweon, secondary](https://paper.nweon.com/12237)) | Weak to moderate; secondary summary |
| R6. Blow air with a fan synced to speed | Bike, handcar, mounts | Airflow was the best countermeasure (N=24) (same, secondary) | Weak |
| R7. Make vignettes optional, not default-forced | All smooth motion | Helped in N=30 ([ScienceDaily, secondary](https://www.sciencedaily.com/releases/2016/06/160614121922.htm)); 11 of 15 got sicker under 3× yaw gain, the other 4 showed no effect ([Norouzi et al.](https://par.nsf.gov/servlets/purl/10105867)) | Mixed |
| R8. Ship at least two comfort modes and ramp the first sessions | Everything | A "telesick" subgroup got sicker with teleport ([Clifton & Palmisano](https://ro.uow.edu.au/sspapers/4617)); habituation is game-specific ([Wollongong](https://ro.uow.edu.au/articles/journal_contribution/Reductions_in_sickness_with_repeated_exposure_to_HMD-based_virtual_reality_appear_to_be_game-specific/27809478)) | Moderate |
| R9. Budget arm fatigue: keep hands low, allow coasting and gliding, keep sessions short | Rim, crank, flapping, climbing | Drag x Drive arm strain (secondary); Flappy Arms 15 to 20 minute sessions; Consumed Endurance metric ([Manitoba](https://hci.cs.umanitoba.ca/publications/details/consumed-endurance-a-metric-to-quantify-arm-fatigue-of-mid-air-interactions)) | Weak |
| R10. Keep latency and jitter low; smooth on the remote side, not in the local camera | Trackers, co-op | 116 vs 246 ms pose latency changed SSQ (N=34, walking) ([Sick Moves](https://downloads.hci.informatik.uni-wuerzburg.de/2019-sick-moves-tvcg-preprint.pdf)) | Moderate, from a different task |

Two caveats change how to read this table. Sickness varies widely by sex, susceptibility and gaming experience ([Howard & Van Zandt 2021](https://link.springer.com/article/10.1007/s10055-021-00524-3)), so a solo developer's own tolerance is a poor test. Gorilla Tag's audience is also not an adult-lab population, a point we could not source. Presence and sickness correlate negatively in most small studies, but positive correlations exist too, and only two studies were adequately powered ([Weech et al. 2019](https://www.frontiersin.org/articles/10.3389/fpsyg.2019.00158/full)). That is no license to trade comfort for "immersion".

## 8. Conclusion

The useful reframing is that Gorilla Tag's invention is an integration rule, not a genre, and the rule cares little what body it moves. Swap the free-flying capsule for a planar chair, a pair of wheels, a crank and flywheel, or a saddle on a creature with its own intent, and the same contact-anchor and velocity-history code yields mechanics that are, as far as these searches reach, unclaimed in VR. The comfort literature, weak as it is, points at which ones will survive playtests. The one constraint it does point to is artificial yaw. Mechanics whose turning comes from the player's real body (a swivel chair) or from track geometry (a handcar) start ahead. Mechanics whose turning comes from hand asymmetry (wheelchairs, kayaks, reins) need the snap-turn and teleport fallbacks that every precedent ended up shipping.

The mount is where the largest unexploited idea sits. Non-VR games already solved what makes an animal feel alive: refusal, autonomy, monotonic trust. Research already named the human-automation version of it, the well-trained horse. What nobody has shipped is the VR coupling: reins with slack, a rider's hand that can reward and punish, and a creature that visibly learns from it. That combination is now buildable with local speech recognition and a few hundred lines of TAMER-style learning. Its real risk is not AI but animation and gallop bob. That is why the prototype order puts cheap chair and crank experiments first: they validate the anchored-integration code, the stabilised-viewpoint frame and the comfort-mode stack that the mount will need.

## 9. Sources

Pages were read through a summarizing fetch tool and two verification passes re-checked load-bearing claims. Sources marked (secondary) in the text are press, wiki or summary pages; several are flagged inline as not re-verified.

- [Gorilla Tag, Wikipedia](https://en.wikipedia.org/wiki/Gorilla_Tag)
- [Yeeps as a Gorilla Tag evolution (Road to VR)](https://roadtovr.com/yeeps-hide-and-seek-gorilla-tag-evolution/)
- [A new category of VR game: arm-based locomotion (Road to VR)](https://www.roadtovr.com/new-category-of-vr-game-arm-based-locomotion/)
- [Gorilla Tag developer story (Meta developer blog)](https://developers.meta.com/horizon/blog/gorilla-tag/)
- [The Climb hands-on with Oculus Touch (Road to VR)](https://roadtovr.com/hands-on-the-climb-with-oculus-touch-reaches-new-heights/)
- [Lone Echo zero-gravity hands-on (Road to VR)](https://roadtovr.com/hands-on-lone-echo-nails-zero-gravity-in-vr-with-oculus-touch/)
- [PushPull world-drag locomotion study (arXiv 2306.14484)](https://arxiv.org/pdf/2306.14484)
- [Meta Interaction SDK WalkingStick locomotion docs](https://developers.meta.com/vr/documentation/unity/unity-isdk-locomotion-walkingstick/)
- [The Slopes (Steam)](https://store.steampowered.com/app/620790/The_Slopes/)
- [Phantom: Covert Ops preview (Road to VR)](https://roadtovr.com/phantom-covert-ops-preview-compelling-vr-stealth-comfort-smooth-turning/)
- [Phantom: Covert Ops review (Road to VR)](https://roadtovr.com/phantom-covert-ops-review-quest-rift/)
- [Kayak VR: Mirage PSVR2 review (UploadVR)](https://uploadvr.com/kayak-vr-mirage-playstation-vr2-review/)
- [Ask the Developer Vol. 20: Drag x Drive, part 1 (Nintendo)](https://www.nintendo.com/whatsnew/ask-the-developer-vol-20-drag-x-drive-part-1/)
- [Wheelchair Basketball VR (itch.io)](https://dagliadubi.itch.io/wheelchair-basketball-vr)
- [Wheelchair Basketball VR devlog: indirect wheelchair locomotion](https://itch.io/devlog/120819/indirect-wheelchair-locomotion.amp)
- [Drag x Drive, Wikipedia](https://en.wikipedia.org/wiki/Drag_x_Drive)
- [VRChairRacer summary (nweon)](https://paper.nweon.com/?p=1897)
- [Kitson et al. 2017, NaviChair and leaning interfaces (nweon summary)](https://paper.nweon.com/6902)
- [Sprint Vector locomotion hands-on (Road to VR)](https://roadtovr.com/hands-on-survios-sprint-vector-fluid-locomotion-system/)
- [Aquila Bird Flight Simulator (Steam)](https://store.steampowered.com/app/583530)
- [Flappy Arms (VR Grid)](https://www.thevrgrid.com/flappy-arms)
- [Marvel's Iron Man VR review (Road to VR)](https://www.roadtovr.com/iron-man-vr-psvr-review-first-great-superhero-game/)
- [Marvel's Iron Man VR comfort options (PlayStation Blog)](https://blog.playstation.com/?p=213674)
- [Greensky Gaming's Swarm (Intel developer article)](https://www.intel.com/content/www/us/en/developer/articles/technical/greensky-gaming-hits-vr-sweet-spot.html)
- [Spider-Man: Far From Home VR review (UploadVR)](https://www.uploadvr.com/spider-man-far-from-home-vr-review/)
- [MonoRaceVR (Steam)](https://store.steampowered.com/app/1722290)
- [LeanOn: simulating balance vehicle locomotion in VR (XJTLU)](https://scholar.xjtlu.edu.cn:443/en/publications/leanon-simulating-balance-vehicle-locomotion-in-virtual-reality)
- [Rival Stars Horse Racing: VR Edition controls FAQ (Pikpok)](https://faq.pikpok.com/hc/en-nz/articles/46118431075609-Rival-Stars-Horse-Racing-VR-Edition-FAQ-Controls-Help)
- [DovaVR Skyrim mod (Nexus Mods)](https://www.nexusmods.com/skyrimspecialedition/mods/154803)
- [Rival Stars Horse Racing VR Edition impressions (UploadVR)](https://uploadvr.com/rival-stars-horse-racing-vr-edition-impressions)
- [Dragons Flight VR (itch.io)](https://morderkaine.itch.io/dragonsflightvr)
- [DragonRideVR (Steam)](https://store.steampowered.com/app/1197620/DragonRideVR/)
- [DreamWorks Dragons Flight Academy (Time Out)](https://www.timeout.com/los-angeles/things-to-do/dreamworks-dragons-flight-academy)
- [Birdly flight simulator (Road to VR)](https://roadtovr.com/?p=162571)
- [OpenVR-WalkInPlace (GitHub)](https://github.com/flypigy/openvr-walkinplace)
- [Cybershoes shuts down (Road to VR)](https://www.roadtovr.com/vrs-quirkiest-locomotion-device-cybershoes-shuts-down/)
- [VirZOOM retires VZfit hardware (VR Fitness Insider)](https://www.vrfitnessinsider.com/virzoom-retires-vzfit-hardware-to-focus-exclusively-on-software-development-why-this-is-testament-to-the-growth-of-vr/)
- [Glide-in-Place insoles (arXiv 2604.10237)](https://arxiv.org/pdf/2604.10237)
- [VR cycling sickness countermeasures (nweon summary)](https://paper.nweon.com/12237)
- [VRC Station component (VRChat creator docs)](https://creators.vrchat.com/worlds/components/vrc_station)
- [Weissker et al. 2020, Getting There Together: group navigation (Bauhaus-Universität Weimar)](https://www.uni-weimar.de/de/medien/professuren/medieninformatik/vr/research/multi-user-virtual-reality/getting-there-together/)
- [GorillaLocomotion source (GitHub)](https://github.com/Another-Axiom/GorillaLocomotion)
- [GorillaLocomotion Player.cs (raw source)](https://raw.githubusercontent.com/Another-Axiom/GorillaLocomotion/master/Player.cs)
- [Animal Company passes Gorilla Tag in Quest revenue (UploadVR)](https://www.uploadvr.com/animal-company-shoots-past-gorilla-tag-to-become-top-earning-game-on-quest/)
- [Gorilla Tag clones mass-delisted from the Meta Horizon Store (UploadVR)](https://uploadvr.com/gorilla-tag-clones-mass-delisting-meta-horizon-store)
- [Boletsis 2017, VR locomotion typology (MDPI)](https://www.mdpi.com/2414-4088/1/4/24)
- [Di Luca et al. 2021, Locomotion Vault (CHI, University of Birmingham)](https://research.birmingham.ac.uk/files/116774658/CHI_2021_Locomotion_VR.pdf)
- [Wheely Stealy (itch.io)](https://alden-burgess.itch.io/wheely-stealy)
- [Genova et al., wheelchair simulator on a CAVE motion platform (Springer)](https://link.springer.com/article/10.1007/s10055-021-00547-w)
- [Need for Seat devlog (itch.io)](https://dead-leg-production.itch.io/need-for-seat/devlog/972827/cooming-soon-on-steam-big-update)
- [Need for Seat (Insider Gaming)](https://insider-gaming.com/need-for-seat-game/)
- [Agro, Team Ico wiki](https://teamico.fandom.com/wiki/Agro)
- [Trico animation and AI (GameAnim)](https://www.gameanim.com/?p=15474)
- [Horse (Breath of the Wild), Zelda Dungeon wiki](<https://www.zeldadungeon.net/wiki/Horse_(Breath_of_the_Wild)>)
- [How Red Dead Redemption 2's horses level up (GameSpot)](https://www.gamespot.com/articles/how-red-dead-redemption-2s-horses-level-up/1100-6462200/)
- [Play Red Dead Redemption 2 in VR (VRScout)](https://vrscout.com/news/play-red-dead-redemption-2-in-vr)
- [Flemisch et al. 2005, H-Metaphor (DLR)](https://elib.dlr.de/21258)
- [Flemisch et al. 2007, H-Metaphor follow-up (DLR)](https://elib.dlr.de/51859/)
- [PEAK, a masterclass in co-op (Co-Optimus)](https://www.co-optimus.com/blog/article-poster/3381/five-dollars-one-mountain-and-a-masterclass-in-co-op.html)
- [Chained Together (80.lv)](https://80.lv/articles/unreal-powered-co-op-game-that-chains-players-together/)
- [Farmani & Teather 2020, viewpoint snapping and cybersickness](https://www.csit.carleton.ca/~rteather/pdfs/VR_2020_cybersickness.pdf)
- [Rietzler et al. 2018, Breaking the Tracking: pseudo-haptic weight (CHI)](https://www.uni-ulm.de/fileadmin/website_uni_ulm/iui.inst.100/institut/mitarbeiterbereiche/rietzler/Breaking_the_Tracking.pdf)
- [Godot MotionMatching GDExtension (GitHub)](https://github.com/Remi123/MotionMatching)
- [Locomotion comfort and usability guidelines (Meta)](https://developers.meta.com/horizon/design/locomotion-comfort-usability/)
- [Rival Stars VR Edition developer blog: designing for VR](https://www.rivalstarshorseracing.com/post/rival-stars-horse-racing-vr-edition-developer-blog-designing-for-vr)
- [Knox & Stone 2009, TAMER (K-CAP)](https://www.cs.utexas.edu/~pstone/Papers/bib2html/b2hd-KCAP09-knox.html)
- [Godot Whisper speech-to-text addon (Godot Asset Store)](https://store.godotengine.org/asset/appsinacup/godot-whisper-speech-to-text-stt-offline/)
- [Fiedler, Networked physics in virtual reality (gafferongames)](https://gafferongames.com/post/networked_physics_in_virtual_reality/)
- [Vibrotactile overlap feedback and agency in co-located VR (arXiv 2403.08363)](https://arxiv.org/pdf/2403.08363)
- [Avatar sliding inside moving cockpits (VRChat Ask)](https://ask.vrchat.com/t/avatar-sliding-desync-inside-cockpit-during-vehicle-movement/47603)
- [Sarupuri et al. 2017, TriggerWalking (Eurographics)](https://diglib.eg.org/bitstream/handle/10.2312/egve20171350/133-139.pdf)
- [Adhikari et al. 2021, head-lean flight locomotion (Frontiers in Virtual Reality)](https://www.frontiersin.org/journals/virtual-reality/articles/10.3389/frvir.2021.730334/full)
- [Cybershoes maze study abstract (DOAJ)](https://doaj.org/article/58a3e3961d5747dfbfc69fedd9ea9e07)
- [Head-fixed virtual nose and cybersickness, preregistered study (Springer)](https://link.springer.com/article/10.1186/s41235-024-00593-3)
- [Field-of-view restriction reduces VR sickness (ScienceDaily)](https://www.sciencedaily.com/releases/2016/06/160614121922.htm)
- [Norouzi et al., vignetting under amplified yaw (NSF PAR)](https://par.nsf.gov/servlets/purl/10105867)
- [Clifton & Palmisano, teleport and sickness (University of Wollongong)](https://ro.uow.edu.au/sspapers/4617)
- [Sickness habituation is game-specific (University of Wollongong)](https://ro.uow.edu.au/articles/journal_contribution/Reductions_in_sickness_with_repeated_exposure_to_HMD-based_virtual_reality_appear_to_be_game-specific/27809478)
- [Hincapié-Ramos et al., Consumed Endurance arm-fatigue metric (University of Manitoba)](https://hci.cs.umanitoba.ca/publications/details/consumed-endurance-a-metric-to-quantify-arm-fatigue-of-mid-air-interactions)
- [Stauffert et al. 2019, Sick Moves: latency and cybersickness (TVCG preprint)](https://downloads.hci.informatik.uni-wuerzburg.de/2019-sick-moves-tvcg-preprint.pdf)
- [Howard & Van Zandt 2021, cybersickness individual differences (Springer)](https://link.springer.com/article/10.1007/s10055-021-00524-3)
- [Weech et al. 2019, presence and cybersickness review (Frontiers in Psychology)](https://www.frontiersin.org/articles/10.3389/fpsyg.2019.00158/full)

---

Text licensed CC BY 4.0 (attribution: Hiina, ai.hiina.space). Source: https://github.com/hiinaspace/ai-hiina-space
