ARKit Hand Tracking Provider
Quick Start
- Confirm the task needs raw hand/joint data; use SwiftUI or RealityKit gestures when high-level interaction is enough.
- Load the shared session guidance and the hand provider reference.
- Add hands privacy text and request the provider's required authorizations.
- Keep joint processing in a model layer, then bridge to SwiftUI or RealityKit only where needed.
Load References When
| Reference | When to Use |
|---|---|
session-basics.md |
When setting up ARKitSession, authorization, event handling, or teardown. |
hand-tracking-provider.md |
When using HandTrackingProvider, HandAnchor, or joint transforms. |
anchor-processing.md |
When reconciling hand anchor updates into app state. |
realitykit-bridge.md |
When visualizing hands or driving RealityKit entities. |
Workflow
- Check
HandTrackingProvider.isSupported. - Request
HandTrackingProvider.requiredAuthorizations. - Run the provider in a long-lived
ARKitSession. - Process update sequences off the SwiftUI body path.
- Cancel the update task and stop the session on teardown.
Guardrails
- Do not use raw hand tracking for ordinary taps, drags, or gaze-targeted UI that platform gestures already handle.
- Do not assume both hands or every joint are always tracked.
- Treat hand-tracking denial as a feature-level unavailable state, not as an app launch failure.
Output Expectations
Provide:
- whether raw hand tracking is actually required
- which hand provider references were used
- the authorization and unsupported-device behavior
- the joint processing and rendering path