- Create
TODO.md - Dependency Management:
- Analyze Python imports in
game/AvatarStream/scripts/python/holistic_tracker.py - Update
game/AvatarStream/scripts/python/requirements.txt(includeopencv-python,mediapipe,pyvirtualcam)
- Analyze Python imports in
- Unified Launcher (
run.py):- Create
run.pyat the root - Detect OS (Windows/Linux/Mac)
- Verify dependencies are installed
- Launch Python tracking script in background
- Launch Godot executable (configurable via
.envor args) - Gracefully kill processes on exit
- Create
- Modify Godot Project:
- Create script to capture
Viewporttexture - Send frame data back to Python (UDP/TCP)
- Create script to capture
- Update Python Script:
- Integrate
pyvirtualcam - Add listener thread for Godot frames
- Push frames to virtual camera
- Integrate
- Mobile Logic:
- Add
OS.get_name()check in Godot - Disable frame-sending logic on Android/iOS
- Add
- Documentation:
- Update
README.mdwithrun.pyinstructions - Add setup notes for Windows (OBS) and Linux (v4l2loopback)
- Update
- Performance:
- Switch Pose Data from JSON to Binary (UDP) in
holistic_tracker.pyandMediaPipeBridge.gd(~80% size reduction) - Switch Video Stream from MJPEG to Raw RGB (TCP) in
VirtualCameraSender.gdandholistic_tracker.py(Eliminate encode/decode CPU cost)
- Switch Pose Data from JSON to Binary (UDP) in
- Setup & UX:
- Auto-install Python dependencies in
run.pyif missing - Fix double-launch bug: Godot no longer launches Python if
run.pyalready did (viaAVATARSTREAM_LAUNCHED_BY_RUNNERenv var)
- Auto-install Python dependencies in
- Quality:
- Add protocol unit tests (
game/AvatarStream/scripts/python/tests/test_protocol.py)
- Add protocol unit tests (