4 Punkte von GN⁺ 12 일 전 | 1 Kommentare | Auf WhatsApp teilen
  • riddle ist eine App für das reMarkable Paper Pro, bei der mit dem Stift geschriebene Schrift nach kurzer Zeit verschwindet und eine Antwort wie in Tom Riddles Tagebuch in handschriftlichen Strichen wieder erscheint und anschließend verschwindet
  • Der Ablauf: Stifteingaben werden erfasst, nach 2,8 Sekunden Inaktivität wird die Seite als PNG festgeschrieben, und ein Vision-LLM liest die Handschrift und streamt die Antwort satzweise
  • Die Installation ist am einfachsten über remagic; alternativ sind ein vorgebautes Bundle oder ein Build aus dem Quellcode 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. 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; Gerätemodifikationen und die Nutzung von Vendor-Bibliotheken erfolgen auf eigenes Risiko

Eine reMarkable-App, die wie Tom Riddles Tagebuch funktioniert

  • riddle ist eine App für das reMarkable Paper Pro: Wenn man mit dem Stift auf eine Seite schreibt, verschwindet die Schrift nach kurzer Zeit, als würde sie ins Papier einsickern, und die Antwort erscheint Strich für Strich in fließender Handschrift
  • Ziel ist ein Erlebnis, bei dem Tinte auf Papier erscheint, ohne Displaylicht, Tastatur oder Chat-UI
  • Es handelt sich um die Tagebuch-App aus der Demo; genutzt wird sie, indem 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 Aktivierung des Entwicklermodus und Einrichtung der Umgebung mit einem einzigen Befehl
  • remagic-Installationsbefehle:
    • remagic install riddle: lädt mit Prüfsummenprüfung herunter und installiert 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 vorgebautes Bundle oder einen Build aus dem Quellcode erfolgen
  • Nach der Installation in AppLoad auf Reload tippen, The Diary starten, schreiben und den Stift ruhen lassen

Installation des vorgebauten Bundles

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

Gerätemodifikation und unterstützter Umfang

  • riddle verändert das Gerät und wird als root ausgeführt
  • Im Takeover-Modus stoppt es die Vendor-UI und steuert die E-Ink-Engine direkt
  • 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 besteht keine Verbindung zu reMarkable AS; vor der Installation muss der SSH-Zugriff weiterhin möglich sein, damit ein Wiederherstellungspfad vorhanden ist

Interner Aufbau

  • Eingaben werden über raw evdev erfasst, mit 4096 Druckstufen und der Ereignisrate der Hardware
  • Wenn der Nutzer schreibt und dann 2,8 Sekunden pausiert, wird die Seite committet und in ein PNG umgewandelt
  • Der residente LLM-Prozess oracle liest das PNG und streamt die Antwort satzweise
  • Die Antwort wird mit der Schriftart Dancing Script gerastert, per Zhang-Suen Thinning in Ein-Pixel-Stiftpfade umgewandelt, nach Strichen verfolgt und anschließend animiert abgespielt
  • 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 steuert

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-ABIs quill_init, quill_buffer, quill_swap bereit
  • quill enthält außerdem den Latenztest scribble sowie Demos für Karten-, Bild- und GIF-Rendering

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 eingebaute Anleitung auf
  • Gleichzeitiges Tippen mit fünf Fingern beendet das Tagebuch
  • Beim Drücken des Power-Buttons wird „The diary sleeps.“ auf der Seite angezeigt, danach wird das Tablet suspendiert; bei erneutem Drücken wacht es an derselben Stelle wieder auf

LLM-Backend

  • Die Antwort wird von einem Vision-LLM erzeugt, das die committete Seite als Inline-PNG erhält und die Handschrift liest
  • Beim Start wird eines von zwei Backends gewä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 lokalen Servern
    • 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; ein zu niedriges Limit kann daher die sichtbare Antwort zu knapp machen
    • Vor der Ausführung kann man mit riddle --oracle-test path/to/handwriting.png die Streaming-Antwort prüfen
    • 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 warm gehaltenen residenten pi --mode rpc-Prozess
    • Bei diesem Pfad werden Node und die Abo-Authentifizierung einmal geladen; pro Turn fällt dann nur noch die Modelllatenz an
    • Er wird automatisch genutzt, wenn RIDDLE_OPENAI_KEY nicht gesetzt ist
    • Beide Backends streamen Antworten satzweise, sodass quill bereits schreiben kann, bevor das Modell fertig ist
    • Der Persona-Prompt befindet sich in riddle/src/oracle.rs

Build

  • Cross-Compilation erfolgt auf x86_64
  • Für den AppLoad/qtfb-Build im Fenstermodus ist 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 eigenständiges dist/riddle/ gestaged und enthält Binary, libquill.so, Launch-Skript und Manifest
  • Beim Start über AppLoad läuft es isoliert als transiente systemd-Unit, stoppt xochitl, startet danach das Tagebuch und stellt beim Beenden immer xochitl wieder her
  • Beenden ist per Power-Button, Fünf-Finger-Tap oder SIGTERM möglich
  • Falls ein Problem auftritt, kann xochitl per SSH mit systemctl start xochitl neu gestartet werden

Schriftarten und Lizenzen

  • Für die Handschrift der Antworten wird Dancing Script verwendet, lizenziert unter SIL OFL 1.1
  • Der Code im Repository steht unter der MIT-Lizenz
  • Die per Interposition angesprochene Vendor-libqsgepaper.so und die Qt-Bibliotheken sind nicht enthalten und müssen vom Gerät oder aus dem SDK des Nutzers stammen

1 Kommentare

 
GN⁺ 12 일 전
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.