> For the complete documentation index, see [llms.txt](https://jorge-jgnz94.gitbook.io/hptk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jorge-jgnz94.gitbook.io/hptk/master/master.md).

# Overview

**Hand Physics Toolkit (HPTK)** is a toolkit to implement hand-driven interactions in a modular and scalable way. Platform-independent. Input-independent. Scale-independent. Can be combined with [MRTK-Quest](https://github.com/provencher/MRTK-Quest) for UI interactions.

{% hint style="info" %}
**This documentation is under construction.**

Are you unable to find what you need? Please report it in our [community](/hptk/master/community.md).
{% endhint %}

You can clone a **ready-to-go project** at [HPTK-Sample](https://github.com/jorgejgnz/HPTK-Sample).

![](https://2698598769-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MYpeL-Cll-FXMj9b3XC%2F-MasB-ajFSEAuUMGDQ55%2F-MasBCUCY1KtkZQwFEUv%2F68747470733a2f2f696d6775722e636f6d2f69483335596f5a2e6a7067.png?alt=media\&token=3d7c3c2f-24b9-4e1d-9aa4-874dc936d7dd)

## Main features

* **Data model** to access parts, components or calculated values with **very little code**
* **Code architecture** based on MVC-like modules. Support to **custom modules**
* **Platform-independent**. Tested on VR/AR/non-XR applications
* **Input-independent**. Use hand tracking or controllers
* **Pupettering** for any avatar or body structure
* **Scale-independent**. Valid for any hand size
* **Realistic** configurable **hand physics**
* Define strategies to deal with tracking loss
* Physics-based touch/grab detection
* Tracking noise smoothing

## Supported versions

* Unity 2021.x
* Unity 2020.x
* Unity 2019.x

## Supported input

### Hand tracking

* **Oculus Quest 1/2** - Android
* **Hololens 2** - UWP
* **Leap Motion** - PC
* **WebXR** - Web

### Controllers

* Oculus Touch
* WMR
* Vive
* OpenVR

## Supported render pipelines

* Universal Render Pipeline (URP)
* Standard RP

## Getting started with HPTK

1. Obtain *HPTK*
2. Change *ProjectSettings & BuildSettings*
3. Import the built-in *integration packge* (if needed)
4. Drag & drop the *default setup* to your scene
5. *Build and test*

Check [Setup](/hptk/master/setup.md) for a detailed **step-by-step guide**.

## Author

**Jorge Juan González** - *HCI Researcher at I3A (University of Castilla-La Mancha)*

[LinkedIn](https://www.linkedin.com/in/jorgejgnz/) - [Twitter](https://twitter.com/jorgejgnz) - [GitHub](https://github.com/jorgejgnz)

### Acknowledgements

**Oxters Wyzgowski** - [GitHub](https://github.com/oxters168) - [Twitter](https://twitter.com/OxGamesCo)

**Michael Stevenson** - [GitHub](https://github.com/mstevenson)

Kiran Nasim and Young J. Kim. 2016. [Physics-based Interactive Virtual Grasping](https://dl.acm.org/doi/10.17210/hcik.2016.01.114). In Proceedings of HCI Korea (HCIK '16). Hanbit Media, Inc., Seoul, KOR, 114–120. DOI: <https://doi.org/10.17210/hcik.2016.01.114>

Linn, Allison. Talking with your hands: How Microsoft researchers are moving beyond keyboard and mouse. The AI Blog. Microsoft. 2016 [https://blogs.microsoft.com/](https://blogs.microsoft.com/ai/talking-hands-microsoft-researchers-moving-beyond-keyboard-mouse/)

## License

[MIT](https://github.com/jorgejgnz/HPTK/blob/master/LICENSE.md)
