欢迎回来
登录你的知识库账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属知识库
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 JPG/PNG,最大 2MB
取消

问题反馈

notebasewww.notebase.cn
控制台
内容库
动态
管理
账户
U
用户
--
在线
v0.8.7 · 知识库
笔记
KnowledgeBase
网络无边,知识有迹。
0笔记
0工具
30推荐

分类导航

按主题直达

编辑精选

站内用户贡献 · 真实笔记

最新收录

每日更新
继续浏览全部内容 →
>
笔记
0
加载中...
工具
0
此页用于记录用户反馈问题后的每一次改进
笔记用法

“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。

md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。

要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。

工具用法

在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。

要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。

工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。

隐藏笔记

写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。

适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。

数据安全

你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。

技术

全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。

理念

这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。

原则

不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。

更多

产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。

举报

如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。

趋势
// 点击导航加载发现
归档
// 归档为空
最近浏览
// 暂无浏览记录
发布
// 加载中...
用户发布
// 加载中...
用户管理
// 加载中...
访问统计
// 加载中...
内容审核
// 加载中...
个人信息
// 加载中...
返回首页

里德尔日记:用 reMarkable Paper Pro 复现《哈利·波特》中的魔法笔记本

2026/7/7编程开发

本文介绍了一个开源项目,它让 reMarkable Paper Pro 电子纸平板模拟《哈利·波特》中汤姆·里德尔的日记——手写笔迹被“喝掉”后,AI 会以手写体自动回复。

项目背景与灵感

如果你看过《哈利·波特》,一定记得汤姆·里德尔的日记——一本会吞噬墨水、自动回复的魔法笔记本。现在,开发者 MaximeRivest 用 reMarkable Paper Pro(一款专为手写设计的电子纸平板)和 AI 技术,把这个魔法变成了现实。项目名为 Riddle,完全开源,托管在 GitHub 上。

核心体验:你用电容笔在屏幕上写字,停顿约 2.8 秒后,笔迹像被纸张吸收一样逐渐淡出,然后页面“思考”片刻,接着自动生成一段手写体回复——笔画一笔一笔出现,就像有人在纸上写字。没有屏幕发光、没有键盘、没有聊天界面,只有墨水在纸上浮现的幻觉。

技术架构概览

Riddle 是一个 Rust 应用程序,运行在 reMarkable Paper Pro(型号 ferrari,aarch64 架构,OS 3.26–3.27)上。它的工作流程可以简化为:

  1. 笔迹采集:通过 Linux 的 evdev 接口直接读取笔的原始输入,支持 4096 级压感,以硬件事件速率捕获。
  2. 触发识别:当用户停止书写超过 2.8 秒(可配置空闲时间),系统自动将当前页面提交为 PNG 图片。
  3. AI 推理:将 PNG 图片发送给一个常驻的 LLM 进程(称为“oracle”——日记中的“灵魂”),LLM 识别手写内容并生成回复文本,以句子为单位流式返回。
  4. 手写合成:将回复文本通过 Dancing Script 字体渲染,再经过 Zhang-Suen 细化算法(骨架化)提取单像素笔迹路径,最后以动画形式逐笔回放。
  5. 显示渲染:通过两种后端之一将最终笔迹呈现在电子墨水屏上。

两种显示后端

1. qtfb(窗口模式)

  • 作为 xochitl(reMarkable 的官方应用框架)内的一个 AppLoad 应用运行。
  • 在现有 UI 上叠加一个窗口,适合不想完全接管设备的用户。
  • 延迟略高,但安装简单。

2. quill(完全接管模式)—— 演示中的版本

  • 停止 xochitl,直接驱动 vendor 的电子墨水引擎(通过 libqsgepaper.so)。
  • 通过 C ABI 暴露三个函数:quill_init、quill_buffer、quill_swap。
  • 这是延迟最低的方案——墨水几乎瞬间出现,就像魔法一样。
  • 底层原理:使用 epfb-re 风格的 QImage 构造器插桩(interposition shim)来劫持 Qt 的图像渲染,直接发送波形更新到屏幕。

“Oracle”:日记中的灵魂

Oracle 是一个常驻的 LLM 进程,负责读取提交的页面 PNG 并生成回复。支持两种后端:

