midiviz

05 · The violinist’s bow hand and arm: the hold, what the rig got wrong, the fix

This is the brief for #037 / #038 (violinist/rig.js), the companion to 04_left_hand.md. It builds on 01_violinist_biomechanics.md §4, which covers bow dimensions, the three holds, arm levels per string, frog-to-tip roles, and wrist and pronation along the bow. violinist/test/posture.mjs checks the numbers.

Bow frame (strings/violin3d.js buildBow): x runs along the stick toward the tip (0 at the frog’s front edge; the frog spans x −4…0.8 and y 0…1.6), y points from the hair up to the stick (y ≈ 1.6 at the frog), and z points toward the player when n = 1.

1. The Franco-Belgian hold (sources)

2. What the rig did (Bach BWV 1006 Preludio, the first 60 s)

  before target
right elbow 179° (locked straight) on 84 % of frames 95–160° by bow position
wrist bend 70° median (62–72°) ≤ 30°
thumb tip 4 cm from the stick, on the player’s side in the corner of the frog and stick
fingers leaning 30–41° out of their bending plane in the plane square to the knuckle line

There were two causes:

  1. The arm was too short for the bow. The VRoid arm measures 22 + 25 = 47 cm from shoulder to wrist. A 180 cm man’s measures about 33 + 26 ≈ 59 cm. The bow is placed for a full-size player (the Preludio’s contact point is 44–55 cm from the frog), so the hand could only reach the frog with the arm locked straight. The grip’s fixed hand orientation then bent the wrist 70° against it.
  2. The fingers were solved by the piano-style planar solver with the roll taken from the knuckle line, as on the left hand before 04. They bent sideways.

3. The recipe (rig.js bowHandPose, bowFingers)

4. Checks (violinist/test/posture.mjs)

Every 0.25 s over the first 120 s of each piece:

The budgets are those of the left-hand checks.

After the fix (median, with the 5th–95th percentile in brackets):

piece elbow wrist finger middle joints lean
Bach Preludio 112° (104–116°) −5° (−10 to +9°) 70° 6°
Bach Ciaccona 78° (70–119°) +13° (−11 to +20°) 77° 6°
Paganini 24 77° (69–116°) +12° (−10 to +21°) 78° 7°
Kreutzer iii (light-brown model) 84° (70–121°) +9° (−12 to +20°) 77° 10°

Every fingertip is on its contact, the thumb is on the frog and the palm faces down on every frame. The collision sweep passes, with the forearm at least 1.4 cm from the torso.