- BLE: 修复 BlueZ LocalName 与 Includes 冲突,串行注册与退避 - HTTP: 语音对话补 Live2D talking 标志与 session;Web 补 X-Session-Id - Flutter: 角色/对话/模型页 + API,Gradle/依赖升级,麦克风权限 - 文档: 新增 docs/STATUS.md,校准 CLAUDE/PROGRESS/README - 清理: 移除根目录截图与临时模型,运维脚本迁入 scripts/device
ShowenV2 — 数字生命窗口平台
基于 Rust 的跨平台插件微内核架构,支持全息/VR/AR/屏幕显示,承载虚拟宠物、数字人、AI 歌姬、3D 模型等数字生命内容。
架构概览
ShowenV2/
├── CLAUDE.md / docs/STATUS.md # 管理手册 · 功能成熟度板
├── src/
│ ├── core/ # 插件微内核(消息/配置/动态插件/版本)
│ └── plugins/ # video · http · ble · wifi · device · screen · live2d · ai
├── configs/ # 角色内容包 JSON
├── clients/flutter/ # 安卓控制 App(M1 遥控 + M2.1 对话骨架)
├── scripts/device/ # 设备运维脚本
├── plugin-sdk/ · plugins/ # 动态插件 SDK 与示例
├── tests/ # M1.2 集成测试
└── docs/ # PRD / 测试计划 / STATUS
功能做到哪了:请先读 docs/STATUS.md,勿仅看提交日期。
技术栈
- 语言: Rust (edition 2021)
- 视频: OpenCV 0.66
- HTTP: warp + tokio
- BLE: D-Bus + BlueZ (GATT)
- WiFi: nmcli
- 插件加载: libloading
- 远程仓库: ureq + flate2 + tar
动态插件系统
ShowenV2 支持两种插件模式:
- 静态插件 — 编译时链接(video, http, ble, wifi, device, screen, live2d, ai 等)
- 动态插件 — 运行时加载
.so文件,通过extern "C"FFI + JSON 序列化通信
动态插件特性:
- 多版本管理 (
plugin_store/目录结构) - 远程仓库下载安装 (HTTP + tar.gz)
- 错误自动回退 (AutoRollback / DisableAndLog)
- REST API 管理 (
/api/plugins/*)
快速开始
# 验证配置
cargo run -- --validate --config configs/dog_state_machine.json
# 运行
cargo run -- --config configs/dog_state_machine.json
# 测试
cargo test --workspace
硬件与平台定位
- 平台定位: ShowenV2 是通用数字生命窗口平台,不局限于“全息宠物播放器”
- 分辨率支持: 支持 8K 以内所有分辨率显示
- 显示类型: 支持 AR、VR、XR、普通屏幕、全息显示、投影、LED 矩阵,以及任何可运行的显示设备
- 当前调试环境: Debian 11 KDE 桌面 (
ARM64/aarch64) - 跨平台策略: 当前以 Linux/ARM64 为主,架构已为扩展到其他平台预留空间
Description
Languages
Rust
72.7%
Dart
24.1%
HTML
2.2%
Shell
0.8%
Java
0.2%