reMarkable이 '톰 리들의 일기장'이 되다 — 손글씨로 대화하는 e-ink 앱 riddle

핵심 요약
해리 포터에 나오는 톰 리들의 일기장을 기억하시나요? 글을 쓰면 잉크가 종이에 스며들 듯 사라지고, 잠시 뒤 누군가의 손글씨로 답장이 떠오르는 마법의 일기장 말입니다. riddle은 그 경험을 reMarkable Paper Pro 위에 실제로 구현한 오픈소스 앱입니다.
- 펜으로 글을 쓰고 2.8초간 멈추면 페이지가 PNG로 캡처됩니다
- 비전 LLM이 손글씨를 읽고, 답변을 문장 단위로 스트리밍합니다
- 답변은 필기체 폰트(Dancing Script)를 획 단위 펜 경로로 변환해, 실제로 누군가 쓰는 것처럼 애니메이션으로 그려집니다
- 화면 빛도, 키보드도, 채팅 UI도 없습니다. 오직 '종이에 잉크가 나타나는 경험'만을 목표로 합니다
어떻게 동작할까?
내부 구조가 꽤 진지합니다. 펜 입력은 raw evdev로 직접 받아 4096단계 압력과 하드웨어 이벤트 속도를 그대로 활용합니다. 사용자가 쓰기를 멈추면 페이지를 커밋해 PNG로 만들고, oracle이라는 상주 LLM 프로세스가 이미지를 읽어 답변을 생성합니다.
답변 렌더링 과정이 특히 재미있습니다.
- Dancing Script 폰트를 래스터화
- Zhang-Suen thinning 알고리즘으로 단일 픽셀 펜 경로 추출
- 획을 추적해 손으로 쓰는 듯한 애니메이션으로 재생
표시 백엔드는 두 가지입니다. qtfb는 기본 UI(xochitl) 안에서 창 모드로 도는 방식이고, quill은 xochitl을 아예 중지하고 vendor e-ink 엔진을 직접 구동하는 풀 테이크오버 모드입니다. 데모에 쓰인 건 후자로, C/C++로 짠 별도 display host가 vendor 라이브러리 위에 shim을 얹어 동작합니다. 본체 앱은 Rust로 작성됐습니다.
설치 방법
가장 쉬운 경로는 remagic입니다.
remagic install riddle # 체크섬 검증 후 AppLoad에 설치
remagic config riddle # 브라우저 설정 폼 + QR 제공
이미 xovi와 AppLoad를 쓰고 있다면 사전 빌드 번들을 /home/root/xovi/exthome/appload/에 풀어 넣고, oracle.env에 OpenAI 호환 API 키(RIDDLE_OPENAI_KEY)만 넣으면 됩니다. 설치 후 AppLoad에서 Reload → The Diary 실행 → 글을 쓰고 펜을 잠시 쉬게 두면 끝입니다.
제스처도 일기장답게
- 마커를 뒤집으면 지우개
- 큰 ? 를 그리면 내장 가이드 호출
- 다섯 손가락 동시 탭으로 종료
- 전원 버튼을 누르면 "The diary sleeps."가 표시되며 잠들고, 다시 누르면 같은 위치에서 깨어남
LLM 백엔드 선택지
두 가지 경로를 지원합니다.
- OpenAI 호환 API:
RIDDLE_OPENAI_KEY를 설정하면/chat/completions엔드포인트로 직접 요청합니다. OpenAI, OpenRouter, Groq, 로컬 서버 모두 가능하며 기본 모델은gpt-4o-mini(이미지 인식 필수)입니다. thinking 모델을 쓸 때는RIDDLE_OPENAI_REASONING=low로 첫 잉크까지의 시간을 줄일 수 있습니다 - pi 경로:
pi가 이미 실행 중이면 상주pi --mode rpc프로세스를 재사용해, 매 턴 모델 지연시간만 지불합니다. API 키가 없으면 자동으로 이 경로를 탑니다
실측 기준 기기에서 첫 잉크가 나타나기까지 약 0.9~1.1초라고 하니, e-ink 위 경험치고는 상당히 빠른 편입니다.
설치 전 꼭 알아야 할 것
낭만적인 프로젝트지만, 기기를 꽤 깊게 건드립니다.
- 앱은 root로 실행되며, takeover 모드에서는 vendor UI를 중지하고 e-ink 엔진을 직접 구동합니다
- 테스트 범위는 reMarkable Paper Pro(ferrari), aarch64, OS 3.26–3.27로 제한됩니다. 다른 모델·버전에서는 동작하지 않을 수 있습니다
- reMarkable 공식과는 무관한 프로젝트이며, 문제가 생겼을 때 SSH로
systemctl start xochitl을 실행해 복구할 수 있도록 SSH 접근을 반드시 확보해 두어야 합니다
코드는 MIT, 폰트는 SIL OFL 1.1 라이선스이며, vendor 라이브러리는 사용자의 기기나 SDK에서 직접 가져와야 합니다.
에디터의 한 줄 평
"AI 챗봇"이라는 뻔한 형태를 버리고, 하드웨어의 물성을 살려 '마법 같은 순간'을 만든 사례입니다. 원작에서 위즐리 씨가 남긴 명언 — "두뇌가 어디 있는지 보이지 않는 것은 절대 믿지 마라" — 이 이보다 잘 어울리는 프로젝트도 드물 것 같네요. 개발자 모드를 켤 용기가 있는 reMarkable Paper Pro 사용자라면 한 번쯤 시도해 볼 만합니다.