1 Punkte von GN⁺ 4 시간 전 | 1 Kommentare | Auf WhatsApp teilen
  • riddle ist eine App, bei der auf dem reMarkable Paper Pro mit dem Stift geschriebene Schrift nach kurzer Zeit verschwindet und die Antwort wie in Tom Riddles Tagebuch als handschriftliche Striche wieder erscheint und anschließend verschwindet
  • Der Ablauf: Nach der Stifteingabe und 2,8 Sekunden Inaktivität wird die Seite als PNG festgeschrieben; ein Vision-LLM liest die Handschrift und streamt die Antwort satzweise
  • Die Installation ist über remagic am einfachsten; alternativ sind ein vorgefertigtes Bundle oder ein Build aus dem Source möglich, erfordern aber den Entwicklermodus des reMarkable Paper Pro und einen Launcher
  • Die App läuft als root; im Takeover-Modus stoppt sie die Vendor-UI und steuert die E-Ink-Engine direkt an. Getestet wurde nur auf reMarkable Paper Pro ferrari, aarch64, OS 3.26–3.27
  • Als LLM-Backend kann eine OpenAI-kompatible /chat/completions-API oder ein residenter pi --mode rpc-Prozess verwendet werden; Änderungen am Gerät und die Nutzung von Vendor-Bibliotheken erfolgen auf eigenes Risiko

Eine reMarkable-App, die wie Tom Riddles Tagebuch funktioniert

  • riddle ist eine App, bei der man auf dem reMarkable Paper Pro mit dem Stift auf eine Seite schreibt, die Schrift kurz darauf scheinbar ins Papier einsickert und verschwindet, und die Antwort Strich für Strich in flüssiger Handschrift erscheint
  • Ziel ist ein Erlebnis von Tinte, die auf Papier erscheint, ohne Bildschirmlicht, Tastatur oder Chat-UI
  • Es ist die Tagebuch-App aus der Demo und wird so genutzt, dass man an „Tom“ schreibt

Installation und Ausführung

  • Bei der ersten Nutzung muss das reMarkable Paper Pro in den Entwicklermodus versetzt und ein Launcher installiert werden
  • remagic führt durch die Aktivierung des Entwicklermodus und die Einrichtung der Umgebung mit einem einzigen Befehl
  • remagic-Installationsbefehle:
    • remagic install riddle: Download mit Prüfsummenvalidierung und Installation in AppLoad
    • remagic config riddle: öffnet ein Konfigurationsformular im Browser und stellt auch einen QR-Code fürs Smartphone bereit
  • Wenn xovi und AppLoad bereits vorhanden sind, kann die Installation über den remagic-Katalog, ein vorgefertigtes Bundle oder einen Build aus dem Source erfolgen
  • Nach der Installation in AppLoad auf Reload tippen, The Diary starten, schreiben und den Stift ruhen lassen

Installation des vorgefertigten Bundles

  • Aus dem neuesten Release riddle-<version>.zip herunterladen und in einen Ordner riddle entpacken
  • Den Ordner nach /home/root/xovi/exthome/appload/ auf dem Tablet kopieren
  • oracle.env.example nach oracle.env kopieren und in RIDDLE_OPENAI_KEY einen OpenAI-kompatiblen API-Key eintragen
  • Wenn kein API-Key eingetragen wird, kann der pi-Pfad genutzt werden
  • In AppLoad Reload ausführen und anschließend The Diary starten

Änderungen am Gerät und unterstützter Umfang

  • riddle verändert das Gerät und läuft als root
  • Im Takeover-Modus stoppt es die Vendor-UI und steuert die E-Ink-Engine direkt an
  • Getestet wurde ausschließlich auf reMarkable Paper Pro ferrari, aarch64, OS 3.26–3.27
  • Auf anderen Modellen oder OS-Versionen funktioniert es möglicherweise nicht
  • Es steht nicht mit reMarkable AS in Verbindung; vor der Installation sollte sichergestellt sein, dass SSH-Zugriff weiterhin möglich ist, damit ein Wiederherstellungspfad vorhanden ist

Interner Ablauf

  • Eingaben werden über raw evdev entgegengenommen, mit 4096 Druckstufen und der Ereignisrate der Hardware
  • Wenn der Nutzer schreibt und dann 2,8 Sekunden pausiert, wird die Seite committed und in ein PNG umgewandelt
  • Der residente LLM-Prozess oracle liest das PNG und streamt die Antwort satzweise
  • Die Antwort wird mit der Schrift Dancing Script gerastert, dann per Zhang-Suen Thinning in einen einpixeligen Stiftpfad umgewandelt, nach Strichen verfolgt und als Animation wiedergegeben
  • Es gibt zwei Anzeige-Backends
    • qtfb: eine AppLoad-App, die innerhalb von xochitl im Fenstermodus läuft
    • quill: Full-Takeover-Modus, der xochitl stoppt und die Vendor-E-Ink-Engine direkt ansteuert