Option A:任何兼容 OpenAI 的 API(最简单,零额外软件)

  • 设置环境变量 RIDDLE_OPENAI_KEY 即可连接 OpenAI、OpenRouter、Groq 或本地服务器。
  • 必须使用支持视觉(vision)的模型,例如 gpt-4o-mini。
  • 可选配置:
    • RIDDLE_OPENAI_BASE:API 端点(默认 https://api.openai.com/v1)
    • RIDDLE_OPENAI_MODEL:模型名称(必须能处理图片)
    • RIDDLE_OPENAI_REASONING:仅用于推理模型(如 Gemini 3.x、o-series),设为 low 可加快首次回复速度
    • RIDDLE_OPENAI_MAX_TOKENS:最大 token 数,建议设大一些(如 2000),因为隐藏的推理 token 也可能消耗配额
  • 实测首次墨水出现延迟约 0.9–1.1 秒(从提交页面到第一笔出现)。
  • 可以通过 riddle --oracle-test path/to/handwriting.png 验证配置。

Option B:pi(本地推理路径)

  • 如果用户已在设备上运行 pi(一个本地 LLM 推理引擎),Riddle 会自动使用其 RPC 模式。
  • pi 进程保持常驻,Node 运行时和模型加载一次完成,每次对话只付推理延迟。
  • 无需设置 RIDDLE_OPENAI_KEY。

两种后端都支持流式回复——LLM 逐句返回文本,quill 在模型完成前就开始书写,进一步减少等待感。

安装指南

前提条件

  • reMarkable Paper Pro(型号 ferrari)处于开发者模式。
  • 已安装 launcher(推荐使用 remagic 工具一键设置)。
  • 保持 SSH 访问通畅——这是你的“逃生舱”。

方法一:使用 remagic(最简单)

bash
remagic install riddle # 校验和验证的下载 → 自动安装到 AppLoad
remagic config riddle # 在浏览器中打开配置表单(含手机二维码)

然后在 AppLoad 中点击“Reload”,再点击“The Diary”即可启动。

方法二:手动安装预构建包

  1. 从最新 release 下载 riddle-<version>.zip。
  2. 解压到本地:unzip riddle-*.zip -d riddle
  3. 复制到平板:scp -O -r riddle root@10.11.99.1:/home/root/xovi/exthome/appload/
  4. 添加 API 密钥:在文件夹内复制 oracle.env.example 为 oracle.env,填入 RIDDLE_OPENAI_KEY。
  5. 在 AppLoad 中刷新并启动。

方法三:从源码构建

窗口模式(qtfb):
bash
cd riddle
cargo build --release --target aarch64-unknown-linux-gnu

然后将 binary、external.manifest.json、appload-launch.sh 一起放入平板的 /home/root/xovi/exthome/appload/riddle/ 目录。

完全接管模式(quill)—— 需要 reMarkable SDK 工具链(~/rm-sdk-3.26):
bash
cd quill && ./build.sh # 从设备通过 SSH 拉取 libqsgepaper.so,构建 libquill.so + 演示程序
cd ../riddle && ./build-takeover.sh
./scripts/make-bundle.sh # 打包为 AppLoad bundle

将生成的 dist/riddle/ 目录复制到平板的 AppLoad 目录。

重要:启动脚本 appload-launch.sh 会:

  • 创建一个 transient systemd 单元
  • 停止 xochitl
  • 运行日记应用
  • 退出时(按电源键、五指点击或收到 SIGTERM)自动恢复 xochitl
  • 如果卡死:ssh root@10.11.99.1 'systemctl start xochitl'

手势操作

操作 效果
书写后停笔 日记“喝掉”墨水,Tom 回复
翻转触控笔 擦除
画一个大问号 召唤内置指南
五指同时点击 退出日记
电源键 页面变为“日记睡着了”,平板挂起;再按电源键从原处唤醒

字体与许可

  • 回复手写体使用 Dancing Script(SIL Open Font License 1.1)。
  • 项目代码全部使用 MIT 许可证。
  • 依赖的 vendor 库(libqsgepaper.so、Qt)不包含在仓库中,必须从用户自己的设备或 SDK 获取。

技术亮点与深度解析

手写合成管道

  1. 栅格化:将 LLM 返回的文本用 Dancing Script 字体渲染为位图。
  2. 骨架化:使用 Zhang-Suen 细化算法将粗笔画缩减为单像素宽的骨架。
  3. 路径追踪:从骨架中提取连续笔迹路径。
  4. 动画回放:按路径顺序逐像素绘制,模拟真实书写过程。

低延迟设计

  • 笔输入直接通过 evdev 读取,绕过高层的 Qt 事件循环。
  • quill 后端直接驱动电子墨水引擎,跳过 xochitl 的渲染管线。
  • LLM 回复采用流式输出,第一笔在模型完成前就开始绘制。

安全与风险

  • 项目以 root 权限运行,会停止官方 UI(takeover 模式),直接操作硬件。
  • 仅测试于 reMarkable Paper Pro(ferrari,OS 3.26–3.27),不保证其他型号或系统版本兼容。
  • 与 reMarkable AS 无关,使用风险自负。

总结

Riddle 项目巧妙地将 AI 对话、手写识别、笔迹合成与电子墨水硬件的低延迟特性结合在一起,创造了一个令人惊叹的体验——它不仅是技术演示,更是对“魔法”的现代诠释。对于 reMarkable 用户来说,这是极客精神的最佳体现:用代码给冰冷的电子纸注入灵魂。

原文链接:https://github.com/MaximeRivest/Riddle

编写使用方法
Markdown 格式 · Ctrl+Enter 确定
新建笔记
预览
数据表格
点击单元格编辑 · Tab 移动
A1fx
Sheet1
BIH1H2≡🔗</>
隐私提醒

取消
编辑工具
取消