ARBodyTracker — iPhone OSC emitter for AV-Live
Streams ARKit ARBodyAnchor joints (91 per body) over OSC/UDP to GrosMac:
:57128→ PythonIphoneOSCListenerindata_only_viz/(drivesArkitFuse+ cam-z lock):57129→ SwiftArkitOSCListenerinlauncher/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)
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.