Markdown version: https://ai.hiina.space/reports/hand-driven-vr-locomotion-and-mounts/03-gorilla-tag-s-core-is-a-contact.md · index

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

Hand-driven VR locomotion leaves vehicles and mounts open: 3. Gorilla Tag's core is a contact anchor plus a body-velocity history

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). 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). 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), and UploadVR reported about 1M daily and 3M monthly players in 2025 (UploadVR, secondary). 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). 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). Locomotion Vault codes 109 techniques and records a steady decline in new "Grab" inventions (Birmingham PDF). Gorilla Tag sits awkwardly between "motion-based" and Vault's "Movement"/"Grab". That placement is my inference; neither source names it.


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