Skip to content

kmc6042/3drecord

Repository files navigation

FaceTracker — ARKit Blendshape UDP Streamer

iPhone의 TrueDepth 카메라로 얼굴 52개 블렌드셰이프 + 헤드 포즈를 실시간 UDP JSON으로 스트리밍하는 iOS 앱.

요구사항

  • iPhone X 이상 (TrueDepth 전면 카메라 필수)
  • iOS 17.0+
  • Xcode 15+
  • 같은 Wi-Fi 네트워크

빌드 방법

  1. FaceTracker/FaceTracker.xcodeproj Xcode에서 열기
  2. Signing & Capabilities → Team 선택
  3. PRODUCT_BUNDLE_IDENTIFIER 변경 (com.yourname.FaceTracker)
  4. iPhone 연결 후 Run

앱 사용법

  1. 앱 실행 → 카메라 권한 허용
  2. 톱니바퀴(⚙) → IP 주소/포트 입력 (수신 PC의 IP)
  3. 중앙 안테나 버튼 → 스트리밍 시작
  4. 얼굴을 카메라 앞에 두면 전송 시작

UDP 페이로드 (JSON)

{
  "timestamp": 1712345678.123,
  "blendshapes": {
    "eyeBlinkLeft": 0.02,
    "eyeBlinkRight": 0.01,
    "jawOpen": 0.45,
    "mouthSmileLeft": 0.23,
    ...
  },
  "headRotation": {
    "pitch": -0.12,
    "yaw":   0.05,
    "roll":  0.01
  },
  "headTranslation": {
    "x": 0.001,
    "y": 0.02,
    "z": -0.45
  }
}
  • 블렌드셰이프: 52개, 범위 [0.0, 1.0]
  • headRotation: Euler angles (라디안)
  • headTranslation: 미터 단위, ARKit 카메라 좌표계

Python 수신 예제

python receiver_example.py

파일 구조

FaceTracker/
├── FaceTracker.xcodeproj/
└── FaceTracker/
    ├── FaceTrackerApp.swift        # 앱 진입점
    ├── ContentView.swift           # 메인 UI (SwiftUI)
    ├── ARViewContainer.swift       # ARSCNView 래퍼 (얼굴 메시 시각화)
    ├── ARFaceSessionManager.swift  # ARKit 세션 + 델리게이트
    ├── UDPSender.swift             # Network.framework UDP 전송
    ├── BlendshapePayload.swift     # 데이터 모델 + ARFaceAnchor 변환
    ├── SettingsView.swift          # IP/포트 설정 UI
    └── Info.plist
receiver_example.py                # Python 수신 테스트 스크립트

About

3drecorder

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors