Inward and outward rolls are two gestures, not one “rotation”
Aliases: pronation vs supination · opposite roll · signed rotation · mirror twist
What it is
Two rotations about the same axis with opposite sign are two gestures. They cannot be written as one “rotate” whose direction is guessed from context. Inward (for example right-hand pronation, palm turning toward the body) and outward (supination) often pair as functions: next / previous, bigger / smaller, open / close. Merging them leaves the recognizer nowhere to send a signed angular velocity. The product then either treats outbound as the command and the return as noise, or two functions fight for one channel. “Inward” for the left hand is opposite in world coordinates to the right. The definition must say whether the frame is body-relative or screen-relative.
Why it happens
Angular velocity is signed. A classifier that emits unsigned “a rotation happened” drops the sense at the front end; function routing cannot recover it. Paired functions need the sign preserved up to the command layer. Two hands double the problem: right-hand pronation and left-hand pronation are both “inward” on the body, and may be opposite image motions to the camera. Without a stated frame, the same vocabulary item flips function when the hand switches. The return is a reverse rotation. If both gestures are registered, the return must be bound to the outbound token, or an inward return is an outward command. The structure matches left/right swipe pairs; the degree of freedom is rotation.
Studying it
Register paired functions. Have people go inward, outward, and inward with a return. See whether the command layer receives two items or a folded one. Repeat with the left hand and check the frame. Run signed and unsigned recognizer outputs and compare function errors. Log whether people saying “twist in / twist out” matches world-coordinate sign. Report handedness groups separately; do not average.
Where it stops holding
When there is only one function and rotation is just “confirm,” direction may be ignored, but the definition should say “direction does not map to function,” or a later paired function will silently reuse the channel. Continuous angle mapping (driving a knob) is not two gestures; it is one signed continuous value, and should not be split into two pulses. Cultural “come here / go away” gestures reverse direction; paired mappings need checking in the target culture, not only checking signs in the lab. A prosthetic wrist that cannot pronate/supinate makes the whole pair unusable; swap in a translational pair rather than deleting only one side.
Applying it
- Write paired rotations as two IDs, with the routing table dispatching on the sign of angular velocity. Ban a single “rotate” that does all jobs.
- Nail the frame: body-relative or screen-relative. Accept left and right hands separately; switching hands must not flip the function.
- Bind the return to the outbound token. In acceptance, one full inward round trip may produce only one function event.