Fable transforme le reMarkable en journal de Tom Jedusor façon Harry Potter
(github.com/MaximeRivest)- riddle est une application pour reMarkable Paper Pro où l’écriture au stylet disparaît après un court instant, puis une réponse réapparaît sous forme de traits manuscrits, comme dans le journal de Tom Jedusor, avant de disparaître à son tour
- Le flux de fonctionnement consiste à recevoir l’entrée au stylet, à valider la page en PNG après 2,8 secondes d’inactivité, puis à utiliser un LLM de vision pour lire l’écriture manuscrite et diffuser la réponse phrase par phrase
- L’installation est la plus simple via remagic ; il est aussi possible d’installer un bundle précompilé ou de compiler depuis les sources, mais le mode développeur et un lanceur sont nécessaires sur reMarkable Paper Pro
- L’application s’exécute en root et, en mode takeover, arrête l’interface fournisseur avant de piloter directement le moteur e-ink ; la portée des tests est limitée au reMarkable Paper Pro ferrari, aarch64, OS 3.26–3.27
- Le backend LLM peut utiliser une API
/chat/completionscompatible OpenAI ou un processus résidentpi --mode rpc, et les modifications de l’appareil ainsi que l’utilisation de bibliothèques fournisseur sont aux risques de l’utilisateur
Une application reMarkable qui fonctionne comme le journal de Tom Jedusor
- riddle est une application pour reMarkable Paper Pro : lorsque vous écrivez sur une page au stylet, l’écriture disparaît après un court instant comme si elle était absorbée par le papier, puis la réponse apparaît trait par trait dans une écriture manuscrite fluide
- Elle vise une expérience où l’encre apparaît sur le papier, sans lumière d’écran, clavier ni interface de chat
- C’est l’application de journal montrée dans la démo, utilisée en écrivant à « Tom »
Installation et mode d’exécution
- Pour une première utilisation, il faut passer le reMarkable Paper Pro en mode développeur et installer un lanceur
- remagic guide l’activation du mode développeur et la configuration de l’environnement en une seule commande
- Commandes d’installation remagic :
remagic install riddle: télécharge avec vérification de somme de contrôle, puis installe dans AppLoadremagic config riddle: ouvre un formulaire de configuration dans le navigateur et fournit aussi un QR code pour téléphone
- Si xovi et AppLoad sont déjà installés, l’installation peut se faire via le catalogue remagic, un bundle précompilé ou une compilation depuis les sources
- Après l’installation, appuyez sur Reload dans AppLoad, lancez The Diary, écrivez, puis laissez le stylet au repos pour déclencher le fonctionnement
Installation du bundle précompilé
- Téléchargez
riddle-<version>.zipdepuis la dernière release et décompressez-le dans un dossierriddle - Copiez le dossier vers
/home/root/xovi/exthome/appload/sur la tablette - Copiez
oracle.env.exampleenoracle.envet renseignez une clé d’API compatible OpenAI dansRIDDLE_OPENAI_KEY - Si aucune clé d’API n’est fournie, le chemin
pipeut être utilisé - Après Reload dans AppLoad, lancez The Diary
Modifications de l’appareil et périmètre de prise en charge
- riddle modifie l’appareil et s’exécute en root
- En mode takeover, il arrête l’interface fournisseur et pilote directement le moteur e-ink
- Le seul environnement testé est le reMarkable Paper Pro ferrari, aarch64, OS 3.26–3.27
- Il peut ne pas fonctionner sur d’autres modèles ou versions d’OS
- Il n’est pas associé à reMarkable AS, et l’accès SSH doit rester possible avant l’installation afin de disposer d’un chemin de récupération
Architecture interne
- L’entrée est reçue via raw evdev, avec 4096 niveaux de pression et la fréquence d’événements du matériel
- Lorsque l’utilisateur écrit puis s’arrête pendant 2,8 secondes, la page est validée et convertie en PNG
- oracle, le processus LLM résident, lit le PNG et diffuse la réponse phrase par phrase
- La réponse est rastérisée avec la police Dancing Script, puis transformée en trajectoires de stylet à pixel unique via le thinning de Zhang-Suen ; les traits sont ensuite suivis et rejoués en animation
- Il existe deux backends d’affichage
- qtfb : application AppLoad exécutée en mode fenêtré à l’intérieur de xochitl
- quill : mode full takeover qui arrête xochitl et pilote directement le moteur e-ink fournisseur
Organisation du dépôt
riddle/est l’application Rust ; elle comprend l’entrée au stylet, la surface d’encre, la synthèse manuscrite, le gestionnaire de processus oracle et les deux backends d’affichagequill/est l’hôte d’affichage takeover en C/C++- quill place un shim d’interposition de constructeur QImage, dans le style epfb-re, au-dessus du moteur de waveforms fournisseur
libqsgepaper.so, et fournit l’ABI Cquill_init,quill_buffer,quill_swap - quill inclut aussi le test de latence
scribbleainsi que des démos de rendu de cartes, d’images et de GIF
Gestes
- Écrivez, puis laissez le stylet au repos : le journal absorbe l’encre et Tom répond
- Retourner le Marker le fait agir comme une gomme
- Dessiner un grand ? appelle le guide intégré
- Taper simultanément avec cinq doigts permet de quitter le journal
- Appuyer sur le bouton d’alimentation affiche « The diary sleeps. » sur la page, puis met la tablette en veille ; un nouvel appui la réveille au même endroit
Backend LLM
- Les réponses sont générées par un LLM de vision qui reçoit la page validée sous forme de PNG inline et lit l’écriture manuscrite
- Au démarrage, l’un des deux backends est sélectionné
-
API compatible OpenAI
- Si
RIDDLE_OPENAI_KEYest défini, les requêtes sont envoyées directement à un endpoint/chat/completionscompatible OpenAI - Cela fonctionne avec les cibles prenant en charge le même format, comme OpenAI, OpenRouter, Groq ou un serveur local
- Exemple de configuration par défaut :
RIDDLE_OPENAI_KEY: obligatoireRIDDLE_OPENAI_BASE: optionnel, valeur par défauthttps://api.openai.com/v1RIDDLE_OPENAI_MODEL: optionnel, valeur par défautgpt-4o-mini, doit pouvoir voir des imagesRIDDLE_OPENAI_REASONING: pour les modèles thinkingRIDDLE_OPENAI_MAX_TOKENS: garde-fou contre les réponses incontrôlées- Avec les modèles thinking comme Gemini 3.x ou la série o, il est possible de définir
RIDDLE_OPENAI_REASONING=lowafin de réduire le temps avant la première encre - Certains fournisseurs rejettent le champ reasoning pour les modèles non-thinking ; dans ce cas, il ne faut pas le définir
- Les hidden reasoning tokens sont également comptés dans
RIDDLE_OPENAI_MAX_TOKENS, donc une limite trop basse peut rendre la réponse visible insuffisante - Avant l’exécution, vous pouvez vérifier la réponse en streaming avec
riddle --oracle-test path/to/handwriting.png - Le temps mesuré sur l’appareil jusqu’à la première encre est d’environ 0,9–1,1 seconde, et HTTPS est intégré à riddle en pure Rust
- Si
-
Chemin pi
- Si
piest déjà en cours d’exécution, riddle utilise un processus résidentpi --mode rpcmaintenu chaud - Ce chemin charge Node et l’authentification d’abonnement une seule fois, puis chaque tour ne paie que la latence du modèle
- Il est utilisé automatiquement lorsque
RIDDLE_OPENAI_KEYn’est pas défini - Les deux backends diffusent les réponses phrase par phrase, ce qui permet à quill de commencer à écrire avant que le modèle ait terminé
- Le prompt de persona se trouve dans
riddle/src/oracle.rs
- Si
Build
- La compilation croisée se fait depuis x86_64
- Le build AppLoad/qtfb en mode fenêtré nécessite xovi + AppLoad sur l’appareil
- Le build takeover est celui utilisé dans la démo ; il nécessite la toolchain reMarkable SDK
~/rm-sdk-3.26et lelibqsgepaper.sopropriétaire récupéré depuis l’appareil de l’utilisateur - Le bundle takeover est préparé sous forme de
dist/riddle/autonome comprenant le binaire,libquill.so, le script de lancement et le manifeste - Lorsqu’il est lancé via AppLoad, il s’exécute séparément dans une unité systemd transitoire, arrête xochitl, lance le journal, puis restaure toujours xochitl à la fermeture
- Les méthodes de fermeture sont le bouton d’alimentation, le tap à cinq doigts et SIGTERM
- En cas de problème, il est possible de redémarrer xochitl via SSH avec
systemctl start xochitl
Polices et licences
- L’écriture manuscrite des réponses utilise Dancing Script, sous licence SIL OFL 1.1
- Le code du dépôt est sous licence MIT
- Le
libqsgepaper.sofournisseur et les bibliothèques Qt ciblés par l’interposition ne sont pas inclus et doivent être obtenus depuis l’appareil ou le SDK de l’utilisateur
1 commentaires
Commentaires de Hacker News
Ironiquement, le journal de Tom Riddle qui pousse des enfants au suicide et leur explique même [1] comment faire paraît encore plus fidèle au personnage que la version du livre
[1] https://en.wikipedia.org/wiki/Deaths_linked_to_chatbots#Suic...
Heureusement, le formulaire de recours a fonctionné, mais à ce moment-là j’utilisais déjà un autre compte Claude en espérant ne pas me faire suspendre à nouveau
Il circule aussi des modèles non censurés qu’on peut faire tourner localement avec llama.cpp : https://www.reddit.com/r/LocalLLaMA/comments/1rq7jtm/qwen353...
Mais la fenêtre de contexte se remplit vite, ce qui les rend pénibles à utiliser, et ils ne sont absolument pas faits pour un déploiement en production. Autrement dit, un journal de Tom Riddle as-a-service est impossible
Pour le meilleur ou pour le pire, nous sommes désormais à une époque où le fun n’est plus autorisé, et ce moment coïncide avec l’apparition du terme « psychose liée à l’IA »
Ne fais jamais confiance à quelque chose qui peut penser par soi-même si tu ne peux pas voir où se trouve son cerveau
C’est un peu hors sujet, mais comparer son invention à un artefact maudit qui contrôle mentalement son utilisateur pour le pousser à trahir ses amis et à les livrer à une entité maléfique puissante ne me paraît pas très judicieux
Cela dit, comme ça tourne avec de l’IA générative, et que l’IA générative a déjà poussé des gens à mal agir, la comparaison est peut-être pertinente
Entreprise tech : nous avons enfin créé le Torment Nexus du grand classique de SF Ne créez pas le Torment Nexus
https://x.com/AlexBlechman/status/1457842724128833538?lang=e...
Et puis il y a aussi la phrase : « Toute technologie suffisamment avancée est indiscernable de la magie ». Les deux peuvent être conçues pour le bien comme pour le mal
En y repensant, c’est probablement le LLM qui a inventé cette analogie tout seul… ce qui, d’une certaine manière, est encore pire
C’est sick au sens Tony Hawk des années 90
J’aime le fait que les gens puissent désormais simplement pianoter et faire exister quelque chose
Avant, il fallait parfois attendre une journée à une semaine qu’une équipe d’ingénierie change la couleur d’un bouton
Nous ne vivons plus dans une époque lente
Ce bouton n’avait aucune importance et ne méritait aucune ressource, surtout pas des ressources d’ingénierie. Le fait que ça prenne une semaine n’était pas un bug, mais une fonctionnalité. Cela voulait dire que l’ingénierie évaluait correctement les priorités et l’urgence du travail
Ta machine à sous magique va permettre, à une échelle gigantesque, de produire des déchets et de se faire une idée déformée de l’effort d’ingénierie. Il y aura des conséquences
Tu étais peut-être le PM de ce projet ?
C’est une blague, j’espère
Ce genre d’idée serait bien mieux avec une courte démo vidéo, un GIF, ou ne serait-ce qu’une capture d’écran directement dans le README
Sinon, le titre se lit comme le mème « Curtains for Zoosha? ». [0]
[0]: https://www.reddit.com/r/BrandNewSentence/comments/15hcc4x/c...
https://x.com/MaximeRivest/status/2073544461473169432?s=20
Dans le titre, « remarkable » désigne la tablette « Remarkable Paper Pro ». Si on ne le sait pas, « Fable turned remarkable into Tom Riddle's diary » est très difficile à interpréter
Fait amusant, j’ai construit quelque chose de similaire à la fin de l’année dernière. Mais c’était sous la forme d’un navigateur permettant de dessiner sur un ordinateur ordinaire
J’ai utilisé pageflip [0] dans un style proche du vrai journal de Riddle, et j’y ai branché un petit modèle local via ollama pour le jeu de rôle
Je me souviens qu’en écrivant « my name is Harry Potter, what is yours? », selon les itérations, il répondait Snape, Malfoy, et même Harry Potter
Après avoir terminé l’expérience, j’ai découvert que je n’étais pas le premier à avoir eu cette idée, et j’ai trouvé plusieurs journaux IA de Riddle similaires
Au passage, j’ai une Remarkable 2 et, à partir de ce week-end, un iPad Air m4, donc je pourrais tester ça et voir à quoi ressemble l’exécution d’un modèle sur iOS
0) https://nodlik.github.io/react-pageflip/
Si Fable peut maintenant créer des Horcruxes, le département du Commerce devrait sérieusement envisager un nouveau temps mort
« Pas de lumière d’écran, pas de clavier, pas d’interface de chat. »
Ce n’est pas juste une interface de chat ?
Mais ça ne change rien au fait que c’est vraiment cool
Les LLM en général donnent fortement l’impression d’A Young Lady's Illustrated Primer. Une boîte noire magique à laquelle on peut tout demander
C’est encore plus vrai quand on y ajoute de fausses identités comme openclaw/soul
Projet vraiment amusant. Je n’achèterai pas vraiment un Paper Pro pour faire tourner cette app, mais j’aime que ce genre de chose existe et que des gens s’amusent avec