AI 뉴스

Fable이 reMarkable을 Harry Potter의 Tom Riddle 일기장으로 바꿈 — 손글씨로 답하는 LLM 일기장

노동1호 2026. 7. 8. 02:06
reMarkable Paper Pro e-ink diary handwriting
하루가 멀다 하고 새로운 LLM 활용법이 나오지만, reMarkable Paper Pro에서 돌아가는 새 앱은 색이 다르다. Tom Riddle의 호크룩스 일기장처럼, 펜으로 쓴 질문이 종이에 스며들 듯 사라지고 곧 답변 손글씨가 펜 획 단위로 다시 써지며 다시 사라진다. 이 프로젝트의 이름은 **riddle**이다. ## Tom Riddle의 일기장이 reMarkable에서 깨어나다 호그와트의 저주받은 일기장이 화면 빛도, 키보드도, 채팅 UI도 없이 종이 한 장에서만 대화를 건다. "Tom"이라고 부르는 이 인공 존재는 단순한 챗봇이 아니라, 잉크가 마르는 동안 비전 LLM이 손글씨를 읽고 답변을 문장 단위로 스트리밍해 흘려보내는 구조다. 사용자가 2.8초 동안 펜을 멈추면 페이지를 PNG로 확정하고, resident LLM 프로세스인 `oracle`이 PNG를 읽어 답변을 한 획씩 그려낸다. 그 결과는 90년대 Tony Hawk 게임처럼 묘하게 sick한 — 다시 말해, 굉장히 멋진 — 데모 영상이 된다. ## 동작 흐름: 펜 입력 → PNG 커밋 → 비전 LLM → 손글씨 스트리밍 riddle의 입력 경로는 raw `evdev` 디바이스다. 4096단계 압력과 하드웨어 이벤트의 속도를 그대로 활용해 디지타이저의 미세한 떨림까지 흡수한다. 사용자가 2.8초간 펜을 쉬면 페이지를 커밋하고 PNG로 변환한다. 이후 `oracle`이 PNG를 받아 손글씨를 읽고, 답변을 문장 단위로 끊어 스트리밍한다. 답변은 Google Fonts의 Dancing Script을 래스터화한 뒤 Zhang-Suen thinning으로 단일 픽셀 펜 경로로 만들고, 획 단위 추적과 애니메이션 재생으로 화면에 그려진다. 기기에서 첫 잉크까지의 측정 시간은 약 0.9\~1.1초이며, HTTPS는 pure-Rust로 riddle에 내장되어 있다. 표시 백엔드는 두 가지다. **qtfb**는 xochitl 내부에서 창 모드로 실행되는 AppLoad 앱이고, **quill**은 xochitl을 중지하고 vendor e-ink 엔진을 직접 구동하는 full takeover 모드다. 데모 영상에 보이는 호크룩스 효과는 quill의 결과물이다. ## LLM 백엔드: OpenAI 호환 API 또는 resident pi 답변을 생성하는 비전 LLM은 두 경로 중 하나로 시작 시 선택한다. 첫째, `RIDDLE_OPENAI_KEY`를 설정하면 OpenAI 호환 `/chat/completions` 엔드포인트로 직접 요청한다. OpenAI, OpenRouter, Groq, 로컬 서버처럼 같은 형식을 지원하는 모든 대상에서 동작한다. thinking 모델(Gemini 3.x, o-series)에서는 첫 잉크까지의 시간을 줄이기 위해 `RIDDLE_OPENAI_REASONING=low`를 설정할 수 있다. 단, non-thinking 모델에서 reasoning 필드를 거부하는 제공자도 있으므로 이 경우 설정하지 않아야 한다. 둘째, `pi` 경로다. [`pi`](https://github.com/badlogic/pi-mono)를 이미 실행 중이면 riddle은 따뜻하게 유지되는 resident `pi --mode rpc` 프로세스를 사용한다. 이 경로는 Node와 구독 인증을 한 번 로드해두고, 각 턴에서는 모델 지연시간만 지불하는 방식이다. `RIDDLE_OPENAI_KEY`가 설정되지 않았을 때 자동으로 사용된다. 두 백엔드 모두 답변을 문장 단위로 스트리밍하므로, 모델이 끝내기 전 quill이 먼저 쓰기 시작할 수 있다. ## 설치: remagic, 사전 빌드, 소스 빌드 처음 사용하는 경우 reMarkable Paper Pro를 개발자 모드로 설정하고 런처를 설치해야 한다. [`remagic`](https://github.com/maximerivest/remagic)은 개발자 모드 활성화와 환경 설정을 한 명령으로 진행하도록 안내한다. `remagic install riddle`은 체크섬 검증 다운로드 후 AppLoad에 설치하고, `remagic config riddle`은 브라우저에서 설정 폼을 열고 휴대폰용 QR도 제공한다. 이미 xovi와 AppLoad가 있으면 remagic 카탈로그, 사전 빌드 번들, 소스 빌드 중 하나로 설치할 수 있다. 사전 빌드 번들 설치는 더 간단하다. 최신 릴리스에서 `riddle-.zip`을 받아 `riddle` 폴더로 압축 해제하고, 태블릿의 `/home/root/xovi/exthome/appload/`로 복사한다. `oracle.env.example`을 `oracle.env`로 복사하고 `RIDDLE_OPENAI_KEY`에 OpenAI 호환 API 키를 넣는다. API 키를 넣지 않으면 `pi` 경로를 사용할 수 있다. AppLoad에서 Reload 후 **The Diary**를 실행하면 끝이다. ## 기기 수정과 지원 범위, 그리고 안전 가이드 riddle은 기기를 수정하며, **root**로 실행된다. takeover 모드에서는 vendor UI를 중지하고 e-ink 엔진을 직접 구동한다. 테스트된 환경은 reMarkable Paper Pro ferrari, aarch64, OS 3.26\~3.27뿐이다. 다른 모델이나 OS 버전에서는 동작하지 않을 수 있다. reMarkable AS와 관련이 없으며, 설치 전 SSH 접근이 계속 가능해야 복구 경로를 확보할 수 있다. takeover 번들은 binary, `libquill.so`, launch script, manifest를 포함한 self-contained `dist/riddle/`로 staged된다. AppLoad로 실행하면 transient systemd unit으로 분리 실행되고, xochitl을 중지한 뒤 일기장을 실행하며 종료 시 항상 xochitl을 복원한다. 문제가 생기면 SSH로 `systemctl start xochitl`을 실행해 xochitl을 다시 시작할 수 있다. ## 제스처, 종료, 라이선스 글을 쓰고 펜을 쉬게 두면 일기장이 잉크를 흡수하고 Tom이 답한다. 마커를 뒤집으면 지우개로 동작한다. 큰 **?**를 그리면 내장 가이드를 호출한다. 다섯 손가락으로 동시에 탭하면 일기장을 나간다. 전원 버튼을 누르면 페이지에 "The diary sleeps."가 표시된 뒤 태블릿이 suspend되고, 다시 누르면 같은 위치에서 깨어난다. 답변 손글씨는 Dancing Script(SIL OFL 1.1)이고, 저장소의 코드는 MIT 라이선스다. interpose 대상인 vendor `libqsgepaper.so`와 Qt 라이브러리는 포함되지 않으며, 사용자의 기기나 SDK에서 가져와야 한다. ## 전망: 로컬 모델 + e-ink의 가능성 Hacker News에서 가장 많이 나온 코멘트는 "완전 독립 로컬 모델로 만들었으면 더 인상적이었을 것"이다. llama.cpp로 로컬 실행 가능한 검열 없는 모델이 이미 돌아다니고 있지만, 문맥 창이 금방 차고 프로덕션 배포용은 아직 아니다. 다만, e-ink의 저전력 + 한 획씩 그려지는 표현력은 LLM의 답변을 보여줄 새로운 매체가 될 가능성이 있다. chat UI는 잊어라 — 종이에 잉크가 나타나는 경험이 다음 인터페이스의 후보다. > 원문: [긱뉴스 #31208](https://news.hada.io/topic?id=31208) / 저장소: [MaximeRivest/Riddle](https://github.com/MaximeRivest/Riddle)