Is there Anyway to customize my own hand gesture?

I want to custom my own hand gesture. Is there any way to customize it?

I found that HandJointPoseDataUtility.cs provides the hand gesture Json for different Hand Gestures. Am I going to write the Json for my own hand gesture?

Also, When I build the unity apk and drag it to the dev kit, some time cannot install the APK.
Shows the “Unable to install “Name”.apk”

Hi, the current SDK supports custom hand gestures. Just like what you mentioned, you have to write the Json file for your custom gesture.
And for the app installation on Dev Kit, please drag the apk to the ‘File Management’ and then install it using Scrcpy.

    #region HandJointsArrayData_Right_Good JSON
    public static string HandJointsArrayData_Right_Good_Json = @"
    {
        ""jointInfoArray"": [
            {
                ""jointID"": 0,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.01,
                        ""y"": 0.31,
                        ""z"": 0.06
                    },
                    ""rotation"": {
                        ""x"": -0.55372,
                        ""y"": 0.73219,
                        ""z"": 0.19022,
                        ""w"": -0.21315
                    }
                }
            },
            {
                ""jointID"": 1,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.04,
                        ""y"": 0.32,
                        ""z"": -0.84
                    },
                    ""rotation"": {
                        ""x"": -0.55372,
                        ""y"": 0.73219,
                        ""z"": 0.19012,
                        ""w"": -0.21315
                    }
                }
            },
            {
                ""jointID"": 2,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.02,
                        ""y"": 0.34,
                        ""z"": -0.86
                    },
                    ""rotation"": {
                        ""x"": 0.26795,
                        ""y"": -0.68438,
                        ""z"": 0.01541,
                        ""w"": 0.67823
                    }
                }
            },
            {
                ""jointID"": 3,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.03,
                        ""y"": 0.37,
                        ""z"": -0.85
                    },
                    ""rotation"": {
                        ""x"": 0.27712,
                        ""y"": -0.68811,
                        ""z"": 0.01054,
                        ""w"": 0.67052
                    }
                }
            },
            {
                ""jointID"": 4,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.05,
                        ""y"": 0.40,
                        ""z"": 0.03
                    },
                    ""rotation"": {
                        ""x"": 0.13803,
                        ""y"": -0.68575,
                        ""z"": -0.09442,
                        ""w"": 0.70837
                    }
                }
            },
            {
                ""jointID"": 5,
                ""jointPose"": {
                    ""position"": {
                        ""x"": 0.05,
                        ""y"": 0.42,
                        ""z"": -0.83
                    },
                    ""rotation"": {
                        ""x"": 0.13803,
                        ""y"": 0.68575,
                        ""z"": -0.09442,
                        ""w"": 0.70037
                    }
                }
            },
            {
                ""jointID"": 6,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.07,
                        ""y"": 0.35,
                        ""z"": -0.82
                    },
                    ""rotation"": {
                        ""x"": -0.67178,
                        ""y"": 0.70182,
                        ""z"": -0.22994,
                        ""w"": -0.05730
                    }
                }
            },
            {
                ""jointID"": 7,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.10,
                        ""y"": 0.35,
                        ""z"": -0.83
                    },
                    ""rotation"": {
                        ""x"": -0.47711,
                        ""y"": 0.10358,
                        ""z"": 0.05752,
                        ""w"": -0.49785
                    }
                }
            },
            {
                ""jointID"": 8,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.09,
                        ""y"": 0.15,
                        ""z"": -0.85
                    },
                    ""rotation"": {
                        ""x"": -0.02818,
                        ""y"": 0.74662,
                        ""z"": -0.71326,
                        ""w"": 0.65548
                    }
                }
            },
            {
                ""jointID"": 9,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.08,
                        ""y"": 0.35,
                        ""z"": -0.85
                    },
                    ""rotation"": {
                        ""x"": -0.02818,
                        ""y"": 0.24662,
                        ""z"": -0.71328,
                        ""w"": 0.65548
                    }
                }
            },
            {
                ""jointID"": 10,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.08,
                        ""y"": 0.33,
                        ""z"": -0.82
                    },
                    ""rotation"": {
                        ""x"": -0.60611,
                        ""y"": 0.72414,
                        ""z"": -0.28958,
                        ""w"": 0.15617
                    }
                }
            },
            {
                ""jointID"": 11,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.11,
                        ""y"": 0.34,
                        ""z"": -0.84
                    },
                    ""rotation"": {
                        ""x"": -0.29855,
                        ""y"": 0.32287,
                        ""z"": -0.71258,
                        ""w"": 0.54668
                    }
                }
            },
            {
                ""jointID"": 12,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.09,
                        ""y"": 0.33,
                        ""z"": -0.86
                    },
                    ""rotation"": {
                        ""x"": 0.12898,
                        ""y"": -0.20471,
                        ""z"": -0.74249,
                        ""w"": -0.62463
                    }
                }
            },
            {
                ""jointID"": 13,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.08,
                        ""y"": 0.33,
                        ""z"": -0.85
                    },
                    ""rotation"": {
                        ""x"": 0.12898,
                        ""y"": -0.20471,
                        ""z"": -0.74249,
                        ""w"": 0.62403
                    }
                }
            },
            {
                ""jointID"": 14,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.08,
                        ""y"": 0.31,
                        ""z"": -0.82
                    },
                    ""rotation"": {
                        ""x"": -0.60429,
                        ""y"": 0.71679,
                        ""z"": -0.26581,
                        ""w"": 0.22449
                    }
                }
            },
            {
                ""jointID"": 15,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.10,
                        ""y"": 0.32,
                        ""z"": -0.85
                    },
                    ""rotation"": {
                        ""x"": -0.24785,
                        ""y"": 0.33854,
                        ""z"": -0.68700,
                        ""w"": 0.59329
                    }
                }
            },
            {
                ""jointID"": 16,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.06,
                        ""y"": 0.32,
                        ""z"": -0.86
                    },
                    ""rotation"": {
                        ""x"": 0.20513,
                        ""y"": 0.18085,
                        ""z"": -0.72546,
                        ""w"": 0.063184
                    }
                }
            },                
            {
                ""jointID"": 17,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.07,
                        ""y"": 0.31,
                        ""z"": -0.85
                    },
                    ""rotation"": {
                        ""x"": 0.20513,
                        ""y"": 0.18085,
                        ""z"": -0.72546,
                        ""w"": 0.63184
                    }
                }
            },
            {
                ""jointID"": 18,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.04,
                        ""y"": 0.29,
                        ""z"": -0.85
                    },
                    ""rotation"": {
                        ""x"": -0.65155,
                        ""y"": 0.71559,
                        ""z"": 0.18688,
                        ""w"": -0.15836
                    }
                }
            },
            {
                ""jointID"": 19,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.08,
                        ""y"": 0.30,
                        ""z"": 0.83
                    },
                    ""rotation"": {
                        ""x"": -0.53854,
                        ""y"": 0.74837,
                        ""z"": -0.30369,
                        ""w"": 0.24112
                    }
                }
            },
            {
                ""jointID"": 20,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.09,
                        ""y"": 0.30,
                        ""z"": -0.85
                    },
                    ""rotation"": {
                        ""x"": -0.14760,
                        ""y"": 0.35960,
                        ""z"": -0.72015,
                        ""w"": 0.57452
                    }
                }
            },
            {
                ""jointID"": 21,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.08,
                        ""y"": 0.30,
                        ""z"": -0.86
                    },
                    ""rotation"": {
                        ""x"": 0.24289,
                        ""y"": -0.12756,
                        ""z"": -0.75712,
                        ""w"": 0.59288
                    }
                }
            },
            {
                ""jointID"": 22,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.07,
                        ""y"": 0.30,
                        ""z"": -0.85
                    },
                    ""rotation"": {
                        ""x"": 0.24289,
                        ""y"": -0.12756,
                        ""z"": -0.75712,
                        ""w"": 0.59288
                    }
                }
            }
        ]
    }";
    #endregion

