Riddle: 將 reMarkable Paper Pro 變成 AI 驅動的日記
Riddle: 將 reMarkable Paper Pro 變成 AI 驅動的日記
Riddle 將 reMarkable Paper Pro 轉化為互動式 AI 日記
Riddle 是一個開源應用程式,可將 reMarkable Paper Pro 轉換為《哈利波特》中功能齊全的「湯姆·瑞斗的日記」。該系統允許使用者透過筆寫在螢幕上,隨後墨水會淡去,並由具備視覺能力的語言模型 (LLM) 以流暢的手寫風格寫回回應給使用者。
技術架構與墨水處理
該應用程式利用自定義管線來處理從實體手寫到 AI 生成回應的轉換。處理流程遵循以下特定步驟:
- 輸入擷取:系統透過
evdev以硬體事件速率擷取具有 4,096 級壓感的原始筆觸。 - 提交:在停止書寫 2.8 秒後,頁面會被提交並轉換為 PNG 圖片。
- Oracle 處理:此 PNG 會被傳送到具備視覺能力的 LLM(即「oracle」),該模型會逐句串流傳回文字回應。
- 手寫合成:文字回應會使用 Dancing Script 字體進行渲染,透過 Zhang-Suen thinning 演算法進行單像素筆觸骨架化,然後作為動畫筆觸在顯示器上重播。
顯示後端
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) 設計的,使用風險自負。
前置需求
- 開發者模式:裝置必須處於開發者模式並已安裝啟動器 (launcher)。
- remagic:建議使用
remagic工具來簡化開發者模式的設定與應用程式安裝。
安裝方法
- 透過 remagic:最簡單的方法,使用
remagic install riddle接著使用remagic config riddle進行設定。 - 預建套件 (Prebuilt Bundle):使用者可以下載
.zip版本,將資料夾透過 SCP 傳送到平板電腦的appload目錄,並使用 API key 配置oracle.env檔案。 - 從原始碼安裝:專案可以從 x86_64 進行交叉編譯。 「Takeover」版本需要 reMarkable SDK 工具鏈以及從使用者自有裝置中提取的專有
libqsgepaper.so函式庫。
使用者介面與手勢
與日記的互動是透過實體手勢而非傳統 UI 進行處理:
提交:書寫後停筆。
Erase:將筆翻轉過來使用橡皮擦。
Help:畫一個大的問號 (?) 以召喚內建指南。
Exit:同時用五根手指輕觸螢幕。
Sleep/Wake:使用電源鍵使裝置進入休眠;頁面會顯示「The diary sleeps.」並在喚醒時準確地從使用者離開的地方恢復。