Rust · 项目报告

MaximeRivest/riddle

The diary of Tom Riddle for the reMarkable Paper Pro — write with your pen, the page drinks your ink and answers in a flowing hand

已完成 打开 GitHub
M
1,389星标
116Fork
18Issue
MIT许可证

分析结果

项目分析

riddle 是一个面向 reMarkable Paper Pro 的沉浸式“AI 日记”应用。用户用手写笔在电子纸上书写,应用在短暂停顿后识别整页手写内容,将页面 PNG 发送给支持视觉能力的 LLM,然后以仿手写笔迹逐笔写回回复。项目主要使用 Rust 开发,并包含 C/C++ 的底层显示接管组件 quill,可在 reMarkable Paper Pro 上实现低延迟电子墨水书写体验。

适用领域 电子纸设备应用 / 手写交互 / AI 聊天与视觉大模型 / 嵌入式 Linux / Rust 桌面/设备端开发 / reMarkable 生态 / 人机交互 / 创意 AI 应用
配置难度 较高。对于只安装预构建 AppLoad 包的用户,难度中等,需要会开启开发者模式、使用 SSH/SCP、配置 API Key;对于从源码构建或使用 takeover 模式的开发者,难度较高,需要 Rust 交叉编译、嵌入式 Linux、reMarkable SDK、systemd、底层显示库和设备恢复经验。
商业价值 该项目本身更像高创意、高展示价值的实验性产品,而不是直接面向大规模商业化的成熟应用。它的商业价值主要体现在三个方向:第一,验证电子纸设备上的自然手写 AI 交互范式,可用于 AI 日记、教育陪伴、写作辅助、心理反思、创意游戏等场景;第二,为 reMarkable 生态开发者提供低延迟笔迹、视觉 LLM、电子墨水动画回复的技术参考;第三,可作为品牌展示、交互原型或高端 AI 硬件体验 demo。限制在于设备型号小众、安装门槛高、系统兼容风险和隐私合规要求较强,因此短期更适合作为开发者工具、研究原型或小众高级用户应用。
01

技术亮点

  • 交互体验非常独特:没有传统聊天 UI,用户只是在纸面上手写,页面像“喝掉墨水”后自动写回回复。
  • 支持 vision LLM 读取整页手写内容,而不是依赖键盘输入。
  • 回复会通过 Dancing Script 字体生成笔迹,并经过骨架化和路径追踪,以逐笔动画形式显示。
  • 支持 OpenAI-compatible API,理论上可接入 OpenAI、OpenRouter、Groq 或本地兼容服务。
  • 支持 pi 后端,可保持常驻进程,减少每轮调用的冷启动开销。
  • Rust 实现主体应用,包含笔输入、墨水画布、手写合成、oracle 进程管理和显示后端。
  • 提供 qtfb 窗口模式,适合 AppLoad 用户较容易安装使用。
  • 提供 quill takeover 模式,可停止厂商 UI 并直接驱动电子纸引擎,实现更低延迟的即时墨水体验。
  • 包含明确的手势设计:翻转笔擦除、画大问号显示指南、五指触摸退出、电源键休眠与唤醒。
  • MIT 许可证,便于开发者学习、修改和二次开发。
02

目标用户

  • 拥有 reMarkable Paper Pro 且愿意开启开发者模式的高级用户
  • 喜欢无键盘、无传统聊天界面的 AI 写作/对话体验的用户
  • 研究电子纸交互和手写输入的开发者
  • Rust、嵌入式 Linux、reMarkable 应用开发者
  • 希望构建沉浸式 AI 笔记、日记、教育或创作工具的产品开发者
03