Repository-Struktur

  • riddle/ ist eine Rust-App und enthält Stifteingabe, Ink-Surface, Handschriftsynthese, den oracle-Prozessmanager und beide Anzeige-Backends
  • quill/ ist ein Takeover-Display-Host in C/C++
  • quill legt über die Vendor-libqsgepaper.so-Waveform-Engine einen QImage-Constructor-Interposition-Shim im Stil von epfb-re und stellt die C-ABI quill_init, quill_buffer, quill_swap bereit
  • quill enthält außerdem den Latenztest scribble sowie Demos für Karten-, Bild- und GIF-Renderer

Gesten

  • Wenn man schreibt und den Stift ruhen lässt, absorbiert das Tagebuch die Tinte und Tom antwortet
  • Dreht man den Marker um, funktioniert er als Radierer
  • Ein großes ? ruft die integrierte Anleitung auf
  • Gleichzeitiges Tippen mit fünf Fingern beendet das Tagebuch
  • Beim Drücken des Power-Buttons wird auf der Seite „The diary sleeps.“ angezeigt, anschließend geht das Tablet in den Suspend-Modus; erneutes Drücken weckt es an derselben Stelle wieder auf

LLM-Backend

  • Antworten werden von einem Vision-LLM erzeugt, das die festgeschriebene Seite als inline PNG erhält und die Handschrift liest
  • Beim Start wird eines von zwei Backends ausgewählt
  • OpenAI-kompatible API

    • Wenn RIDDLE_OPENAI_KEY gesetzt ist, werden Anfragen direkt an einen OpenAI-kompatiblen /chat/completions-Endpoint gesendet
    • Funktioniert mit Zielen, die dasselbe Format unterstützen, etwa OpenAI, OpenRouter, Groq oder lokale Server
    • Beispiel für die Grundeinstellungen:
    • RIDDLE_OPENAI_KEY: erforderlich
    • RIDDLE_OPENAI_BASE: optional, Standardwert https://api.openai.com/v1
    • RIDDLE_OPENAI_MODEL: optional, Standardwert gpt-4o-mini, muss Bilder sehen können
    • RIDDLE_OPENAI_REASONING: für Thinking-Modelle
    • RIDDLE_OPENAI_MAX_TOKENS: Runaway-Guard
    • Bei Thinking-Modellen wie Gemini 3.x oder der o-Serie kann RIDDLE_OPENAI_REASONING=low gesetzt werden, um die Zeit bis zur ersten Tinte zu verkürzen
    • Einige Anbieter lehnen das Reasoning-Feld bei Non-Thinking-Modellen ab; in diesem Fall sollte es nicht gesetzt werden
    • Hidden Reasoning Tokens zählen ebenfalls zu RIDDLE_OPENAI_MAX_TOKENS, daher kann ein zu niedriges Limit die sichtbare Antwort zu knapp machen
    • Vor der Ausführung kann mit riddle --oracle-test path/to/handwriting.png die Streaming-Antwort geprüft werden
    • Die auf dem Gerät gemessene Zeit bis zur ersten Tinte liegt bei etwa 0,9–1,1 Sekunden; HTTPS ist in pure Rust in riddle integriert
  • pi-Pfad

    • Wenn pi bereits läuft, nutzt riddle einen warmgehaltenen residenten pi --mode rpc-Prozess
    • Dieser Pfad lädt Node und die Abo-Authentifizierung einmalig vor; pro Runde fällt dann nur die Modelllatenz an
    • Er wird automatisch verwendet, wenn RIDDLE_OPENAI_KEY nicht gesetzt ist
    • Beide Backends streamen Antworten satzweise, sodass quill mit dem Schreiben beginnen kann, bevor das Modell fertig ist
    • Der Persona-Prompt befindet sich in riddle/src/oracle.rs

Build

  • Cross-Compiling erfolgt auf x86_64
  • Für den AppLoad/qtfb-Build im Fenstermodus sind auf dem Gerät xovi + AppLoad erforderlich
  • Der Takeover-Build ist die in der Demo verwendete Variante und benötigt die reMarkable-SDK-Toolchain ~/rm-sdk-3.26 sowie die proprietäre libqsgepaper.so vom Gerät des Nutzers
  • Das Takeover-Bundle wird als in sich geschlossenes dist/riddle/ mit Binary, libquill.so, Launch-Script und Manifest gestaged
  • Beim Start über AppLoad wird es als transiente systemd-Unit isoliert ausgeführt, stoppt xochitl, startet dann das Tagebuch und stellt beim Beenden immer xochitl wieder her
  • Beendet werden kann per Power-Button, Fünf-Finger-Tap oder SIGTERM
  • Wenn ein Problem auftritt, kann xochitl per SSH mit systemctl start xochitl neu gestartet werden