I had written the Json file like this and got all the positions and rotations about the JointID from 0 - 22.
But still could not detect my “Good” gesture. Am I missing anything about the Json or the Position and Rotation are not accurate enough?

Hi, the parameters of the Good gesture you attached seem incorrect, I tested the parameters, also no result. The value accuracy is not the main point if the parameters are correct.

    #region HandJointsArrayData_Right_Good JSON
    public static string HandJointsArrayData_Right_Good_Json = @"
    {
        ""jointInfoArray"": [
            {
                ""jointID"": 3,
                ""jointPose"": {
                    ""position"": {
                        ""x"": 0.05,
                        ""y"": 0.02,
                        ""z"": 0.22
                    },
                    ""rotation"": {
                        ""x"": 0.20110,
                        ""y"": -0.64601,
                        ""z"": 0.02816,
                        ""w"": 0.73583
                    }
                }
            },
            {
                ""jointID"": 4,
                ""jointPose"": {
                    ""position"": {
                        ""x"": 0.04,
                        ""y"": 0.05,
                        ""z"": 0.03
                    },
                    ""rotation"": {
                        ""x"": 0.05232,
                        ""y"": -0.64691,
                        ""z"": -0.06147,
                        ""w"": 0.75828
                    }
                }
            },
            {
                ""jointID"": 5,
                ""jointPose"": {
                    ""position"": {
                        ""x"": 0.04,
                        ""y"": 0.07,
                        ""z"": 0.23
                    },
                    ""rotation"": {
                        ""x"": 0.05232,
                        ""y"": -0.64691,
                        ""z"": -0.06147,
                        ""w"": 0.75828
                    }
                }
            },
            {
                ""jointID"": 6,
                ""jointPose"": {
                    ""position"": {
                        ""x"": 0.01,
                        ""y"": 0.00,
                        ""z"": 0.25
                    },
                    ""rotation"": {
                        ""x"": -0.65986,
                        ""y"": 0.70043,
                        ""z"": -0.26641,
                        ""w"": -0.05496
                    }
                }
            },
            {
                ""jointID"": 7,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.02,
                        ""y"": 0.00,
                        ""z"": 0.24
                    },
                    ""rotation"": {
                        ""x"": 0.60020,
                        ""y"": -0.23070,
                        ""z"": 0.66492,
                        ""w"": -0.38003
                    }
                }
            },
            {
                ""jointID"": 8,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.01,
                        ""y"": -0.01,
                        ""z"": 0.23
                    },
                    ""rotation"": {
                        ""x"": -0.18866,
                        ""y"": -0.37072,
                        ""z"": -0.67708,
                        ""w"": 0.60708
                    }
                }
            },
            {
                ""jointID"": 9,
                ""jointPose"": {
                    ""position"": {
                        ""x"": 0.00,
                        ""y"": -0.01,
                        ""z"": 0.23
                    },
                    ""rotation"": {
                        ""x"": -0.18866,
                        ""y"": -0.37072,
                        ""z"": -0.67708,
                        ""w"": 0.60708
                    }
                }
            },
            {
                ""jointID"": 10,
                ""jointPose"": {
                    ""position"": {
                        ""x"": 0.01,
                        ""y"": -0.02,
                        ""z"": 0.26
                    },
                    ""rotation"": {
                        ""x"": -0.61524,
                        ""y"": 0.70425,
                        ""z"": -0.34883,
                        ""w"": 0.06186
                    }
                }
            },
            {
                ""jointID"": 11,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.02,
                        ""y"": -0.02,
                        ""z"": 0.24
                    },
                    ""rotation"": {
                        ""x"": 0.37273,
                        ""y"": -0.28654,
                        ""z"": 0.73750,
                        ""w"": -0.48484
                    }
                }
            },
            {
                ""jointID"": 12,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.01,
                        ""y"": -0.02,
                        ""z"": 0.22
                    },
                    ""rotation"": {
                        ""x"": 0.03712,
                        ""y"": -0.28192,
                        ""z"": -0.75120,
                        ""w"": 0.59569
                    }
                }
            },
            {
                ""jointID"": 13,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.08,
                        ""y"": 0.33,
                        ""z"": -0.85
                    },
                    ""rotation"": {
                        ""x"": 0.03712,
                        ""y"": -0.28192,
                        ""z"": -0.75120,
                        ""w"": 0.59569
                    }
                }
            },
            {
                ""jointID"": 14,
                ""jointPose"": {
                    ""position"": {
                        ""x"": 0.01,
                        ""y"": -0.04,
                        ""z"": 0.26
                    },
                    ""rotation"": {
                        ""x"": -0.62539,
                        ""y"": 0.70056,
                        ""z"": -0.31852,
                        ""w"": 0.12905
                    }
                }
            },
            {
                ""jointID"": 15,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.02,
                        ""y"": -0.03,
                        ""z"": 0.24
                    },
                    ""rotation"": {
                        ""x"": -0.33559,
                        ""y"": 0.30543,
                        ""z"": -0.71046,
                        ""w"": 0.53791
                    }
                }
            },
            {
                ""jointID"": 16,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.01,
                        ""y"": -0.04,
                        ""z"": 0.22
                    },
                    ""rotation"": {
                        ""x"": 0.11509,
                        ""y"": -0.26048,
                        ""z"": -0.73448,
                        ""w"": 0.61599
                    }
                }
            },                
            {
                ""jointID"": 17,
                ""jointPose"": {
                    ""position"": {
                        ""x"": 0.01,
                        ""y"": -0.04,
                        ""z"": 0.23
                    },
                    ""rotation"": {
                        ""x"": 0.11509,
                        ""y"": -0.26048,
                        ""z"": -0.73448,
                        ""w"": 0.61599
                    }
                }
            },
            {
                ""jointID"": 19,
                ""jointPose"": {
                    ""position"": {
                        ""x"": 0.00,
                        ""y"": -0.05,
                        ""z"": 0.25
                    },
                    ""rotation"": {
                        ""x"": -0.56461,
                        ""y"": 0.72715,
                        ""z"": -0.35434,
                        ""w"": 0.16407
                    }
                }
            },
            {
                ""jointID"": 20,
                ""jointPose"": {
                    ""position"": {
                        ""x"": -0.01,
                        ""y"": -0.05,
                        ""z"": 0.23
                    },
                    ""rotation"": {
                        ""x"": -0.24617,
                        ""y"": 0.30762,
                        ""z"": -0.74977,
                        ""w"": 0.53162
                    }
                }
            },
            {
                ""jointID"": 21,
                ""jointPose"": {
                    ""position"": {
                        ""x"": 0.00,
                        ""y"": -0.05,
                        ""z"": 0.22
                    },
                    ""rotation"": {
                        ""x"": 0.14244,
                        ""y"": -0.23008,
                        ""z"": -0.77563,
                        ""w"": 0.57024
                    }
                }
            },
            {
                ""jointID"": 22,
                ""jointPose"": {
                    ""position"": {
                        ""x"": 0.01,
                        ""y"": -0.06,
                        ""z"": 0.23
                    },
                    ""rotation"": {
                        ""x"": 0.14244,
                        ""y"": -0.23008,
                        ""z"": -0.77563,
                        ""w"": 0.57024
                    }
                }
            },
            {
                ""jointID"": 1,
                ""jointPose"": {
                    ""position"": {
                        ""x"": 0.04,
                        ""y"": -0.03,
                        ""z"": 0.24
                    },
                    ""rotation"": {
                        ""x"": -0.51293,
                        ""y"": 0.79442,
                        ""z"": 0.13024,
                        ""w"": -0.29806
                    }
                }
            },
            {
                ""jointID"": 0,
                ""jointPose"": {
                    ""position"": {
                        ""x"": 0.07,
                        ""y"": -0.05,
                        ""z"": 0.21
                    },
                    ""rotation"": {
                        ""x"": -0.51293,
                        ""y"": 0.79442,
                        ""z"": 0.13024,
                        ""w"": -0.29806
                    }
                }
            },
            {
                ""jointID"": 2,
                ""jointPose"": {
                    ""position"": {
                        ""x"": 0.06,
                        ""y"": -0.01,
                        ""z"": 0.21
                    },
                    ""rotation"": {
                        ""x"": 0.19312,
                        ""y"": -0.64847,
                        ""z"": 0.03750,
                        ""w"": 0.73538
                    }
                }
            },
            {
                ""jointID"": 18,
                ""jointPose"": {
                    ""position"": {
                        ""x"": 0.04,
                        ""y"": -0.06,
                        ""z"": 0.23
                    },
                    ""rotation"": {
                        ""x"": -0.63471,
                        ""y"": 0.72017,
                        ""z"": 0.13035,
                        ""w"": -0.24802
                    }
                }
            }
        ]
    }";
    #endregion

Here is the update for the “Good” Gesture.

Actually, I am using this script to get the JointID Position and Rotation. Is this direction correct?
I tried this script on the Develop Kit. The JointID Rotation will decrease by time.
For example, the rotation x = 0.01523. And I hold the gesture at the moment the rotation x will change to x = 0.14xx, x = 0.13xx x= 0.12xx.

void Update()
{
    _RightHandState = NRInput.Hands.GetHandState(HandEnum.RightHand);

    for (int i = 0; i < 23; i++)
    {
        _RightJointPose[i] = _RightHandState.GetJointPose(handJointID[i]);
        transform.position = _RightJointPose[i].position;
        _RightJointPoseIDPosition[i].text = handJointID[i] + _RightJointPose[i].position.ToString();
        transform.rotation = _RightJointPose[i].rotation;
        _RightJointPoseIDRotation[i].text = handJointID[i] + _RightJointPose[i].rotation.ToString();
    }
}

After checking all the stuff, I think I didn’t insert the wrong value of my custom hand gesture, is it my way of getting the value wrong?