Riddle: 将 reMarkable Paper Pro 变成 AI 驱动的日记本
Riddle: 将 reMarkable Paper Pro 变成 AI 驱动的日记本
Riddle 将 reMarkable Paper Pro 转换为交互式 AI 日记
Riddle 是一个开源应用程序,可将 reMarkable Paper Pro 转换为功能齐全的“汤姆·里德尔的日记”(Tom Riddle's diary,出自《哈利·波特》)。该系统允许用户使用笔在屏幕上书写,随后墨迹会逐渐淡去,而一个具备视觉能力的语言大模型(LLM)会以流畅的手写风格向用户写回响应。
技术架构与墨迹处理
该应用程序利用自定义流水线来处理从物理手写到 AI 生成响应的转换。该过程遵循以下特定步骤:
- 输入捕获:系统通过
evdev捕获原始笔触,具有 4,096 级压力感应,并以硬件事件速率运行。 - 提交:在停止书写 2.8 秒后,页面将被提交并转换为 PNG 图像。
- Oracle 处理:该 PNG 被发送到视觉 LLM(即“oracle”),它会逐句流式传输文本回复。
- 手写合成:文本回复使用 Dancing Script 字体进行渲染,通过 Zhang-Suen 细化算法将其骨架化为单像素笔路径,然后在显示屏上作为动画笔触重新播放。
显示后端
Riddle 支持两种不同的显示模式来管理延迟和系统集成:
- Windowed (qtfb):作为窗口化应用程序运行在
xochitl(AppLoad) 环境中。 - Takeover (quill):一种高性能模式,它会停止厂商 UI (
xochitl) 并直接驱动厂商的 e-ink 引擎 (libqsgepaper.so)。这为“即时墨迹”提供了尽可能低的延迟。
LLM 集成与 Oracle
日记的“灵魂”由具备视觉能力的 LLM 提供动力。用户可以通过两种方式配置后端:
OpenAI 兼容 API
Riddle 可以直接连接到任何 /chat/completions 端点。这包括 OpenAI、OpenRouter、Groq 或本地服务器。配置通过 oracle.env 文件进行处理,用户可以在其中定义 API key、base URL 和模型(例如 gpt-4o-mini)。对于像 Gemini 3.x 或 o-series 这样的推理模型,项目建议设置 RIDDLE_OPENAI_REASONING=low 以减少首次墨迹出现的时间。
pi 后端
如果未设置 RIDDLE_OPENAI_KEY,系统会自动尝试使用 pi(通过 pi-mono),它作为一个常驻 RPC 进程运行。这种方法通过保持 Node.js 环境和订阅身份验证处于热启动状态来降低延迟。
安装与要求
警告:此软件会修改设备并以 root 权限运行。它专门为 reMarkable Paper Pro (ferrari, aarch64, OS 3.26–3.27) 设计,使用时需自行承担风险。
前提条件
- 开发者模式:设备必须处于开发者模式并安装了启动器。
- remagic:推荐使用
remagic工具来简化开发者模式的设置和应用程序安装。
安装方法
Via remagic:最简单的方法,使用
remagic install riddle随后使用remagic config riddle进行设置。Prebuilt Bundle:用户可以下载
.zip发布包,使用 SCP 将文件夹传输到平板电脑的appload目录,并配置oracle.env文件以包含 API key。From Source:该项目可以从 x86_64 进行交叉编译。 “Takeover” 版本需要 reMarkable SDK 工具链以及从用户自己的设备中提取的专有
libqsgepaper.so库。
用户界面与手势
与日记的交互是通过物理手势而非传统的 UI 进行处理的:
- 提交:书写并停顿笔尖。
- 擦除:翻转笔尖以使用橡皮擦。
- 帮助:画一个大的问号 (?) 来召唤内置指南。
- 退出:同时用五个手指轻触屏幕。
- 睡眠/唤醒:使用电源键使设备进入待机状态;页面将显示“The diary sleeps.”,并在唤醒时准确地从用户离开的地方继续。