Biến reMarkable thành nhật ký Tom Riddle trong Harry Potter bằng Fable
(github.com/MaximeRivest)- riddle là một ứng dụng trên reMarkable Paper Pro, trong đó chữ viết bằng bút sẽ biến mất sau một lúc, rồi câu trả lời được viết lại bằng các nét chữ tay như nhật ký của Tom Riddle trước khi biến mất
- Luồng hoạt động là nhận đầu vào từ bút, sau 2,8 giây không hoạt động sẽ chốt trang thành PNG, sau đó LLM thị giác đọc chữ viết tay và stream câu trả lời theo từng câu
- Cách cài đặt dễ nhất là thông qua remagic; cũng có thể cài bundle dựng sẵn hoặc build từ mã nguồn, nhưng cần chế độ nhà phát triển và launcher của reMarkable Paper Pro
- Ứng dụng chạy dưới quyền root; ở chế độ takeover, nó dừng UI của nhà cung cấp rồi điều khiển trực tiếp engine e-ink; phạm vi thử nghiệm chỉ giới hạn ở reMarkable Paper Pro ferrari, aarch64, OS 3.26–3.27
- Backend LLM có thể dùng API tương thích OpenAI
/chat/completionshoặc tiến trình residentpi --mode rpc; người dùng tự chịu rủi ro về việc sửa đổi thiết bị và dùng thư viện của nhà cung cấp
Ứng dụng reMarkable hoạt động như nhật ký Tom Riddle
- riddle là ứng dụng trên reMarkable Paper Pro: khi bạn viết lên trang bằng bút, sau một lúc chữ viết sẽ biến mất như thấm vào giấy, rồi câu trả lời xuất hiện theo từng nét bằng chữ viết tay liền mạch
- Mục tiêu là mang lại trải nghiệm mực xuất hiện trên giấy, không có ánh sáng màn hình, bàn phím hay UI chat
- Đây là ứng dụng nhật ký xuất hiện trong demo, được dùng theo kiểu viết cho “Tom”
Cài đặt và cách chạy
- Nếu dùng lần đầu, bạn cần đặt reMarkable Paper Pro ở chế độ nhà phát triển và cài launcher
- remagic hướng dẫn bật chế độ nhà phát triển và cấu hình môi trường chỉ bằng một lệnh
- Lệnh cài đặt remagic:
remagic install riddle: tải xuống có kiểm tra checksum rồi cài vào AppLoadremagic config riddle: mở form cấu hình trong trình duyệt và cung cấp cả mã QR cho điện thoại
- Nếu đã có xovi và AppLoad, có thể cài bằng một trong các cách: catalog của remagic, bundle dựng sẵn, hoặc build từ mã nguồn
- Sau khi cài, nhấn Reload trong AppLoad, chạy The Diary, rồi viết và để bút nghỉ là ứng dụng hoạt động
Cài bundle dựng sẵn
- Tải
riddle-<version>.ziptừ bản phát hành mới nhất và giải nén thành thư mụcriddle - Sao chép thư mục vào
/home/root/xovi/exthome/appload/trên tablet - Sao chép
oracle.env.examplethànhoracle.envvà điền khóa API tương thích OpenAI vàoRIDDLE_OPENAI_KEY - Nếu không điền khóa API, có thể dùng đường dẫn
pi - Sau khi Reload trong AppLoad, chạy The Diary
Sửa đổi thiết bị và phạm vi hỗ trợ
- riddle sửa đổi thiết bị và chạy dưới quyền root
- Ở chế độ takeover, nó dừng UI của nhà cung cấp và điều khiển trực tiếp engine e-ink
- Môi trường đã được thử nghiệm chỉ gồm reMarkable Paper Pro ferrari, aarch64, OS 3.26–3.27
- Ứng dụng có thể không hoạt động trên model hoặc phiên bản OS khác
- Ứng dụng không liên quan đến reMarkable AS; trước khi cài đặt, cần đảm bảo vẫn có thể truy cập SSH để có đường khôi phục
Cấu trúc hoạt động bên trong
- Đầu vào được nhận qua raw evdev, sử dụng 4096 mức áp lực và tốc độ sự kiện phần cứng
- Khi người dùng viết rồi dừng trong 2,8 giây, trang sẽ được commit và chuyển thành PNG
- Tiến trình LLM resident có tên oracle đọc PNG và stream câu trả lời theo từng câu
- Câu trả lời được rasterize bằng font Dancing Script, sau đó dùng Zhang-Suen thinning để tạo đường bút đơn pixel, rồi truy vết nét và phát hoạt ảnh
- Có hai backend hiển thị
- qtfb: ứng dụng AppLoad chạy ở chế độ cửa sổ bên trong xochitl
- quill: chế độ full takeover, dừng xochitl và điều khiển trực tiếp engine e-ink của nhà cung cấp
Cấu trúc repository
riddle/là ứng dụng Rust, gồm đầu vào bút, bề mặt mực, tổng hợp chữ viết tay, trình quản lý tiến trình oracle và hai backend hiển thịquill/là takeover display host viết bằng C/C++- quill đặt một shim interposition QImage constructor kiểu epfb-re trên waveform engine
libqsgepaper.socủa nhà cung cấp, đồng thời cung cấp C ABIquill_init,quill_buffer,quill_swap - quill cũng bao gồm bài kiểm tra độ trễ
scribblecùng các demo renderer cho bản đồ, ảnh và GIF
Cử chỉ
- Khi bạn viết rồi để bút nghỉ, nhật ký sẽ hấp thụ mực và Tom trả lời
- Lật marker lại thì nó hoạt động như tẩy
- Vẽ một dấu ? lớn sẽ mở hướng dẫn tích hợp
- Chạm đồng thời bằng năm ngón tay để thoát khỏi nhật ký
- Khi nhấn nút nguồn, dòng “The diary sleeps.” sẽ hiển thị trên trang rồi tablet chuyển sang suspend; nhấn lại thì thiết bị thức dậy ở cùng vị trí
Backend LLM
- Câu trả lời được tạo bởi LLM thị giác, nhận trang đã commit dưới dạng PNG inline và đọc chữ viết tay
- Khi khởi động, ứng dụng chọn một trong hai backend
-
API tương thích OpenAI
- Nếu thiết lập
RIDDLE_OPENAI_KEY, ứng dụng sẽ gửi request trực tiếp tới endpoint/chat/completionstương thích OpenAI - Hoạt động với các đích hỗ trợ cùng định dạng như OpenAI, OpenRouter, Groq hoặc server cục bộ
- Ví dụ cấu hình mặc định:
RIDDLE_OPENAI_KEY: bắt buộcRIDDLE_OPENAI_BASE: tùy chọn, mặc địnhhttps://api.openai.com/v1RIDDLE_OPENAI_MODEL: tùy chọn, mặc địnhgpt-4o-mini, phải có khả năng xem ảnhRIDDLE_OPENAI_REASONING: dành cho model thinkingRIDDLE_OPENAI_MAX_TOKENS: giới hạn chống chạy quá mức- Với các model thinking như Gemini 3.x hoặc o-series, có thể đặt
RIDDLE_OPENAI_REASONING=lowđể giảm thời gian tới nét mực đầu tiên - Một số nhà cung cấp từ chối trường reasoning với model non-thinking, nên trong trường hợp này không nên thiết lập trường đó
- Hidden reasoning token cũng được tính vào
RIDDLE_OPENAI_MAX_TOKENS, vì vậy giới hạn quá thấp có thể khiến câu trả lời hiển thị bị thiếu - Trước khi chạy, có thể kiểm tra câu trả lời stream bằng
riddle --oracle-test path/to/handwriting.png - Thời gian đo được trên thiết bị tới nét mực đầu tiên là khoảng 0,9–1,1 giây; HTTPS được tích hợp trong riddle bằng pure-Rust
- Nếu thiết lập
-
Đường dẫn pi
- Nếu
piđã chạy, riddle sẽ dùng tiến trình residentpi --mode rpcđược giữ ấm - Đường dẫn này tải Node và xác thực thuê bao một lần, sau đó mỗi lượt chỉ phải trả độ trễ của model
- Được dùng tự động khi
RIDDLE_OPENAI_KEYchưa được thiết lập - Cả hai backend đều stream câu trả lời theo từng câu, nên quill có thể bắt đầu viết trước khi model kết thúc
- Persona prompt nằm trong
riddle/src/oracle.rs
- Nếu
Build
- Cross-compile trên x86_64
- Bản build AppLoad/qtfb ở chế độ cửa sổ cần xovi + AppLoad trên thiết bị
- Bản build takeover là cách được dùng trong demo, cần toolchain reMarkable SDK
~/rm-sdk-3.26vàlibqsgepaper.soproprietary lấy từ thiết bị của người dùng - Bundle takeover được stage thành
dist/riddle/self-contained, gồm binary,libquill.so, launch script và manifest - Khi chạy bằng AppLoad, ứng dụng được tách ra chạy dưới dạng transient systemd unit, dừng xochitl rồi chạy nhật ký, và khi thoát luôn khôi phục xochitl
- Cách thoát gồm nút nguồn, chạm năm ngón tay, hoặc SIGTERM
- Nếu gặp sự cố, có thể SSH vào và chạy
systemctl start xochitlđể khởi động lại xochitl
Font và giấy phép
- Chữ viết tay trong câu trả lời dùng Dancing Script, theo giấy phép SIL OFL 1.1
- Mã nguồn trong repository dùng giấy phép MIT
libqsgepaper.socủa nhà cung cấp và thư viện Qt là đối tượng interpose không được bao gồm; người dùng phải lấy từ thiết bị hoặc SDK của mình
1 bình luận
Ý kiến trên Hacker News
Trớ trêu là cuốn nhật ký của Tom Riddle xúi trẻ em tự sát và còn chỉ cả [1] cách làm trông lại đúng với nhân vật hơn phiên bản trong sách
[1] https://en.wikipedia.org/wiki/Deaths_linked_to_chatbots#Suic...
May là mẫu kháng nghị có tác dụng, nhưng lúc đó tôi đã dùng một tài khoản Claude khác và cầu mong nó không bị khóa tiếp
Cũng có những mô hình không kiểm duyệt có thể chạy cục bộ bằng llama.cpp đang được chia sẻ: https://www.reddit.com/r/LocalLLaMA/comments/1rq7jtm/qwen353...
Chỉ là cửa sổ ngữ cảnh đầy rất nhanh nên dùng khá phiền, và hoàn toàn không phải để triển khai production. Nói cách khác, nhật ký Tom Riddle dạng dịch vụ là bất khả thi
Dù tốt hay xấu, giờ đã là thời đại mà niềm vui không còn được cho phép, và thời điểm đó lại trùng với lúc thuật ngữ “AI psychosis” xuất hiện
Đừng bao giờ tin thứ gì có thể tự suy nghĩ, nếu bạn không thấy được bộ não của nó nằm ở đâu
Hơi lệch chủ đề một chút, nhưng việc ví một phát minh với cổ vật bị nguyền rủa thao túng tâm trí người dùng để phản bội bạn bè và giao họ cho một thực thể ác độc đầy quyền năng nghe không hay lắm
Tuy nhiên, thứ này chạy bằng AI tạo sinh, mà AI tạo sinh cũng từng đẩy con người tới hành vi xấu, nên có lẽ phép so sánh cũng phù hợp
Công ty công nghệ: Cuối cùng chúng tôi đã tạo ra Torment Nexus trong tiểu thuyết SF kinh điển 《Đừng tạo ra Torment Nexus》
https://x.com/AlexBlechman/status/1457842724128833538?lang=e...
Và còn có câu “công nghệ đủ tiên tiến thì không thể phân biệt với ma thuật”. Cả hai đều có thể được tạo ra theo hướng thiện hoặc ác
Nghĩ lại thì, có lẽ chính LLM đã tự nghĩ ra phép ví von này… theo nghĩa nào đó thì còn tệ hơn
Thứ này sick theo nghĩa Tony Hawk thập niên 90
Tôi thích việc giờ đây mọi người có thể cứ gõ vài thứ là khiến nó tồn tại
Ngày trước có khi phải chờ đội engineering từ một ngày đến một tuần chỉ để đổi một màu nút
Giờ chúng ta không còn sống trong thời đại chậm chạp nữa
Cái nút đó không quan trọng và không nên tiêu tốn bất kỳ loại tài nguyên nào, đặc biệt là tài nguyên engineering. Việc mất một tuần không phải bug mà là feature. Nó nghĩa là engineering đã đánh giá đúng mức độ ưu tiên và khẩn cấp của công việc
Cỗ máy đánh bạc ma thuật của bạn sẽ cho phép sản xuất rác và nhận thức méo mó về nỗ lực engineering ở quy mô khổng lồ. Sẽ có hệ quả đi kèm
Bạn có phải PM của dự án đó không?
Đùa thôi chứ
Những ý tưởng thế này sẽ hay hơn nhiều nếu README nhúng trực tiếp một video demo ngắn, GIF, hoặc thậm chí một ảnh chụp màn hình
Nếu không thì tiêu đề đọc giống meme “Curtains for Zoosha?” [0]
[0]: https://www.reddit.com/r/BrandNewSentence/comments/15hcc4x/c...
https://x.com/MaximeRivest/status/2073544461473169432?s=20
“remarkable” trong tiêu đề chỉ chiếc tablet “Remarkable Paper Pro”. Nếu không biết điều đó, “Fable turned remarkable into Tom Riddle's diary” rất khó hiểu
Thú vị là cuối năm ngoái tôi cũng làm một thứ tương tự. Chỉ khác là nó cho vẽ trong trình duyệt trên một máy tính bình thường
Tôi dùng pageflip [0] theo phong cách giống cuốn nhật ký thật của Riddle, rồi gắn một mô hình cục bộ nhỏ để nhập vai bằng ollama
Tôi nhớ khi viết “my name is Harry Potter, what is yours?” thì qua nhiều lần thử nó trả lời là Snape, Malfoy, thậm chí cả Harry Potter
Sau khi kết thúc thử nghiệm, tôi nhận ra mình không phải người đầu tiên nghĩ ra ý tưởng này, và cũng tìm thấy vài cuốn nhật ký Riddle AI tương tự
Nhân tiện, tôi có Remarkable 2 và từ cuối tuần này sẽ có thêm m4 iPad Air, nên có lẽ tôi sẽ thử thứ này và xem môi trường chạy mô hình trên iOS ra sao
0) https://nodlik.github.io/react-pageflip/
Nếu Fable giờ có thể tạo Trường Sinh Linh Giá, Bộ Thương mại nên nghiêm túc cân nhắc thêm một lần timeout nữa
“Không ánh sáng màn hình, không bàn phím, không UI chat.”
Cái này chẳng phải chỉ là UI chat sao?
Dù vậy, sự thật là nó vẫn cực kỳ ngầu
LLM nói chung mang cảm giác rất giống A Young Lady's Illustrated Primer. Một chiếc hộp đen ma thuật mà bạn có thể hỏi bất cứ điều gì
Đặc biệt càng giống hơn nếu còn gắn thêm các danh tính giả như openclaw/soul
Một dự án thật sự thú vị. Tôi sẽ không mua Paper Pro chỉ để chạy app này, nhưng tôi thích việc những thứ như vậy tồn tại và có người đang vui vẻ sử dụng chúng