# Research: avatar arm length vs the player's real arm length (2026-10-02) Question (owner): get arm length right first time — should the player's body be fitted to the player, or should the player embody an existing (stylized/anime) avatar with its own proportions, VRChat-style? Decide once. [S] = sourced, [I] = inference. ## 1. What the research says - [S] **The one mismatch that breaks embodiment: the REAL arm reaching full extension while the virtual arm is still bent** (virtual arm longer than real, or offset forward). Porssut et al., *Reaching articular limits can negatively impact embodiment in VR*, PLOS ONE 2022 (https://journals.plos.org/plosone/article?id=10.1371%2Fjournal.pone.0255554): a 5.5 cm offset; ownership fell from ~0.66 to 0.45 and "more than one body" feelings rose when the real elbow hit its limit first; the opposite (avatar arm straight, real arm bent) was tolerated. Advice: "the user never reaches full arm extension by surprise"; if calibration can't be perfect, "choose to have the virtual limbs slightly SHORTER than the real ones". The elbow's own end-stop is "internal haptic feedback" the brain trusts. - [S] **Virtual arm shorter than real → the hand can't reach the controller.** Ponton et al., *Stretch your reach*, CHI 2024 (https://arxiv.org/html/2407.08011, https://dl.acm.org/doi/10.1145/3613904.3642268): avatars scaled uniformly from height left an average 26.3 cm (SD 4.7) reach shortfall; of five strategies, STRETCHING the arm to keep the hand on the controller was best for embodiment, proprioception and preference; a free-floating controller kept location but broke continuity; capping the hand at avatar reach was worst. Rendering the controller doesn't matter. A too-LONG virtual arm (untested there) only bends the elbow — reach is unaffected. - [S] **Fitted skeletons beat uniform scaling.** Ponton et al., *Fitted avatars: automatic skeleton adjustment for self-avatars in VR*, Virtual Reality 2023 (https://arxiv.org/pdf/2307.09558): uniform scaling by eye height "assume[s] … the same ratios between bone lengths as the user" → controller-to-wrist errors; their fitting reduced hand error by 4–14 cm (male) / 2.6–8 cm (female). Method: (1) uniformly scale the avatar by eye-height ratio, (2) resize upper-arm/forearm bones to the measured arm length. **Arm length measurement: the user swings both STRAIGHT arms in circles; a sphere fitted to the controller positions gives the SHOULDER JOINT centre (sphere centre) and ARM LENGTH (radius, shoulder→wrist).** Neck from head rotations. Embodiment gains appeared "only when the initial avatar proportions differed from the user's" — i.e. exactly the stylized-avatar case. Some avatars needed arms stretched by 12–23 cm. - [S] Body ownership tolerates large DELIBERATE changes when movement stays synchronous — up to ~3× arm length (Kilteni et al., *Very Long Arm Illusion*, PLOS ONE 2012, https://journals.plos.org/plosone/article?id=10.1371%2Fjournal.pone.0040867). Proportion is not the problem; a reach/extension mismatch is. - [S] **VRChat** measures avatars by ARM SPAN by default (scales so the avatar's arms match yours — hands right, floor/feet often wrong, worse with long-legged anime/MMD avatars) or by HEIGHT (feet right, recommended for full-body tracking) (https://docs.vrchat.com/docs/ik-20-features-and-options). Community limb-scaling prefabs stretch avatar arm/leg bones to the user (https://nanochip.gumroad.com/l/avatarlimbscaling); shoulder-mobility add-ons extend reach when real arms exceed the avatar's. - [S] **Bonelab** asks height + T-shirt size with fine-tuning of wingspan, chest, waist, hips, inseam, and runs a "body remapping system" so differently-shaped avatars keep a realistic range of motion (https://www.uploadvr.com/bonelab-avatar-system/, https://roadtovr.com/bonelab-custom-avatar-mod-levels-items-vehicles/). Players report: arms too short for them → "my arm held straight out keeps wanting to lift my character up off the ground" and climbing feels broken because hands aren't 1:1 — the PHYSICS-BODY version of the Ponton shortfall. - [S] **Nimso (Project TX)** keeps a TRUE BODY from the user's metrics (height, floor, arm length = shoulder joint → wrist, set so real full stretch = in-game full stretch) and a separate SCALED BODY for avatars, scaling reach from the shoulder so full stretch still maps to full stretch (see `nimso-project-tx.md`). ## 2. Decision for VR Messs **The physics body is the player's real body; any avatar is a skin fitted onto it.** 1. **Physics ragdoll proportions = the player's calibrated metrics** (Nimso's True Body; the research's "fitted" method). Shoulder joint positions and arm length come from measurement, never from current head height, so standing, seated or lying play all use the same body. 2. **Calibration (one-time, saved profile):** - Stand straight → eye height + floor (Nimso's "stand straight, touch the ground"). - "Arm circles" ~10 s: swing both straight arms; sphere-fit each controller trail → shoulder centres (sphere centres, gives shoulder width and height) and arm length (radius − wrist-to-grip offset). - Skip / failure fallback: Winter/Drillis-Contini ratios from eye height (`nimso-project-tx.md` §3). - Store arm length ~1–2 cm SHORT of the measured value (Porssut: never let the real elbow lock first); the physics hand then trails the controller by that margin only at full stretch. 3. **Stylized / anime avatar = visual skin on the fitted skeleton** (the fitted-avatar pipeline): uniform scale by eye-height ratio, then resize the avatar's upper-arm/forearm bones to the calibrated arm length (hands not stretched). The anime look survives (head/torso/legs proportions untouched); only arm bone lengths adapt. No bespoke player model needed — any humanoid works. 4. **"Become a different-sized character" (Bonelab/Nimso Scaled Body)** stays on the back-burner; if built, it must preserve the extension invariant (scale reach from the shoulder so real full stretch = virtual full stretch). 5. Shoulder girdle: model the clavicle as a driven segment (shrug/protraction ~ a few cm) so overhead/forward reach beyond the arm comes from the shoulder, as in real bodies and in Nimso's "shoulder lifts as you raise the arm".