配置要求

  • 硬件:已测试设备为 reMarkable Paper Pro,代号 ferrari,aarch64。
  • 系统版本:README 中说明已测试 OS 3.26–3.27,其他版本可能不兼容。
  • 设备需开启 developer mode,并保持 SSH 可用,SSH 是出现问题时恢复设备的关键通道。
  • 运行环境需要 xovi + AppLoad,或者使用 remagic 辅助安装。
  • OpenAI 兼容模式需要设置 RIDDLE_OPENAI_KEY。
  • 可选环境变量包括 RIDDLE_OPENAI_BASE,默认 https://api.openai.com/v1。
  • 可选环境变量包括 RIDDLE_OPENAI_MODEL,默认 gpt-4o-mini,但模型必须支持图像输入。
  • 也可使用 OpenRouter、Groq、本地 OpenAI-compatible server 等兼容 /chat/completions 格式的服务。
  • 如果不设置 RIDDLE_OPENAI_KEY,应用会尝试使用 pi --mode rpc 作为后端,需要额外安装和认证 pi。
  • takeover 模式需要 reMarkable SDK toolchain,例如 ~/rm-sdk-3.26。
  • takeover 模式需要从用户自己的设备中提取 proprietary libqsgepaper.so,仓库不分发该库。
  • 应用可能以 root 运行,并在 takeover 模式下停止 xochitl、直接驱动电子墨水显示引擎。
04

适用场景

  • 在 reMarkable Paper Pro 上通过自然手写方式与 AI 对话
  • 把电子纸设备变成带有角色人格的 AI 日记本
  • 探索无屏幕感、无键盘、无传统聊天框的 AI 交互范式
  • 测试视觉大模型对手写内容的理解能力
  • 开发电子墨水设备上的低延迟笔迹渲染与动画回复
  • 作为 reMarkable Paper Pro 底层显示接管和 evdev 手写输入处理的参考项目
05

部署与配置

  • 准备一台 reMarkable Paper Pro,并开启 developer mode。
  • 安装 xovi + AppLoad;如果不熟悉流程,可先使用作者的 remagic 工具完成开发者模式和环境设置。
  • 从 GitHub Releases 下载最新的 riddle-appload-aarch64.zip。
  • 解压后将 riddle 文件夹复制到设备:scp -O -r riddle root@10.11.99.1:/home/root/xovi/exthome/appload/。
  • 进入设备上的 riddle 文件夹,复制 oracle.env.example 为 oracle.env,并填入 RIDDLE_OPENAI_KEY;如果不使用 OpenAI 兼容接口,也可以配置 pi 后端。
  • 在 AppLoad 中点击 Reload,然后启动 The Diary。
  • 启动后直接用笔书写,停笔约数秒后应用会提交页面并等待 AI 回复。
  • 如果从源码构建窗口模式版本,在 riddle 目录执行 cargo build --release --target aarch64-unknown-linux-gnu,并配合 external.manifest.json、appload-launch.sh 部署到 AppLoad 目录。
  • 如果构建 takeover 低延迟版本,需要 reMarkable SDK toolchain、从自己设备提取的 libqsgepaper.so,先在 quill 目录执行 ./build.sh,再在 riddle 目录执行 ./build-takeover.sh,并按 README 部署 libquill.so 和 riddle-takeover。
06

风险与注意事项

  • 项目会修改设备运行环境,且可能以 root 权限运行,存在设备异常、系统 UI 无法恢复等风险。
  • takeover 模式会停止 reMarkable 原生 xochitl UI,并直接操作电子墨水显示引擎,对普通用户风险较高。
  • 仅在 reMarkable Paper Pro ferrari aarch64 OS 3.26–3.27 上测试,其他型号或系统版本可能无法运行。
  • 依赖开发者模式和 SSH,如果 SSH 配置错误或丢失,故障恢复难度会明显增加。
  • LLM 请求可能上传用户手写页面 PNG,涉及隐私与数据合规风险,尤其是日记、笔记等敏感内容。
  • OpenAI-compatible API 调用会产生费用,并受网络质量、模型可用性和服务商策略影响。
  • 项目依赖 proprietary vendor library libqsgepaper.so,但仓库不分发,需要用户自行从设备或 SDK 提取。
  • takeover 构建过程涉及 reMarkable SDK、交叉编译、系统库兼容,维护成本较高。
  • AI 回复质量取决于视觉模型对手写内容的识别能力,潦草字迹、语言混合或页面复杂内容可能影响效果。
  • 项目带有明显的实验性质和演示属性,不一定适合作为稳定生产环境应用。

历史记录

热榜历史快照

2026-07-12 第3名 新收录 · github_search
2026-07-11 第5名 新收录 · github_search
2026-07-10 第7名 新收录 · github_search
2026-07-09 第7名 新收录 · github_search
2026-07-08 第5名 新收录 · github_search
2026-07-07 第20名 新收录 · github_search