7d0711b3f6
Receives /body3d/kp from iPhone ARBodyTracker on the diagnostic port (57129, distinct from Python's 57128 fuse input). Plumbed through ContentView -> BodyView -> Skeleton3DRenderer so the ARKit joints can be overlayed alongside Multi-HMR mesh.
47 lines
1.8 KiB
Markdown
47 lines
1.8 KiB
Markdown
# ARBodyTracker — iPhone OSC emitter for AV-Live
|
|
|
|
Streams ARKit ARBodyAnchor joints (91 per body) over OSC/UDP to GrosMac:
|
|
|
|
- `:57128` → Python `IphoneOSCListener` in `data_only_viz/` (drives `ArkitFuse` + cam-z lock)
|
|
- `:57129` → Swift `ArkitOSCListener` in `launcher/AV-Live-Body/` (diagnostic overlay)
|
|
|
|
Optional LiDAR depth (`ARFrameSemantics.sceneDepth`) is enabled when the
|
|
device supports it (iPhone 12 Pro and later).
|
|
|
|
## Build & run
|
|
|
|
The project ships in two forms:
|
|
|
|
| Form | Path | Use when |
|
|
|------|------|----------|
|
|
| Swift Package app | `ARBodyTracker.swiftpm/` | Quick local iteration. Signing has to be set manually in Xcode each clone. |
|
|
| Xcode project (xcodegen) | `project.yml` + `Config/*.xcconfig` | Reproducible signing across machines. Generate with `xcodegen generate`. |
|
|
|
|
### First-time setup (Xcode project flavour)
|
|
|
|
```bash
|
|
brew install xcodegen # one-time
|
|
cp Config/Local.xcconfig.example Config/Local.xcconfig
|
|
# Edit Config/Local.xcconfig and set DEVELOPMENT_TEAM to your Apple Developer Team ID.
|
|
xcodegen generate # writes ARBodyTracker.xcodeproj
|
|
open ARBodyTracker.xcodeproj
|
|
```
|
|
|
|
The generated `ARBodyTracker.xcodeproj/` is gitignored — regenerate any
|
|
time `project.yml` or sources change.
|
|
|
|
### Updating
|
|
|
|
Add Swift sources under `ARBodyTracker.swiftpm/Sources/ARBodyTracker/`,
|
|
then `xcodegen generate` to refresh the project. Both the swiftpm form
|
|
and the xcodeproj reference the same source tree.
|
|
|
|
## Signing
|
|
|
|
`Config/Local.xcconfig` (gitignored) holds `DEVELOPMENT_TEAM`.
|
|
`Config/Shared.xcconfig` (committed) pulls it via `#include?`, falling
|
|
back to no team if the local file is missing — the build will then
|
|
fail with the familiar "executable is not codesigned" error, which is
|
|
the correct signal that the developer needs to provision their own
|
|
team ID before deploying to a device.
|