opendance-android

OpenDance Studio 阶段三:Android 辅助 App(Kotlin + MediaPipe 端侧推理)。

状态:占位仓库。按《DSH 开发文档:OpenDance Studio》的开发顺序 (Web 服务端 → Windows 客户端 → Android 辅助 App),本仓库将在阶段二 (opendance-windows)冻结 WebSocket 关键点协议后开始开发。

计划技术栈

组件 选型
语言 Kotlin
相机 CameraX (Apache 2.0)
推理 MediaPipe Pose (Apache 2.0)
通信 OkHttp WebSocket (Apache 2.0)
UI Jetpack Compose (Apache 2.0)

计划任务

T-AND-001 骨架 → T-AND-002 CameraX 采集 → T-AND-003 MediaPipe Pose 推理 → T-AND-004 33 点 → 239 字节帧序列化 → T-AND-005 WebSocket 推流 + 自动重连 → T-AND-006 连接页 + 主机发现 → T-AND-007 运行页 + 状态指示 → T-AND-008 关于页 + 开源声明 → T-AND-009 APK 打包

依赖的契约(已冻结于 opendance-web,v0.1.0)

  • contracts/websocket-keypoints.md — 239 字节关键点帧编码规则(本端为发送方)
    • 帧头 8 字节:magic(u16)=0x4F44 + version(u8)=1 + flags(u8) + frame_id(u32)
    • 33 点 × 7 字节:x(i16) y(i16) z(i16) conf(u8),小端序,归一化系数 32767
    • 文本控制帧:hello / welcome / config / stats / bye
  • contracts/skeleton-topology.md — MediaPipe 33 点顺序与坐标语义(顺序一旦冻结不得重排)
  • contracts/open-source-credits.md — 关于页必须展示的开源声明(三端共用)

契约地址:https://gitea.kasugano.cn/zijunchiang/opendance-web/src/branch/main/contracts

参考实现:opendance-web/web-server/src/preprocess/keypoint-codec.ts 中的 encodeBinaryFrame() 即本端序列化器的权威参考。

任何跨端契约变更必须先回到 opendance-web 修改 contracts/ 并提升版本, 再在本仓库创建适配任务。

关键约束

  • 仅使用 MediaPipe 33 点拓扑,不使用 SMPL(规避非商用许可限制)
  • 本端不做评分与渲染:只负责采集、端侧推理、编码、推流
  • 视频帧不离开设备,仅发送 33 个关键点
  • 发布产物必须包含关于页开源声明
S
Description
OpenDance Studio - opendance-android
Readme
5.5 MiB
2026-09-18 02:34:59 +08:00
Languages
Kotlin 77.5%
Shell 11.7%
Python 10.8%