Fable เปลี่ยน reMarkable ให้กลายเป็นสมุดบันทึกของ Tom Riddle จาก Harry Potter
(github.com/MaximeRivest)- riddle เป็นแอปบน reMarkable Paper Pro ที่เมื่อเขียนด้วยปากกาแล้ว ข้อความลายมือจะค่อย ๆ หายไปหลังจากครู่หนึ่ง และคำตอบจะถูกเขียนกลับมาใหม่เป็นลายมือทีละเส้นเหมือนสมุดบันทึกของ Tom Riddle ก่อนจะเลือนหายไป
- ลำดับการทำงานคือรับอินพุตจากปากกา รอจนไม่มีการใช้งาน 2.8 วินาทีแล้วคอมมิตหน้าเป็น PNG จากนั้น vision LLM จะอ่านลายมือและสตรีมคำตอบเป็นรายประโยค
- การติดตั้งที่ง่ายที่สุดคือผ่าน remagic และยังสามารถติดตั้งจากบันเดิลที่ build ไว้ล่วงหน้าหรือ build จากซอร์สได้ แต่ต้องใช้โหมดนักพัฒนาของ reMarkable Paper Pro และ launcher
- แอปรันด้วยสิทธิ์ root และในโหมด takeover จะหยุด vendor UI แล้วขับเคลื่อน e-ink engine โดยตรง โดยขอบเขตการทดสอบจำกัดอยู่ที่ reMarkable Paper Pro ferrari, aarch64, OS 3.26–3.27
- LLM backend สามารถใช้ OpenAI-compatible
/chat/completionsAPI หรือโปรเซส residentpi --mode rpcได้ และการดัดแปลงอุปกรณ์กับการใช้ vendor library ผู้ใช้ต้องรับความเสี่ยงเอง
แอป reMarkable ที่ทำงานเหมือนสมุดบันทึกของ Tom Riddle
- riddle เป็นแอปบน reMarkable Paper Pro ที่เมื่อใช้ปากกาเขียนลงบนหน้า กระดาษพักหนึ่งแล้ว ตัวหนังสือจะจางหายไปราวกับซึมลงในกระดาษ และคำตอบจะปรากฏขึ้นเป็นลายมือแบบไหลลื่นทีละเส้น
- ตั้งเป้าไปที่ ประสบการณ์ที่หมึกปรากฏขึ้นบนกระดาษ โดยไม่มีแสงหน้าจอ คีย์บอร์ด หรือ UI แชต
- เป็นแอปสมุดบันทึกที่ใช้ในเดโม และใช้งานด้วยการเขียนถึง “Tom”
วิธีติดตั้งและการทำงาน
- หากใช้งานครั้งแรก ต้องตั้งค่า reMarkable Paper Pro ให้เป็นโหมดนักพัฒนาและติดตั้ง launcher ก่อน
- remagic ช่วยแนะนำการเปิดใช้งานโหมดนักพัฒนาและตั้งค่าสภาพแวดล้อมด้วยคำสั่งเดียว
- คำสั่งติดตั้ง remagic:
remagic install riddle: ดาวน์โหลดพร้อมตรวจสอบ checksum แล้วติดตั้งลง AppLoadremagic config riddle: เปิดฟอร์มตั้งค่าในเบราว์เซอร์และมี QR สำหรับมือถือให้ด้วย
- หากมี xovi และ AppLoad อยู่แล้ว สามารถติดตั้งได้ผ่าน remagic catalog, บันเดิลที่ build ไว้ล่วงหน้า หรือ build จากซอร์ส
- หลังติดตั้ง ให้กด Reload ใน AppLoad แล้วเปิด The Diary จากนั้นเขียนและวางปากกาไว้เฉย ๆ ก็จะเริ่มทำงาน
การติดตั้งบันเดิลที่ build ไว้ล่วงหน้า
- ดาวน์โหลด
riddle-<version>.zipจากรีลีสล่าสุด แล้วแตกไฟล์เป็นโฟลเดอร์riddle - คัดลอกโฟลเดอร์ไปที่
/home/root/xovi/exthome/appload/บนแท็บเล็ต - คัดลอก
oracle.env.exampleเป็นoracle.envแล้วใส่ OpenAI-compatible API key ลงในRIDDLE_OPENAI_KEY - หากไม่ใส่ API key ก็สามารถใช้เส้นทาง
piได้ - กด Reload ใน AppLoad แล้วเปิด The Diary
การดัดแปลงอุปกรณ์และขอบเขตการรองรับ
- riddle มีการดัดแปลงอุปกรณ์และรันด้วยสิทธิ์ root
- ในโหมด takeover จะหยุด vendor UI และขับเคลื่อน e-ink engine โดยตรง
- สภาพแวดล้อมที่ทดสอบแล้วมีเพียง reMarkable Paper Pro ferrari, aarch64, OS 3.26–3.27
- อาจไม่ทำงานบนรุ่นอื่นหรือเวอร์ชัน OS อื่น
- ไม่เกี่ยวข้องกับ reMarkable AS และก่อนติดตั้งควรยังเข้าถึง SSH ได้อย่างต่อเนื่องเพื่อให้มีเส้นทางกู้คืน
โครงสร้างการทำงานภายใน
- รับอินพุตผ่าน raw evdev และใช้ แรงกด 4096 ระดับ พร้อมความเร็วของ hardware event
- เมื่อผู้ใช้เขียนแล้วหยุด 2.8 วินาที ระบบจะคอมมิตหน้าและแปลงเป็น PNG
- oracle ซึ่งเป็น resident LLM process จะอ่าน PNG และสตรีมคำตอบเป็นรายประโยค
- คำตอบจะถูกแรสเตอร์จากฟอนต์ Dancing Script แล้วแปลงเป็นเส้นทางปากกาแบบพิกเซลเดี่ยวด้วย Zhang-Suen thinning จากนั้นติดตามเส้นและเล่นแอนิเมชัน
- display backend มี 2 แบบ
- qtfb: แอป AppLoad ที่รันในโหมดหน้าต่างภายใน xochitl
- quill: โหมด full takeover ที่หยุด xochitl และขับเคลื่อน vendor e-ink engine โดยตรง
โครงสร้างรีโพซิทอรี
riddle/คือแอป Rust ที่รวมอินพุตปากกา, ink surface, การสังเคราะห์ลายมือ, ตัวจัดการ oracle process และ display backend ทั้งสองแบบquill/คือ takeover display host ที่เขียนด้วย C/C++- quill วาง epfb-re style QImage constructor interposition shim ไว้บน waveform engine ของ vendor
libqsgepaper.soและให้ C ABI ของquill_init,quill_buffer,quill_swap - ใน quill ยังมีเดโมทดสอบ latency ของ
scribbleรวมถึงตัวเรนเดอร์แผนที่, ภาพ และ GIF
ท่าทางควบคุม
- เขียนแล้ววางปากกาไว้ สมุดบันทึกจะดูดซับหมึกและ Tom จะตอบกลับ
- พลิกมาร์กเกอร์กลับด้านเพื่อใช้เป็นยางลบ
- วาด ? ขนาดใหญ่เพื่อเรียกคู่มือในตัว
- แตะพร้อมกันห้านิ้วเพื่อออกจากสมุดบันทึก
- กดปุ่มเปิดปิดแล้วข้อความ “The diary sleeps.” จะปรากฏบนหน้า ก่อนที่แท็บเล็ตจะ suspend และเมื่อกดอีกครั้งจะตื่นกลับมาที่ตำแหน่งเดิม
LLM backend
- คำตอบถูกสร้างโดย vision LLM ที่รับหน้าที่คอมมิตแล้วในรูป inline PNG เพื่ออ่านลายมือ
- ตอนเริ่มต้นจะเลือกหนึ่งในสอง backend
-
OpenAI-compatible API
- หากตั้งค่า
RIDDLE_OPENAI_KEYไว้ จะส่งคำขอไปยัง OpenAI-compatible/chat/completionsendpoint โดยตรง - ใช้งานได้กับ OpenAI, OpenRouter, Groq หรือเซิร์ฟเวอร์ภายในที่รองรับรูปแบบเดียวกัน
- ตัวอย่างค่าตั้งต้น:
RIDDLE_OPENAI_KEY: จำเป็นRIDDLE_OPENAI_BASE: เลือกได้, ค่าเริ่มต้นhttps://api.openai.com/v1RIDDLE_OPENAI_MODEL: เลือกได้, ค่าเริ่มต้นgpt-4o-mini, ต้องมองเห็นภาพได้RIDDLE_OPENAI_REASONING: สำหรับโมเดล thinkingRIDDLE_OPENAI_MAX_TOKENS: ตัวกัน runaway- สำหรับโมเดล thinking อย่าง Gemini 3.x หรือ o-series สามารถตั้ง
RIDDLE_OPENAI_REASONING=lowเพื่อลดเวลาจนหมึกแรกปรากฏ - ผู้ให้บริการบางรายปฏิเสธฟิลด์ reasoning ในโมเดล non-thinking ดังนั้นกรณีนี้ไม่ควรตั้งค่า
- hidden reasoning token ก็ถูกนับรวมใน
RIDDLE_OPENAI_MAX_TOKENSด้วย ดังนั้นถ้าจำกัดต่ำเกินไปอาจทำให้คำตอบที่มองเห็นได้สั้นเกินไป - ก่อนรันสามารถตรวจสอบการสตรีมคำตอบด้วย
riddle --oracle-test path/to/handwriting.png - เวลาที่วัดได้บนอุปกรณ์จนหมึกแรกปรากฏอยู่ที่ประมาณ 0.9–1.1 วินาที และ HTTPS ถูกฝังอยู่ใน riddle แบบ pure-Rust
- หากตั้งค่า
-
เส้นทาง pi
- หากมี
piรันอยู่แล้ว riddle จะใช้โปรเซส residentpi --mode rpcที่อุ่นค้างไว้ - เส้นทางนี้โหลด Node และการยืนยันตัวตนแบบสมัครสมาชิกไว้ครั้งเดียว แล้วในแต่ละเทิร์นจะจ่ายเฉพาะ latency ของโมเดล
- จะถูกใช้โดยอัตโนมัติเมื่อไม่ได้ตั้ง
RIDDLE_OPENAI_KEY - ทั้งสอง backend สตรีมคำตอบเป็นรายประโยคเหมือนกัน ดังนั้น quill สามารถเริ่มเขียนได้ก่อนที่โมเดลจะตอบจบ
- persona prompt อยู่ใน
riddle/src/oracle.rs
- หากมี
การ build
- cross-compile จาก x86_64
- การ build แบบหน้าต่าง AppLoad/qtfb ต้องมี xovi + AppLoad บนอุปกรณ์
- การ build แบบ takeover คือวิธีที่ใช้ในเดโม และต้องใช้ reMarkable SDK toolchain
~/rm-sdk-3.26กับ proprietarylibqsgepaper.soที่ดึงมาจากอุปกรณ์ของผู้ใช้ - บันเดิล takeover จะถูก staged เป็น
dist/riddle/แบบ self-contained ซึ่งมี binary,libquill.so, launch script และ manifest - เมื่อรันผ่าน AppLoad จะถูกแยกไปรันด้วย transient systemd unit จากนั้นหยุด xochitl แล้วเปิดสมุดบันทึก และเมื่อออกจะ กู้คืน xochitl เสมอ
- วิธีออกคือปุ่มเปิดปิด, การแตะห้านิ้ว, หรือ SIGTERM
- หากมีปัญหา สามารถใช้ SSH รัน
systemctl start xochitlเพื่อเริ่ม xochitl ใหม่ได้
ฟอนต์และไลเซนส์
- ลายมือของคำตอบใช้ Dancing Script ภายใต้ไลเซนส์ SIL OFL 1.1
- โค้ดในรีโพซิทอรีอยู่ภายใต้ไลเซนส์ MIT
- vendor
libqsgepaper.soและไลบรารี Qt ที่เป็นเป้าหมายของ interpose ไม่ได้ถูกรวมมา ต้องดึงมาจากอุปกรณ์หรือ SDK ของผู้ใช้เอง
1 ความคิดเห็น
ความเห็นจาก Hacker News
น่าประชดดีที่ไดอารีของ Tom Riddle ที่ชักจูงเด็ก ๆ ให้ฆ่าตัวตายและยังบอก[1]วิธีทำ ดูจะเข้ากับคาแรกเตอร์มากกว่าเวอร์ชันในหนังสือเสียอีก
[1] https://en.wikipedia.org/wiki/Deaths_linked_to_chatbots#Suic...
โชคดีที่แบบฟอร์มอุทธรณ์ใช้ได้ผล แต่ตอนนั้นผมก็ไปใช้บัญชี Claude อีกบัญชีอยู่แล้ว พร้อมภาวนาอย่าให้โดนแบนอีก
ตอนนี้ก็มีโมเดลไร้การเซ็นเซอร์ที่รันโลคัลด้วย llama.cpp ได้ลอยไปลอยมาอยู่เหมือนกัน: https://www.reddit.com/r/LocalLLaMA/comments/1rq7jtm/qwen353...
แต่ context window เต็มเร็ว เลยใช้งานน่ารำคาญ และก็ไม่เหมาะกับการ deploy แบบ production เลย พูดอีกอย่างคือไดอารีของ Tom Riddle แบบให้บริการเป็นเซอร์วิสคงเป็นไปไม่ได้
ไม่ว่าจะดีหรือร้าย ตอนนี้เราอยู่ในยุคที่ความสนุกไม่ได้รับอนุญาตแล้ว และจังหวะนั้นก็ดันตรงกับตอนที่คำว่า “AI psychosis” เริ่มเกิดขึ้น
อย่าไว้ใจอะไรที่คิดได้ด้วยตัวเอง ถ้าคุณมองไม่เห็นว่าสมองของมันอยู่ที่ไหน
แม้จะออกนอกประเด็นไปหน่อย แต่การเอาสิ่งประดิษฐ์ไปเปรียบกับวัตถุต้องสาปที่ควบคุมจิตใจผู้ใช้จนหักหลังเพื่อนและส่งพวกเขาให้สิ่งชั่วร้ายอันทรงพลัง ฟังดูไม่ค่อยดีเท่าไร
แต่พอมันขับเคลื่อนด้วย generative AI และ generative AI ก็เคยผลักคนให้ทำเรื่องแย่ ๆ มาแล้ว บางทีอาจเป็นการเปรียบเทียบที่เหมาะสมก็ได้
บริษัทเทคโนโลยี: ในที่สุดเราก็ได้สร้าง Torment Nexus จากนิยายวิทยาศาสตร์คลาสสิกเรื่อง 《อย่าสร้าง Torment Nexus》
https://x.com/AlexBlechman/status/1457842724128833538?lang=e...
อีกอย่างก็มีคำพูดว่า “เทคโนโลยีที่ล้ำหน้ามากพอจะแยกไม่ออกจากเวทมนตร์” ทั้งสองอย่างใช้ทำเรื่องดีหรือเรื่องเลวก็ได้
คิดอีกที LLM น่าจะเป็นคนสร้างอุปมานี้ขึ้นมาเอง... ซึ่งในบางแง่ก็ยิ่งแย่กว่าเดิม
นี่มัน sick ในความหมายแบบ Tony Hawk ยุค 90s
ผมชอบที่ตอนนี้คนแค่ลงมือพิมพ์ ๆ ก็เสกบางอย่างให้มีตัวตนขึ้นมาได้
เมื่อก่อนแค่จะเปลี่ยนสีปุ่มหนึ่งปุ่มยังต้องรอทีมวิศวกรรมตั้งแต่หนึ่งวันไปจนถึงหนึ่งสัปดาห์
ตอนนี้เราไม่ได้อยู่ในยุคเชื่องช้าอีกต่อไปแล้ว
ปุ่มนั้นไม่สำคัญ และไม่ควรใช้ทรัพยากรประเภทไหนเลยกับมัน โดยเฉพาะทรัพยากรวิศวกรรม การที่มันใช้เวลาหนึ่งสัปดาห์ไม่ใช่บั๊ก แต่เป็นฟีเจอร์ มันหมายความว่าทีมวิศวกรรมประเมินลำดับความสำคัญและความเร่งด่วนของงานได้ถูกต้องแล้ว
เครื่องสล็อตเวทมนตร์ของคุณจะทำให้การผลิตขยะและการรับรู้ที่บิดเบี้ยวต่อความพยายามทางวิศวกรรมเกิดขึ้นได้ในสเกลมหาศาล และผลที่ตามมาจะมาแน่
คุณเป็น PM ของโปรเจ็กต์นั้นหรือเปล่า?
ล้อเล่นน่า
ไอเดียแบบนี้น่าจะดูดีขึ้นมากถ้าใส่ วิดีโอเดโม สั้น ๆ, GIF หรืออย่างน้อยสกรีนช็อตไว้ใน README โดยตรง
ไม่อย่างนั้นชื่อเรื่องจะอ่านเหมือนมีม “Curtains for Zoosha?” [0]
[0]: https://www.reddit.com/r/BrandNewSentence/comments/15hcc4x/c...
https://x.com/MaximeRivest/status/2073544461473169432?s=20
คำว่า “remarkable” ในชื่อหมายถึงแท็บเล็ต “Remarkable Paper Pro” ถ้าไม่รู้เรื่องนั้น ประโยค “Fable turned remarkable into Tom Riddle's diary” จะตีความได้ยากมาก
ตลกดีที่ผมก็เคยทำอะไรคล้าย ๆ กันตอนปลายปีที่แล้ว เพียงแต่เป็นเวอร์ชันที่ให้วาดลงเบราว์เซอร์บนคอมพิวเตอร์ธรรมดาได้
ผมใช้ pageflip [0] ในสไตล์ที่คล้ายไดอารีจริงของ Riddle และต่อเข้ากับโมเดลโลคัลขนาดเล็กสำหรับ roleplay ผ่าน ollama
จำได้ว่าพอเขียนว่า “my name is Harry Potter, what is yours?” มันตอบกลับมาเป็น Snape, Malfoy หรือแม้แต่ Harry Potter เองในหลาย ๆ รอบ
หลังจากจบการทดลอง ผมถึงรู้ว่าคนแรกที่คิดไอเดียนี้ไม่ใช่ผม และก็เจอ AI ไดอารีของ Riddle แบบคล้าย ๆ กันอีกหลายอัน
เพิ่มเติมคือผมมี Remarkable 2 อยู่แล้ว และสุดสัปดาห์นี้ก็เพิ่งได้ m4 iPad Air มาด้วย เลยอาจจะลองทดสอบดูว่า environment สำหรับรันโมเดลบน iOS เป็นยังไง
0) https://nodlik.github.io/react-pageflip/
ถ้า Fable สร้างฮอร์ครักซ์ได้แล้ว ตอนนี้กระทรวงพาณิชย์ก็ควรพิจารณา timeout อีกรอบอย่างจริงจัง
“ไม่มีแสงหน้าจอ ไม่มีคีย์บอร์ด และไม่มี chat UI”
นี่มันก็แค่ chat UI ไม่ใช่เหรอ?
ถึงอย่างนั้นมันก็ยังเจ๋งมากอยู่ดี
LLM โดยรวมให้อารมณ์แบบ A Young Lady's Illustrated Primer มาก มันคือกล่องดำมหัศจรรย์ที่ถามอะไรก็ได้
โดยเฉพาะเมื่อมีตัวตนปลอม ๆ อย่าง openclaw/soul ติดมาด้วย ยิ่งให้ความรู้สึกแบบนั้น
เป็นโปรเจ็กต์ที่สนุกมาก ผมคงไม่ซื้อ Paper Pro มารันแอปนี้จริง ๆ หรอก แต่ชอบที่สิ่งแบบนี้มีอยู่ และคนก็ใช้มันกันอย่างสนุกสนาน