6.8 KiB
6.8 KiB
ShowenV2 — 数字生命窗口平台
愿景
ShowenV2 不仅是全息宠物播放器,而是一个通用数字生命窗口平台。
支持的显示模式:
- 全息显示 — 适配半透镜、全息柜等显示方案
- VR — 头显输出
- AR — 增强现实叠加
- XR — 融合现实与空间计算设备
- 直接屏幕 — 普通显示器、手机、平板等屏幕
- 投影/LED 矩阵 — 投影设备、LED 点阵与其他非常规显示终端
支持的内容类型:
- 宠物动画 — 视频状态机驱动的虚拟宠物(当前核心)
- 3D 模型 — 实时渲染 3D 角色/物体
- 数字人 — AI 驱动的虚拟形象
- AI 歌姬 — 人工歌姬/虚拟歌手
- 未来内容 — 通过插件无限扩展
核心理念:平台不关心内容是什么,插件决定一切。
项目信息
- 旧项目:
/home/showen/Showen/hologram_player_rust/(单体全息宠物播放器) - 新项目:
/home/showen/Showen/ShowenV2/ - 架构: 跨平台插件内核 + 功能插件
- 当前调试环境: Debian 11 KDE 桌面 (
ARM64/aarch64) - 当前主平台: Linux/ARM64(架构支持扩展到其他平台)
- 团队: CEO(Claude Opus 4.6) + 4名开发者(GPT-5.4 via kilo)
完成进度
✅ 已完成
| # | 提交 | 内容 | 负责人 |
|---|---|---|---|
| 1 | 23f4d46 |
项目骨架:Cargo.toml, core/ 骨架, plugins/ 空桩 | CEO |
| 2 | 3751c23 |
团队制度:末位淘汰 + 灵魂保存机制 | CEO |
| 3 | 311e4ba |
CEO 灵魂文件 + souls/ 目录 | CEO |
| 4 | 3654af5 |
config验证 + StateMachine + WifiPlugin + ScreenPlugin | 全员 |
| 5 | 650d98c |
全员灵魂文件解锁 + 沟通板 | CEO |
| 6 | 8ed9c93 |
BLE/WiFi 状态回传 + WebSocket 编译修复 | 全员 |
| 7 | 45c0a8d |
Video 单元测试 + on_video_completed 逻辑修复 | 全员 |
| 8 | 404196f |
插件架构审查报告 | 王思远 |
| 9 | 6048831 |
新旧功能差异分析 | 李明哲 |
| 10 | 5af7fc1 |
core 集成测试 + bug修复 + API文档重写 + HTTP兼容路由 | CEO+全员 |
| 11 | 4edbd34 |
ConfigReloadRequest 闭环(P0消除) | CEO |
✅ 第四轮 Opus 团队 (全部完成)
| # | 提交 | 内容 | 负责人 |
|---|---|---|---|
| 12 | 9daf65d |
暂停时释放防息屏锁 | 赵雨薇 |
| 13 | 6ca5992 |
/api/playlist 快照语义 | 李思琪 |
| 14 | e45573f |
FreeMode 状态随机游走 | 张明远 |
| 15 | 7091008 |
BLE GATT notify 落地验证 | 王浩然 |
| 16 | c48340d |
插件依赖回归测试 (7 tests) | 周雅婷 |
| 17 | ff9c6a9 |
QA Release 编译与质量报告 | 林晓峰 |
✅ 实机运行验证 (CEO)
| 验证项 | 结果 |
|---|---|
| 配置路径修复 | ../ → ../../ (configs/ 子目录修正) |
--validate |
21 个视频路径全部有效 |
| 插件初始化 | 5/5 插件全部正常 start |
| HTTP API | /api/status、/api/playlist 正常返回 JSON |
| framebuffer | 检测到 fb0 480x800 |
| GTK backend | SSH 环境无 DISPLAY 预期报错,实机 X session 无此问题 |
✅ M1.1 完成
- cargo check: 零 warning
- cargo test: 59/59 通过
- cargo build --release: 9.4MB ARM aarch64
- 实机启动: 通过 (SSH 无 GTK 是预期限制)
- 动态插件系统:6 阶段完成
- 插件自测机制:已实现 (
capabilities + self_test + init→test→start)
✅ 最新进展追加
| # | 提交 | 内容 | 负责人 |
|---|---|---|---|
| 18 | 7135f28 |
动态插件系统 6 阶段完成 | 全员 |
| 19 | 1863efb |
修正 souls/README.md 团队成员信息 |
CEO |
| 20 | 待提交 |
插件自测机制:capabilities + self_test + 3阶段启动 | 全员 |
架构概览
┌─────────────────────────────────────────────────────┐
│ main.rs │
│ 加载配置 → 按平台注册插件 → ServiceManager.run() │
├─────────────────────────────────────────────────────┤
│ core/ (跨平台内核,零业务逻辑) │
│ ServiceManager — 插件注册/生命周期/消息路由 │
│ Plugin trait — 统一插件接口 │
│ Message enum — 类型安全的消息协议 │
│ Config — 配置解析/验证(纯 serde) │
├─────────────────────────────────────────────────────┤
│ 动态插件层 (FFI Loader / Runtime / Self-Test) │
│ plugin_store/ — 动态插件存储、发现、版本载入 │
├─────────────────────────────────────────────────────┤
│ plugins/ (一切皆插件) │
│ video/ screen/ http/ ble/ wifi/ │
│ (未来: render/ avatar/ vr/ ar/ voice/ ai/ singer/) │
└─────────────────────────────────────────────────────┘
关键决策记录
- Rust edition 2018 — 兼容 ARM 设备 stable toolchain
- std::sync::mpsc 消息传递 — VideoPlugin 在阻塞线程运行
- BLE 双连接修复 — conn_server 处理回调, conn_client 同步注册
- Message Clone — 第二轮给 Message 实现 Clone 以支持 Broadcast
- 团队通过文件沟通 — TEAM_CHAT.md 异步协作,souls/ 持久化成员状态
- kilo 调用方式 —
kilo run -m openai/gpt-5.4 --auto --dir <dir> "消息内容",不使用-f参数 - 动态插件 C FFI + JSON 序列化 — 以稳定 ABI + JSON 边界承载跨语言插件交互
- ctx-based SendCallback — 用上下文回调替代
thread_local,消除线程绑定隐患 - 3阶段启动 — 插件生命周期统一为
init -> test -> start,先自检再对外服务
团队绩效 (Phase 1 第一轮)
| 成员 | 任务 | 质量 | 完成度 | 效率 | 协作 | 总分 |
|---|---|---|---|---|---|---|
| 张明远 | config.rs 验证 | 8 | 8 | 8 | 8 | 8 |
| 李思琪 | state_machine.rs | 8 | 8 | 8 | 8 | 8 |
| 王浩然 | wifi/mod.rs | 8 | 8 | 8 | 8 | 8 |
| 赵雨薇 | screen/mod.rs | 8 | 8 | 8 | 8 | 8 |
当前质量快照
- 测试总数:62
- 测试结果:62/62 通过
- 编译告警:0 warning
- 当前里程碑:M1.1 完成,P0 全清
- P0 #3 AutoRollback 回退:已修复(张明远)
- P0 #4 ConfigReloaded serde:已修复(李思琪)
- P0 #5 FfiString 跨 allocator:已修复(王浩然)