1 points par GN⁺ 4 시간 전 | 1 commentaires | Partager sur WhatsApp
  • 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/completions compatible OpenAI ou un processus résident pi --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 AppLoad
    • remagic 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>.zip depuis la dernière release et décompressez-le dans un dossier riddle
  • Copiez le dossier vers /home/root/xovi/exthome/appload/ sur la tablette
  • Copiez oracle.env.example en oracle.env et renseignez une clé d’API compatible OpenAI dans RIDDLE_OPENAI_KEY
  • Si aucune clé d’API n’est fournie, le chemin pi peut ê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’affichage
  • quill/ 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 C quill_init, quill_buffer, quill_swap
  • quill inclut aussi le test de latence scribble ainsi 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_KEY est défini, les requêtes sont envoyées directement à un endpoint /chat/completions compatible 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 : obligatoire
    • RIDDLE_OPENAI_BASE : optionnel, valeur par défaut https://api.openai.com/v1
    • RIDDLE_OPENAI_MODEL : optionnel, valeur par défaut gpt-4o-mini, doit pouvoir voir des images
    • RIDDLE_OPENAI_REASONING : pour les modèles thinking
    • RIDDLE_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=low afin 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
  • Chemin pi

    • Si pi est déjà en cours d’exécution, riddle utilise un processus résident pi --mode rpc maintenu 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_KEY n’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

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.26 et le libqsgepaper.so proprié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.so fournisseur 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

 
GN⁺ 4 시간 전
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...

    • Tous les IA refuseraient ce genre de prompt. En enquêtant sur l’aide à mourir dans les pays nordiques, j’ai demandé exactement quel médicament administrer et à quelle dose ; Claude a refusé et l’a signalé à Anthropic, puis mon compte a été suspendu quelques jours plus tard
      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 »
    • Je ne savais pas qu’il y avait déjà eu autant de morts avec ChatGPT seul. Je pensais qu’il y en avait deux ou trois, mais la liste est beaucoup plus longue que prévu
  • Ne fais jamais confiance à quelque chose qui peut penser par soi-même si tu ne peux pas voir où se trouve son cerveau

    • Au contraire, c’est encore plus proche de la manière dont fonctionne le journal de Tom Riddle
    • C’est pour ça que j’aurais trouvé plus impressionnant qu’ils en fassent un modèle local totalement autonome, plutôt qu’un truc qui communique avec le cloud
  • 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

    • Auteur de SF : dans mon livre, j’ai inventé le Torment Nexus comme dispositif de mise en garde
      Entreprise tech : nous avons enfin créé le Torment Nexus du grand classique de SF Ne créez pas le Torment Nexus
    • On a enfin créé le Torment Nexus du grand classique de SF « Don’t Create The Torment Nexus »
      https://x.com/AlexBlechman/status/1457842724128833538?lang=e...
    • Si la comparaison est exacte, en quoi est-elle mauvaise ?
      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
    • Je pensais que c’était justement une partie du charme de ce projet. Il y a quelque chose d’inquiétant et ironique
    • J’ai dû relire. Ils présentent vraiment cette comparaison comme quelque chose de positif ?!
      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

    • Tu penses que la technologie était le goulot d’étranglement ?
      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
    • Si une équipe mettait une semaine à changer la couleur d’un bouton, ce n’est pas parce que la modification du code était difficile
      Tu étais peut-être le PM de ce projet ?
    • Ce qui est drôle, c’est que créer le mécanisme d’entrée-sortie est bien moins impressionnant, et surtout beaucoup moins utile, que la technologie LLM sous-jacente que Hacker News dénigre souvent
    • Tu as attendu une journée à une semaine une équipe d’ingénierie pour changer la couleur d’un bouton ?
      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...

  • 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

    • Exact. Par sécurité, autant interdire aussi les modèles chinois capables de faire la même chose
  • « Pas de lumière d’écran, pas de clavier, pas d’interface de chat. »
    Ce n’est pas juste une interface de chat ?

    • Ce n’est pas seulement une interface de chat, c’est un frontend de communication écrite :sparkle: !
    • Il faut absolument inclure la formule « no x no y no z »
    • Oui. Comme on ne peut pas s’arrêter pour réfléchir, on pourrait même dire que c’est une forme pire
      Mais ça ne change rien au fait que c’est vraiment cool
    • C’est clairement une interface de chat
    • Les gens vont s’émerveiller devant ça tout en qualifiant les LLM de déchets
  • 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