返回项目

开源项目开源项目
Lumina
Lumina 是一款为 macOS 打造的悬浮氛围歌词舞台。它不接管音乐播放,而是读取系统正在播放的内容,把时间轴歌词变成一块可悬浮、可呼吸的视觉空间。
核心体验
- 单句歌词剧场:屏幕最多保留当前句与上一句的退场残影,不使用传统长列表滚动。
- 确定性视觉编排:歌词的位置、字级、拆行、轻度旋转、3D 字面与转场保持稳定,拖动进度或重渲染时不会跳变。
- 三种氛围背景:相册摄影、低分辨率 WebGL 着色器,以及由音频驱动的克拉德尼板。
- 悬浮桌面窗口:透明、无边框、可调整大小、默认置顶,并支持拖拽、最大化、播放控制与背景模式切换。
- 歌词匹配与同步:Rust 后台每 500ms 读取 macOS Now Playing 状态,优先匹配 LRCLIB,未命中时使用网易云公开接口兜底;前端通过 requestAnimationFrame 平滑推进播放时钟。
- 中文与字体处理:使用 OpenCC 在显示阶段转换繁体歌词,并内置 Noto Sans SC、Noto Serif SC、Anton、Oswald、Space Grotesk、Cormorant Garamond 等字体。
技术实现
项目采用 Tauri 2 + Rust + React 18 + TypeScript + Vite 构建。Rust 端负责媒体状态轮询、歌词网络请求、LRC 解析和 Tauri 事件;React 端负责歌词剧场、窗口交互、Framer Motion 转场和 WebGL 视觉。克拉德尼板模式通过 ScreenCaptureKit 获取系统混音的能量、频段和瞬态信息,再驱动视觉粒子沉积。
界面预览



运行要求
- macOS 12 或更高版本
- Rust、Node.js、pnpm
- nowplaying-cli(可通过 brew install nowplaying-cli 安装)
- 首次使用克拉德尼板模式时,需要授予屏幕录制权限
开发运行:pnpm install && pnpm tauri dev;构建 macOS 应用:pnpm tauri build。
项目状态
Lumina 当前处于 MVP 阶段,已覆盖媒体状态读取、歌词匹配、视觉场景切换和桌面悬浮交互,适合继续扩展更多播放器兼容性、歌词数据源和生成式视觉场景。
项目链接与服务
外部链接将在新标签页打开