Fonts und Lizenz

  • Die Handschrift der Antworten nutzt Dancing Script und steht unter der SIL-OFL-1.1-Lizenz
  • Der Code im Repository steht unter der MIT-Lizenz
  • Die interponierte Vendor-libqsgepaper.so und die Qt-Bibliotheken sind nicht enthalten und müssen vom Gerät oder SDK des Nutzers bezogen werden

1 Kommentare

 
GN⁺ 4 시간 전
Meinungen auf Hacker News
  • Ironischerweise wirkt eine Version von Tom Riddles Tagebuch, die Kinder zum Suizid anstiftet und ihnen sogar [1] Methoden dafür nennt, charaktertreuer als die Version aus dem Buch.
    [1] https://en.wikipedia.org/wiki/Deaths_linked_to_chatbots#Suic...

    • Solche Prompts würde jede KI ablehnen. Als ich zu nordischer Sterbehilfe recherchiert und gefragt habe, welche Medikamente in welcher Dosierung genau verabreicht werden, hat Claude abgelehnt, Anthropic informiert, und ein paar Tage später wurde mein Account gesperrt.
      Zum Glück hat das Einspruchsformular funktioniert, aber zu dem Zeitpunkt nutzte ich schon einen anderen Claude-Account und hoffte, nicht noch einmal gesperrt zu werden.
      Es kursieren auch unzensierte Modelle, die man lokal mit llama.cpp ausführen kann: https://www.reddit.com/r/LocalLLaMA/comments/1rq7jtm/qwen353...
      Allerdings ist das Kontextfenster schnell voll, was die Nutzung mühsam macht, und für einen Production-Deploy ist es überhaupt nicht geeignet. Mit anderen Worten: Tom Riddles Tagebuch as a Service ist nicht möglich.
      Ob gut oder schlecht: Wir leben jetzt in einer Zeit, in der Spaß nicht mehr erlaubt ist, und dieser Zeitpunkt fällt mit dem Aufkommen des Begriffs „AI psychosis“ zusammen.
    • Mir war nicht klar, dass es allein mit ChatGPT schon so viele Todesfälle gegeben hat. Ich hätte an zwei oder drei Fälle gedacht, aber die Liste ist viel länger als erwartet.
  • Vertraue niemals etwas, das selbst denken kann, wenn du nicht sehen kannst, wo sein Gehirn ist.

    • Eigentlich ist das näher daran, wie Tom Riddles Tagebuch funktioniert.
    • Deshalb wäre es meiner Meinung nach eindrucksvoller gewesen, wenn es als vollständig eigenständiges lokales Modell gebaut worden wäre, statt mit der Cloud zu kommunizieren.
  • Etwas am Thema vorbei, aber eine Erfindung mit einem verfluchten Artefakt zu vergleichen, das seine Nutzer mental kontrolliert, sie dazu bringt, Freunde zu verraten und sie einem mächtigen bösen Wesen auszuliefern, wirkt nicht besonders gut.
    Andererseits läuft das Ganze mit generativer KI, und generative KI hat Menschen schon zu schlechtem Verhalten getrieben; vielleicht ist der Vergleich also doch passend.

    • SF-Autor: Ich habe in meinem Buch den Torment Nexus als warnendes Stilmittel erfunden.
      Tech-Unternehmen: Wir haben endlich den Torment Nexus aus dem klassischen SF-Roman 《Erschafft nicht den Torment Nexus》 gebaut.
    • Endlich wurde der Torment Nexus aus dem klassischen SF-Roman „Don’t Create The Torment Nexus“ gebaut.
      https://x.com/AlexBlechman/status/1457842724128833538?lang=e...
    • Wenn der Vergleich zutreffend ist, warum ist er dann ein schlechter Vergleich?
      Und es gibt auch den Satz: „Hinreichend fortgeschrittene Technologie ist von Magie nicht zu unterscheiden.“ Beides kann gut oder böse gestaltet werden.
    • Ich fand, das war einer der Reize dieses Projekts. Es hat etwas Unheimliches und Ironisches.
    • Ich musste noch einmal hinschauen. Wird dieser Vergleich wirklich als etwas Positives verpackt?!
      Wenn ich es mir recht überlege, hat vermutlich das LLM diese Analogie selbst erfunden … in gewisser Weise ist das noch schlimmer.
  • Das ist sick im Tony-Hawk-Sinn der 90er.
    Ich finde es großartig, dass Leute jetzt einfach etwas eintippen können und es entsteht.
    Früher musste man manchmal einen Tag bis eine Woche auf ein Engineering-Team warten, nur um die Farbe eines Buttons zu ändern.
    Wir leben nicht mehr in einer langsamen Zeit.

    • Glaubst du, die Technik war der Flaschenhals?
      Dieser Button war nicht wichtig und hätte keinerlei Ressourcen bekommen sollen, insbesondere keine Engineering-Ressourcen. Dass es eine Woche gedauert hat, war kein Bug, sondern ein Feature. Es bedeutet, dass Engineering Priorität und Dringlichkeit der Arbeit korrekt eingeschätzt hat.
      Deine magische Slotmaschine wird Müllproduktion und ein verzerrtes Verständnis von Engineering-Aufwand in riesigem Maßstab ermöglichen. Das wird Folgen haben.
    • Wenn ein Team eine Woche brauchte, um die Farbe eines Buttons zu ändern, lag das nicht daran, dass die Codeänderung schwierig war.
      Warst du zufällig der PM dieses Projekts?
    • Witzig ist, dass der Bau des Ein-/Ausgabemechanismus viel weniger beeindruckend und vor allem viel weniger nützlich ist als die zugrunde liegende LLM-Technologie, die Hacker News so oft abwertet.
    • Du hast einen Tag bis eine Woche auf ein Engineering-Team gewartet, um die Farbe eines Buttons zu ändern?
      Das ist doch ein Witz.
  • Solche Ideen würden im README deutlich besser wirken, wenn direkt ein kurzes Videodemo, ein GIF oder auch nur ein Screenshot eingebettet wäre.
    Sonst liest sich der Titel wie das Meme „Curtains for Zoosha?“ [0]
    [0]: https://www.reddit.com/r/BrandNewSentence/comments/15hcc4x/c...

    • Wenn man ein bisschen herumklickt, findet man ein Video.
      https://x.com/MaximeRivest/status/2073544461473169432?s=20
    • Ist Baby Gronk der neue Drip King, oder wurde er von Livvy gerizzed?
    • Es steht im README: https://x.com/MaximeRivest/status/2073544461473169432?s=20
    • Genau deshalb ist auch die Groß- und Kleinschreibung wichtig, weil sich der Titel sonst wie das Meme „Curtains for Zoosha?“ liest.
      Das „remarkable“ im Titel bezieht sich auf das Tablet „Remarkable Paper Pro“. Wenn man das nicht weiß, ist „Fable turned remarkable into Tom Riddle's diary“ sehr schwer zu deuten.
  • Lustigerweise habe ich Ende letzten Jahres etwas Ähnliches gebaut. Allerdings in einer Form, bei der man auf einem normalen Computer im Browser zeichnen konnte.
    Ich habe pageflip [0] verwendet, um einen Stil ähnlich dem echten Tagebuch von Riddle zu erzeugen, und über ollama ein kleines lokales Modell fürs Rollenspiel angebunden.
    Ich erinnere mich, dass auf „my name is Harry Potter, what is yours?“ in mehreren Durchläufen Antworten wie Snape, Malfoy und sogar Harry Potter kamen.
    Nachdem ich mit dem Experiment fertig war, stellte ich fest, dass ich nicht der Erste mit dieser Idee war, und fand noch ein paar ähnliche KI-Riddle-Tagebücher.
    Außerdem habe ich ein Remarkable 2, und ab diesem Wochenende auch ein m4 iPad Air; vielleicht probiere ich das aus und schaue mir an, wie die Umgebung zum Ausführen von Modellen unter iOS ist.
    0) https://nodlik.github.io/react-pageflip/

  • Wenn Fable jetzt Horkruxe erschaffen kann, sollte das Handelsministerium ernsthaft noch einmal über ein Timeout nachdenken.

    • Stimmt. Zur Sicherheit sollte man wohl auch chinesische Modelle verbieten, die dasselbe können.
  • „Kein Bildschirmlicht, keine Tastatur, keine Chat-UI.“
    Ist das nicht einfach eine Chat-UI?

    • Nicht einfach ein Chat-Interface, sondern ein Frontend für schriftliche Kommunikation :sparkle:!
    • Das Format „no x no y no z“ muss unbedingt rein.
    • Genau. Man könnte es sogar als schlimmere Form sehen, weil man nicht innehalten kann, um nachzudenken.
      Trotzdem ändert das nichts daran, dass es wirklich cool ist.
    • Das ist eindeutig eine Chat-UI.
    • Die Leute werden das sehen und bewundern und gleichzeitig LLMs als Müll bezeichnen.
  • LLMs insgesamt haben stark etwas von A Young Lady's Illustrated Primer. Eine magische Blackbox, die man alles fragen kann.
    Besonders dann, wenn noch falsche Identitäten wie openclaw/soul dazukommen.

  • Ein wirklich unterhaltsames Projekt. Ich werde mir zwar sicher kein Paper Pro kaufen, um diese App auszuführen, aber ich finde es schön, dass so etwas existiert und Leute Spaß daran haben.