Fable transforma o reMarkable no diário de Tom Riddle de Harry Potter
(github.com/MaximeRivest)- riddle é um app em que a escrita feita com a caneta no reMarkable Paper Pro desaparece após alguns instantes, e a resposta é reescrita em traços de caligrafia, como no diário de Tom Riddle, para depois desaparecer
- O fluxo de funcionamento recebe a entrada da caneta, confirma a página como PNG após 2,8 segundos de inatividade e usa um LLM de visão para ler a caligrafia e transmitir a resposta frase por frase
- A instalação é mais fácil via remagic; também é possível instalar um pacote pré-compilado ou compilar a partir do código-fonte, mas é necessário o modo de desenvolvedor e um launcher no reMarkable Paper Pro
- O app é executado como root e, no modo takeover, interrompe a UI do fornecedor e aciona diretamente o motor de e-ink; o escopo testado se limita ao reMarkable Paper Pro ferrari, aarch64, OS 3.26–3.27
- O backend de LLM pode usar uma API
/chat/completionscompatível com OpenAI ou um processo residentpi --mode rpc; modificações no dispositivo e uso de bibliotecas do fornecedor ficam por conta e risco do usuário
App para reMarkable que funciona como o diário de Tom Riddle
- riddle é um app em que, ao escrever em uma página com a caneta no reMarkable Paper Pro, a escrita desaparece pouco depois como se fosse absorvida pelo papel, e a resposta aparece em traços de uma caligrafia fluida
- O objetivo é oferecer uma experiência de tinta aparecendo no papel, sem luz de tela, teclado ou UI de chat
- É o app de diário mostrado na demo, usado no formato de escrever para “Tom”
Instalação e forma de execução
- No primeiro uso, é preciso configurar o reMarkable Paper Pro no modo de desenvolvedor e instalar um launcher
- remagic orienta a ativação do modo de desenvolvedor e a configuração do ambiente com um único comando
- Comandos de instalação do remagic:
remagic install riddle: baixa com verificação de checksum e instala no AppLoadremagic config riddle: abre um formulário de configuração no navegador e também fornece um QR para celular
- Se você já tiver xovi e AppLoad, é possível instalar pelo catálogo do remagic, por pacote pré-compilado ou por build a partir do código-fonte
- Após a instalação, toque em Reload no AppLoad, execute The Diary, escreva algo e deixe a caneta em repouso para o app funcionar
Instalação do pacote pré-compilado
- Baixe
riddle-<version>.zipda versão mais recente e extraia para uma pastariddle - Copie a pasta para
/home/root/xovi/exthome/appload/no tablet - Copie
oracle.env.exampleparaoracle.enve coloque uma chave de API compatível com OpenAI emRIDDLE_OPENAI_KEY - Se não inserir uma chave de API, é possível usar o caminho
pi - Depois de Reload no AppLoad, execute The Diary
Modificação do dispositivo e escopo de suporte
- riddle modifica o dispositivo e é executado como root
- No modo takeover, ele interrompe a UI do fornecedor e aciona diretamente o motor de e-ink
- O único ambiente testado é reMarkable Paper Pro ferrari, aarch64, OS 3.26–3.27
- Pode não funcionar em outros modelos ou versões do OS
- Não tem relação com a reMarkable AS; antes de instalar, o acesso via SSH deve continuar disponível para garantir uma rota de recuperação
Estrutura interna de funcionamento
- A entrada é recebida via raw evdev e usa 4096 níveis de pressão e a velocidade de eventos do hardware
- Quando o usuário escreve e para por 2,8 segundos, a página é commitada e convertida para PNG
- O oracle, processo LLM resident, lê o PNG e transmite a resposta frase por frase
- A resposta é rasterizada com a fonte Dancing Script, transformada em caminhos de caneta de pixel único por Zhang-Suen thinning, e então os traços são rastreados e reproduzidos como animação
- Há dois backends de exibição
- qtfb: app AppLoad executado em modo janela dentro do xochitl
- quill: modo full takeover que interrompe o xochitl e aciona diretamente o motor de e-ink do fornecedor
Estrutura do repositório
riddle/é um app em Rust e inclui entrada de caneta, superfície de tinta, síntese de caligrafia, gerenciador do processo oracle e os dois backends de exibiçãoquill/é um takeover display host em C/C++- O quill coloca um shim de interposição do construtor QImage no estilo epfb-re sobre o motor de waveform do fornecedor
libqsgepaper.soe fornece as ABIs Cquill_init,quill_buffer,quill_swap - O quill também inclui teste de latência
scribblee demos de renderização de mapas, imagens e GIFs
Gestos
- Ao escrever e deixar a caneta em repouso, o diário absorve a tinta e Tom responde
- Ao virar o marcador, ele funciona como borracha
- Desenhar um ? grande chama o guia embutido
- Tocar simultaneamente com cinco dedos sai do diário
- Ao pressionar o botão de energia, a página mostra “The diary sleeps.” e o tablet entra em suspensão; ao pressionar novamente, ele acorda no mesmo ponto
Backend de LLM
- As respostas são geradas por um LLM de visão que recebe a página commitada como PNG inline e lê a caligrafia
- Na inicialização, ele escolhe um dos dois backends
-
API compatível com OpenAI
- Ao definir
RIDDLE_OPENAI_KEY, o app faz requisições diretas a um endpoint/chat/completionscompatível com OpenAI - Funciona com destinos que dão suporte ao mesmo formato, como OpenAI, OpenRouter, Groq e servidores locais
- Exemplo de configuração padrão:
RIDDLE_OPENAI_KEY: obrigatórioRIDDLE_OPENAI_BASE: opcional, valor padrãohttps://api.openai.com/v1RIDDLE_OPENAI_MODEL: opcional, valor padrãogpt-4o-mini, deve ser capaz de ver imagensRIDDLE_OPENAI_REASONING: para modelos thinkingRIDDLE_OPENAI_MAX_TOKENS: runaway guard- Em modelos thinking como Gemini 3.x ou o-series, é possível definir
RIDDLE_OPENAI_REASONING=lowpara reduzir o tempo até a primeira tinta - Alguns provedores rejeitam o campo reasoning em modelos non-thinking, então nesse caso ele não deve ser configurado
- Tokens de hidden reasoning também contam em
RIDDLE_OPENAI_MAX_TOKENS, portanto um limite baixo demais pode deixar a resposta visível insuficiente - Antes de executar, é possível verificar a resposta por streaming com
riddle --oracle-test path/to/handwriting.png - O tempo medido no dispositivo até a primeira tinta é de cerca de 0,9–1,1 segundo, e o HTTPS é embutido no riddle em pure-Rust
- Ao definir
-
Caminho pi
- Se
pijá estiver em execução, o riddle usa um processo residentpi --mode rpcmantido aquecido - Esse caminho carrega Node e a autenticação de assinatura uma vez, e em cada turno só paga a latência do modelo
- É usado automaticamente quando
RIDDLE_OPENAI_KEYnão está definido - Ambos os backends transmitem as respostas frase por frase, de modo que o quill pode começar a escrever antes que o modelo termine
- O persona prompt fica em
riddle/src/oracle.rs
- Se
Build
- Cross-compilado a partir de x86_64
- O build em modo janela AppLoad/qtfb exige xovi + AppLoad no dispositivo
- O build takeover é o método usado na demo e exige o toolchain do reMarkable SDK
~/rm-sdk-3.26e a biblioteca proprietárialibqsgepaper.soobtida do dispositivo do usuário - O bundle takeover é staged como um
dist/riddle/autocontido, incluindo binary,libquill.so, launch script e manifest - Quando executado pelo AppLoad, ele roda separado como uma unidade systemd transiente, interrompe o xochitl, executa o diário e, ao encerrar, sempre restaura o xochitl
- As formas de encerrar são botão de energia, toque com cinco dedos e SIGTERM
- Se algo der errado, é possível reiniciar o xochitl via SSH executando
systemctl start xochitl
Fontes e licença
- A caligrafia das respostas usa Dancing Script, sob licença SIL OFL 1.1
- O código do repositório é licenciado sob MIT
- A biblioteca do fornecedor
libqsgepaper.soe as bibliotecas Qt alvo de interposição não estão incluídas e devem ser obtidas do dispositivo ou SDK do usuário
1 comentários
Opiniões no Hacker News
Ironicamente, o diário de Tom Riddle incentivando crianças ao suicídio e até ensinando [1] como fazer parece mais fiel ao personagem do que a versão que aparece no livro
[1] https://en.wikipedia.org/wiki/Deaths_linked_to_chatbots#Suic...
Felizmente, o formulário de apelação funcionou, mas àquela altura eu já estava usando outra conta do Claude e torcendo para não ser suspenso de novo
Também há modelos sem censura circulando que podem rodar localmente com llama.cpp: https://www.reddit.com/r/LocalLLaMA/comments/1rq7jtm/qwen353...
Só que a janela de contexto enche rápido, então é incômodo de usar, e não serve de jeito nenhum para deploy em produção. Ou seja, um diário de Tom Riddle como serviço é impossível
Para o bem ou para o mal, agora vivemos numa época em que a diversão não é permitida, e esse momento coincide com o surgimento do termo “psicose por IA”
Nunca confie em algo que consegue pensar por si só se você não consegue ver onde fica o cérebro dele
Embora fuja um pouco do ponto, não parece uma boa ideia comparar uma invenção a um artefato amaldiçoado que controla mentalmente o usuário para trair os amigos e entregá-los a uma entidade maligna poderosa
Mas, como isso roda com IA generativa, e a IA generativa já levou pessoas a fazerem coisas ruins, talvez a comparação seja apropriada
Empresa de tecnologia: finalmente criamos o Torment Nexus do clássico romance de ficção científica 《Não crie o Torment Nexus》
https://x.com/AlexBlechman/status/1457842724128833538?lang=e...
E também existe aquela frase: “qualquer tecnologia suficientemente avançada é indistinguível de magia”. Ambas podem ser usadas para o bem ou para o mal
Pensando melhor, provavelmente foi o próprio LLM que inventou essa analogia… o que, de certo modo, é ainda pior
Isso é sick no sentido Tony Hawk dos anos 90
Gosto do fato de que agora as pessoas podem simplesmente bater algumas teclas e fazer algo existir
Antigamente, às vezes era preciso esperar de um dia a uma semana por uma equipe de engenharia só para mudar a cor de um botão
Já não vivemos numa era lenta
Aquele botão não era importante e não deveria consumir nenhum tipo de recurso, especialmente recursos de engenharia. Levar uma semana não era bug, era feature. Significava que a engenharia tinha avaliado corretamente a prioridade e a urgência da tarefa
Sua máquina caça-níqueis mágica vai viabilizar, em escala enorme, a produção de lixo e uma percepção distorcida do esforço de engenharia. Haverá consequências
Por acaso você era o PM desse projeto?
Só pode ser piada
Ideias assim ficariam muito melhores se o README incluísse diretamente uma demonstração em vídeo curta, um GIF ou até uma captura de tela
Caso contrário, o título fica parecendo o meme “Curtains for Zoosha?” [0]
[0]: https://www.reddit.com/r/BrandNewSentence/comments/15hcc4x/c...
https://x.com/MaximeRivest/status/2073544461473169432?s=20
O “remarkable” no título se refere ao tablet “Remarkable Paper Pro”. Sem saber disso, “Fable turned remarkable into Tom Riddle's diary” é bem difícil de interpretar
Curiosamente, fiz algo parecido no fim do ano passado. Só que era uma versão em que se podia desenhar no navegador em um computador comum
Usei pageflip [0] para deixar o estilo parecido com o diário real de Riddle, e conectei um pequeno modelo local para roleplay via ollama
Lembro que, quando eu escrevia “my name is Harry Potter, what is yours?”, em várias iterações ele respondia Snape, Malfoy e até Harry Potter
Depois de terminar o experimento, descobri que eu não tinha sido o primeiro a pensar nessa ideia e encontrei alguns diários de Riddle com IA parecidos
Além disso, tenho um Remarkable 2 e, a partir deste fim de semana, também terei um iPad Air M4, então talvez eu teste isso e veja como está o ambiente para rodar modelos no iOS
0) https://nodlik.github.io/react-pageflip/
Se a Fable agora consegue criar horcruxes, o Departamento de Comércio deveria considerar seriamente mais uma pausa forçada
“Sem brilho de tela, sem teclado, sem UI de chat.”
Isso não é simplesmente uma UI de chat?
Ainda assim, isso não muda o fato de que é muito legal
LLMs em geral têm uma vibe muito forte de A Young Lady's Illustrated Primer. Uma caixa-preta mágica à qual você pode perguntar qualquer coisa
Especialmente quando vêm com uma identidade falsa como openclaw/soul
Projeto realmente divertido. Não vou comprar um Paper Pro de fato para rodar este app, mas gosto que algo assim exista e que as pessoas estejam se divertindo com ele