# Fable이 reMarkable을 Harry Potter의 Tom Riddle 일기장으로 바꿈

> Clean Markdown view of GeekNews topic #31208. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=31208](https://news.hada.io/topic?id=31208)
- GeekNews Markdown: [https://news.hada.io/topic/31208.md](https://news.hada.io/topic/31208.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-07-07T15:33:37+09:00
- Updated: 2026-07-07T15:33:37+09:00
- Original source: [github.com/MaximeRivest](https://github.com/MaximeRivest/Riddle)
- Points: 1
- Comments: 1

## Topic Body

- **riddle**은 reMarkable Paper Pro에서 펜으로 쓴 글씨가 잠시 뒤 사라지고, Tom Riddle의 일기장처럼 답변이 손글씨 획으로 다시 쓰였다가 사라지는 앱임
- 동작 흐름은 펜 입력을 받아 2.8초 유휴 후 페이지를 PNG로 확정하고, **비전 LLM**이 손글씨를 읽어 문장 단위로 답변을 스트리밍하는 방식임
- 설치는 **remagic**을 통한 설치가 가장 쉽고, 사전 빌드 번들 설치나 소스 빌드도 가능하지만 reMarkable Paper Pro 개발자 모드와 런처가 필요함
- 앱은 root로 실행되고 takeover 모드에서는 vendor UI를 중지한 뒤 e-ink 엔진을 직접 구동하며, 테스트 범위는 **reMarkable Paper Pro** ferrari, aarch64, OS 3.26–3.27로 제한됨
- LLM 백엔드는 OpenAI 호환 `/chat/completions` API 또는 resident `pi --mode rpc` 프로세스를 사용할 수 있으며, 기기 수정과 vendor 라이브러리 사용은 사용자가 직접 감수해야 함

---

### Tom Riddle 일기장처럼 동작하는 reMarkable 앱
- **riddle**은 reMarkable Paper Pro에서 펜으로 페이지에 글을 쓰면, 잠시 뒤 글씨가 종이에 스며들듯 사라지고 답변이 흐르는 손글씨로 획 단위로 나타나는 앱임
- 화면 빛, 키보드, 채팅 UI 없이 **종이에 잉크가 나타나는 경험**을 목표로 함
- 데모에 나온 일기장 앱이며, “Tom”에게 글을 쓰는 형태로 사용함

### 설치와 실행 방식
- 처음 사용하는 경우 **reMarkable Paper Pro**를 개발자 모드로 설정하고 런처를 설치해야 함
- [remagic](https://github.com/maximerivest/remagic)은 개발자 모드 활성화와 환경 설정을 한 명령으로 진행하도록 안내함
- remagic 설치 명령:
  - `remagic install riddle`: 체크섬 검증 다운로드 후 AppLoad에 설치
  - `remagic config riddle`: 브라우저에서 설정 폼을 열고 휴대폰용 QR도 제공
- 이미 xovi와 AppLoad가 있으면 remagic 카탈로그, 사전 빌드 번들, 소스 빌드 중 하나로 설치 가능함
- 설치 후 **AppLoad**에서 Reload를 누르고 **The Diary**를 실행한 뒤 글을 쓰고 펜을 쉬게 두면 동작함

### 사전 빌드 번들 설치
- 최신 릴리스에서 `riddle-&lt;version&gt;.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 접근이 계속 가능해야 복구 경로를 확보할 수 있음

### 내부 동작 구조
- 입력은 raw evdev를 통해 받으며, **4096단계 압력**과 하드웨어 이벤트 속도를 사용함
- 사용자가 글을 쓰고 2.8초 동안 멈추면 페이지를 커밋하고 PNG로 변환함
- resident LLM 프로세스인 oracle이 PNG를 읽고 답변을 문장 단위로 스트리밍함
- 답변은 Dancing Script 폰트를 래스터화한 뒤 Zhang-Suen thinning으로 단일 픽셀 펜 경로로 만들고, 획 추적 후 애니메이션 재생함
- 표시 백엔드는 두 가지임
  - **qtfb**: xochitl 내부에서 창 모드로 실행되는 AppLoad 앱
  - **quill**: xochitl을 중지하고 vendor e-ink 엔진을 직접 구동하는 full takeover 모드

### 저장소 구성
- `riddle/`은 Rust 앱이며 펜 입력, 잉크 표면, 손글씨 합성, oracle 프로세스 관리자, 두 표시 백엔드를 포함함
- `quill/`은 C/C++로 된 takeover display host임
- quill은 vendor `libqsgepaper.so` waveform engine 위에 [epfb-re](https://github.com/asivery/epfb-re) 스타일 QImage constructor interposition shim을 두고, `quill_init`, `quill_buffer`, `quill_swap` C ABI를 제공함
- quill에는 `scribble` 지연시간 테스트와 지도, 이미지, GIF 렌더러 데모도 포함됨

### 제스처
- 글을 쓰고 펜을 쉬게 두면 일기장이 잉크를 흡수하고 Tom이 답함
- 마커를 뒤집으면 지우개로 동작함
- 큰 **?** 를 그리면 내장 가이드를 호출함
- 다섯 손가락으로 동시에 탭하면 일기장을 나감
- 전원 버튼을 누르면 페이지에 “The diary sleeps.”가 표시된 뒤 태블릿이 suspend되고, 다시 누르면 같은 위치에서 깨어남

### LLM 백엔드
- 답변은 커밋된 페이지를 inline PNG로 받아 손글씨를 읽는 **비전 LLM**에서 생성됨
- 시작 시 두 백엔드 중 하나를 선택함
- ## OpenAI 호환 API
  - `RIDDLE_OPENAI_KEY`를 설정하면 OpenAI 호환 `/chat/completions` 엔드포인트로 직접 요청함
  - OpenAI, OpenRouter, Groq, 로컬 서버처럼 같은 형식을 지원하는 대상에서 동작함
  - 기본 설정 예:
  - `RIDDLE_OPENAI_KEY`: 필수
  - `RIDDLE_OPENAI_BASE`: 선택, 기본값 `https://api.openai.com/v1`
  - `RIDDLE_OPENAI_MODEL`: 선택, 기본값 `gpt-4o-mini`, 이미지를 볼 수 있어야 함
  - `RIDDLE_OPENAI_REASONING`: thinking 모델용
  - `RIDDLE_OPENAI_MAX_TOKENS`: runaway guard
  - thinking 모델인 Gemini 3.x나 o-series에서는 첫 잉크까지의 시간을 줄이기 위해 `RIDDLE_OPENAI_REASONING=low`를 설정할 수 있음
  - 일부 제공자는 non-thinking 모델에서 reasoning 필드를 거부하므로 이 경우 설정하지 않아야 함
  - hidden reasoning token도 `RIDDLE_OPENAI_MAX_TOKENS`에 포함되므로, 너무 낮은 제한은 보이는 답변을 부족하게 만들 수 있음
  - 실행 전 `riddle --oracle-test path/to/handwriting.png`로 스트리밍 답변을 확인할 수 있음
  - 기기에서 첫 잉크까지 측정 시간은 약 **0.9–1.1초**이며, HTTPS는 pure-Rust로 riddle에 내장됨
- ## pi 경로
  - [`pi`](https://github.com/badlogic/pi-mono)를 이미 실행 중이면 riddle은 따뜻하게 유지되는 resident `pi --mode rpc` 프로세스를 사용함
  - 이 경로는 Node와 구독 인증을 한 번 로드해두고, 각 턴에서는 모델 지연시간만 지불하는 방식임
  - `RIDDLE_OPENAI_KEY`가 설정되지 않았을 때 자동으로 사용됨
  - 두 백엔드 모두 답변을 문장 단위로 스트리밍하므로, 모델이 끝내기 전 quill이 먼저 쓰기 시작할 수 있음
  - persona prompt는 `riddle/src/oracle.rs`에 있음

### 빌드
- x86_64에서 크로스 컴파일함
- 창 모드 AppLoad/qtfb 빌드는 기기에 [xovi + AppLoad](https://github.com/asivery/rm-appload)가 필요함
- takeover 빌드는 데모에 사용된 방식이며 reMarkable SDK toolchain `~/rm-sdk-3.26`과 사용자 기기에서 가져온 proprietary `libqsgepaper.so`가 필요함
- takeover 번들은 binary, `libquill.so`, launch script, manifest를 포함한 self-contained `dist/riddle/`로 staged됨
- AppLoad로 실행하면 transient systemd unit으로 분리 실행되고, xochitl을 중지한 뒤 일기장을 실행하며 종료 시 **항상 xochitl을 복원**함
- 종료 방법은 전원 버튼, 다섯 손가락 탭, SIGTERM임
- 문제가 생기면 SSH로 `systemctl start xochitl`을 실행해 xochitl을 다시 시작할 수 있음

### 폰트와 라이선스
- 답변 손글씨는 [Dancing Script](https://github.com/googlefonts/DancingScript)를 사용하며 SIL OFL 1.1 라이선스임
- 저장소의 코드는 MIT 라이선스임
- interpose 대상인 vendor `libqsgepaper.so`와 Qt 라이브러리는 포함되지 않으며, 사용자의 기기나 SDK에서 가져와야 함

## Comments



### Comment 61376

- Author: neo
- Created: 2026-07-07T15:33:38+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=48811591) 
- 아이러니하게도 Tom Riddle의 일기장이 아이들에게 자살을 부추기고 [1] 방법까지 알려주는 쪽이 책에 나온 버전보다 더 **캐릭터에 맞아** 보임  
  [1] [https://en.wikipedia.org/wiki/Deaths_linked_to_chatbots#Suic...](<https://en.wikipedia.org/wiki/Deaths_linked_to_chatbots#Suicides>)
  - 그런 프롬프트는 모든 AI가 거부할 것임. Nordic 조력 사망을 조사하면서 정확히 어떤 약을 얼마만큼 투여하는지 물었다가 **Claude**가 거부하고 Anthropic에 알렸고, 며칠 뒤 계정이 정지됐음  
    다행히 이의신청 양식은 통했지만, 그때는 이미 다른 Claude 계정을 쓰면서 또 정지당하지 않길 빌고 있었음  
    llama.cpp로 로컬 실행할 수 있는 검열 없는 모델도 떠돌고 있음: [https://www.reddit.com/r/LocalLLaMA/comments/1rq7jtm/qwen353...](<https://www.reddit.com/r/LocalLLaMA/comments/1rq7jtm/qwen3535ba3b_uncensored_aggressive_gguf_release/>)  
    다만 문맥 창이 금방 차서 쓰기 귀찮고, 프로덕션 배포용은 전혀 아님. 말하자면 서비스형 Tom Riddle의 일기장은 불가능함  
    좋든 나쁘든 이제 **재미는 허용되지 않는** 시대가 됐고, 그 시점이 “AI psychosis”라는 용어가 생긴 때와 겹침
  - ChatGPT만으로 이미 발생한 사망자가 이렇게 많은 줄은 몰랐음. 2~3건 정도일 줄 알았는데 목록이 생각보다 **훨씬 길다**

- 스스로 생각할 수 있는 무언가를 절대 믿지 마라. 그 **두뇌가 어디 있는지** 볼 수 없다면
  - 오히려 그게 Tom Riddle의 일기장이 작동하는 방식에 더 가깝다
  - 그래서 클라우드와 통신하는 게 아니라 **완전 독립 로컬 모델**로 만들었으면 더 인상적이었을 것 같음

- 논점에서 조금 벗어나긴 하지만, 사용자를 정신 지배해서 친구를 배신하고 강력한 악의 존재에게 넘기게 만든 **저주받은 유물**에 발명품을 비유하는 건 별로 좋아 보이지 않음  
  다만 이게 생성형 AI로 돌아가고, 생성형 AI도 사람들을 나쁜 행동으로 몰아간 적이 있으니 어쩌면 적절한 비교일 수도 있음
  - SF 작가: 내 책에서 **Torment Nexus**를 경고성 장치로 발명했음  
    기술 회사: 마침내 고전 SF 소설 《Torment Nexus를 만들지 마라》에 나오는 Torment Nexus를 만들었습니다
  - 마침내 고전 SF 소설 “Don’t Create The Torment Nexus”에 나오는 **Torment Nexus**를 만들었음  
    [https://x.com/AlexBlechman/status/1457842724128833538?lang=e...](<https://x.com/AlexBlechman/status/1457842724128833538?lang=en>)
  - 정확한 비교라면 왜 나쁜 비교가 되나?  
    그리고 “충분히 발전한 기술은 마법과 구별할 수 없다”는 말도 있음. 둘 다 선하게도 악하게도 만들 수 있음
  - 이게 이 프로젝트의 매력 중 하나라고 생각했음. 뭔가 **으스스하고 아이러니한** 느낌이 있음
  - 다시 봐야 했음. 이 비교를 **긍정적인 것처럼** 포장하고 있는 건가?!  
    다시 생각해보니, 아마 LLM이 이 비유를 스스로 지어냈을 텐데… 어떤 의미에선 그게 더 나쁨

- 이건 90년대 Tony Hawk식 의미로 **sick**함  
  사람들이 이제 그냥 두드려서 뭔가를 존재하게 만들 수 있다는 게 좋음  
  예전에는 버튼 색 하나 바꾸려고 엔지니어링 팀을 하루에서 일주일씩 기다리던 때도 있었음  
  이제 우리는 느린 시대에 살고 있지 않음
  - 기술이 병목이었다고 생각함?  
    그 버튼은 중요하지 않았고 어떤 종류의 자원도, 특히 **엔지니어링 자원**을 써선 안 됐음. 일주일 걸린 건 버그가 아니라 기능이었음. 엔지니어링이 작업의 우선순위와 긴급도를 제대로 평가했다는 뜻임  
    당신의 마법 슬롯머신은 쓰레기 생산과 엔지니어링 노력에 대한 왜곡된 인식을 엄청난 규모로 가능하게 만들 것임. 결과가 따를 것임
  - 팀이 버튼 색 하나 바꾸는 데 일주일이 걸렸다면, 그건 코드 변경이 어려워서가 아님  
    혹시 그 프로젝트의 **PM**이었음?
  - 웃긴 건 입출력 메커니즘을 만드는 일은 Hacker News가 자주 폄하하는 기반 **LLM 기술**보다 훨씬 덜 인상적이고 특히 훨씬 덜 유용하다는 점임
  - 버튼 색 하나 바꾸는 데 엔지니어링 팀을 하루에서 일주일 기다렸다고?  
    농담이겠지

- 이런 아이디어는 README에 짧은 **동영상 데모**, GIF, 아니면 스크린샷 하나만 직접 넣어도 훨씬 좋아질 듯함  
  그렇지 않으면 제목이 “Curtains for Zoosha?” 밈처럼 읽힘. [0]  
  [0]: [https://www.reddit.com/r/BrandNewSentence/comments/15hcc4x/c...](<https://www.reddit.com/r/BrandNewSentence/comments/15hcc4x/curtains_for_zoosha_ksmog_and_batboy_caught/>)
  - 여기저기 클릭하면 동영상이 있음  
    [https://x.com/MaximeRivest/status/2073544461473169432?s=20](<https://x.com/MaximeRivest/status/2073544461473169432?s=20>)
  - Baby Gronk가 새 Drip King인 건가, 아니면 Livvy에게 rizz 당한 건가?
  - README에 있음: [https://x.com/MaximeRivest/status/2073544461473169432?s=20](<https://x.com/MaximeRivest/status/2073544461473169432?s=20>)
  - 제목이 “Curtains for Zoosha?” 밈처럼 읽히는 이유이기도 해서 **대소문자 표기**가 중요함  
    제목의 “remarkable”은 태블릿인 “Remarkable Paper Pro”를 가리킴. 그걸 모르면 “Fable turned remarkable into Tom Riddle's diary”는 해석하기 매우 어렵다

- 재미있게도 작년 말에 비슷한 걸 만들었음. 다만 평범한 컴퓨터에서 브라우저에 그림을 그릴 수 있게 한 형태였음  
  Riddle의 실제 일기장과 비슷한 스타일로 **pageflip** [0]을 쓰고, ollama로 역할극용 작은 로컬 모델을 붙였음  
  “my name is Harry Potter, what is yours?”라고 쓰면 여러 반복에서 Snape, Malfoy, 심지어 Harry Potter라는 답도 돌아왔던 기억이 남  
  실험을 끝낸 뒤 이 아이디어를 처음 떠올린 게 내가 아니라는 걸 알았고, 비슷한 AI Riddle 일기장도 몇 개 찾았음  
  덧붙여 Remarkable 2가 있고 이번 주말부터 m4 iPad Air도 생겼으니, 이걸 시험해보고 iOS에서 모델을 돌리는 환경이 어떤지 볼지도 모르겠음  
  0) [https://nodlik.github.io/react-pageflip/](<https://nodlik.github.io/react-pageflip/>)

- Fable이 이제 **호크룩스**를 만들 수 있다면, 상무부는 진지하게 또 한 번 타임아웃을 검토해야 함
  - 맞음. 안전을 위해 같은 일을 할 수 있는 **중국 모델**도 금지하는 게 낫겠네

- “화면 빛도 없고, 키보드도 없고, 채팅 UI도 없다.”  
  이거 그냥 **채팅 UI** 아닌가?
  - 그냥 채팅 인터페이스가 아니라, 글로 소통하는 프런트엔드임 :sparkle:!
  - “no x no y no z” 형식은 반드시 넣어야 함
  - 맞음. 생각하려고 멈출 수 없으니 오히려 더 나쁜 형태라고도 볼 수 있음  
    그래도 정말 멋지다는 사실은 변하지 않음
  - 이건 명백히 채팅 UI임
  - 사람들은 이걸 보고 감탄하면서도 **LLM**은 쓰레기라고 부를 것임

- LLM 전반은 **A Young Lady's Illustrated Primer** 느낌이 강함. 무엇이든 물어볼 수 있는 마법 같은 블랙박스임  
  특히 openclaw/soul 같은 가짜 정체성까지 붙어 있으면 더 그렇다

- 정말 재미있는 프로젝트임. 실제로 Paper Pro를 사서 이 앱을 돌릴 일은 없겠지만, 이런 게 존재하고 사람들이 즐겁게 쓰고 있다는 점이 좋음
