arkavo-org / arkavo-org/VRMMetalKit
ARKit drivers: complete Phase-4 TODOs (confidence-based face source selection, shoulder/arm T-pose calibration)
- Dominant language
- Swift
- Stars
- 6
- Forks
- 2
- Avg merge
- 18h 51m
- Merged PRs (30d)
- 26
Description
Three production TODOs in the ARKit drivers fall back to placeholder behavior. Two are real feature gaps; one (weighted body-skeleton blending) is already tracked by #29.
## 1. Confidence-based face source selection
- `Sources/VRMMetalKit/ARKit/ARKitFaceDriver.swift:332`
- `.highestConfidence` source-selection mode falls back to *latest-active* — confidence is never consulted.
- Needs per-source confidence to be surfaced by the capture layer before this can be honored.
## 2. Shoulder/arm T-pose calibration (highest impact)
- `Sources/VRMMetalKit/ARKit/ARKitCoordinateConverter.swift:112`
- Shoulder offsets are **DISABLED** (`.leftShoulder/.rightShoulder = identity`) because the calibration capture was taken in A-pose, not T-pose.
- Re-capture reference offsets with the subject in T-pose and re-enable, so arm retargeting is correct.
## 3. (tracked elsewhere) Weighted body-skeleton blending
- `Sources/VRMMetalKit/ARKit/ARKitBodyDriver.swift:374` — `.weighted` mode falls back to latest-active.
- Already covered by #29; listed here only for cross-reference.
## Done when
- (1) and (2) implemented and the TODO comments removed
- ARKit driver tests cover confidence selection and T-pose-calibrated shoulder offsets
Contributor guide
Research direction
Start with the TODOs in Sources/VRMMetalKit/ARKit/ARKitFaceDriver.swift:332 and ARKitCoordinateConverter.swift:112, then inspect the capture layer and existing ARKit driver tests. Confirm how per-source confidence is exposed and how reference shoulder offsets are captured. Done means implementing the two requested behaviors, removing their TODO comments, and adding tests for confidence selection and T-pose-calibrated shoulder offsets.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- ar-vr-xr
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100