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 生成响应的转换。该过程遵循以下特定步骤:

  1. 输入捕获:系统通过 evdev 捕获原始笔触,具有 4,096 级压力感应,并以硬件事件速率运行。
  2. 提交:在停止书写 2.8 秒后,页面将被提交并转换为 PNG 图像。
  3. Oracle 处理:该 PNG 被发送到视觉 LLM(即“oracle”),它会逐句流式传输文本回复。
  4. 手写合成:文本回复使用 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.”,并在唤醒时准确地从用户离开的地方继续。

Sources