1 pontos por GN⁺ 4 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • 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/completions compatível com OpenAI ou um processo resident pi --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 AppLoad
    • remagic 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>.zip da versão mais recente e extraia para uma pasta riddle
  • Copie a pasta para /home/root/xovi/exthome/appload/ no tablet
  • Copie oracle.env.example para oracle.env e coloque uma chave de API compatível com OpenAI em RIDDLE_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ção
  • quill/ é 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.so e fornece as ABIs C quill_init, quill_buffer, quill_swap
  • O quill também inclui teste de latência scribble e 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/completions compatí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ório
    • RIDDLE_OPENAI_BASE: opcional, valor padrão https://api.openai.com/v1
    • RIDDLE_OPENAI_MODEL: opcional, valor padrão gpt-4o-mini, deve ser capaz de ver imagens
    • RIDDLE_OPENAI_REASONING: para modelos thinking
    • RIDDLE_OPENAI_MAX_TOKENS: runaway guard
    • Em modelos thinking como Gemini 3.x ou o-series, é possível definir RIDDLE_OPENAI_REASONING=low para 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
  • Caminho pi

    • Se pi já estiver em execução, o riddle usa um processo resident pi --mode rpc mantido 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_KEY nã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

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.26 e a biblioteca proprietária libqsgepaper.so obtida 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.so e 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

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

    • Esse tipo de prompt seria recusado por qualquer IA. Enquanto pesquisava morte assistida nórdica, perguntei exatamente quais medicamentos e em que dosagens administrar, e o Claude recusou e avisou a Anthropic; alguns dias depois, minha conta foi suspensa
      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”
    • Eu não sabia que já havia tantas mortes causadas só pelo ChatGPT. Achei que fossem umas 2 ou 3, mas a lista é muito mais longa do que eu imaginava
  • Nunca confie em algo que consegue pensar por si só se você não consegue ver onde fica o cérebro dele

    • Na verdade, isso é mais próximo de como o diário de Tom Riddle funciona
    • Por isso acho que teria sido mais impressionante se tivessem feito com um modelo local totalmente independente, em vez de se comunicar com a nuvem
  • 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

    • Autor de ficção científica: inventei no meu livro o Torment Nexus como um alerta
      Empresa de tecnologia: finalmente criamos o Torment Nexus do clássico romance de ficção científica 《Não crie o Torment Nexus》
    • Finalmente criaram o Torment Nexus do clássico romance de ficção científica “Don’t Create The Torment Nexus”
      https://x.com/AlexBlechman/status/1457842724128833538?lang=e...
    • Se a comparação é precisa, por que seria uma má comparação?
      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
    • Achei que esse era um dos atrativos do projeto. Tem algo sinistro e irônico nele
    • Tive que olhar de novo. Eles estão apresentando essa comparação como se fosse algo positivo?!
      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

    • Você acha que a tecnologia era o gargalo?
      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
    • Se a equipe levava uma semana para mudar a cor de um botão, não era porque a mudança no código era difícil
      Por acaso você era o PM desse projeto?
    • O engraçado é que criar o mecanismo de entrada e saída é muito menos impressionante, e especialmente muito menos útil, do que a tecnologia LLM subjacente que o Hacker News costuma menosprezar
    • Você esperava de um dia a uma semana por uma equipe de engenharia para mudar a cor de um botão?
      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...

  • 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

    • Exato. Por segurança, melhor proibir também os modelos chineses que conseguem fazer a mesma coisa
  • “Sem brilho de tela, sem teclado, sem UI de chat.”
    Isso não é simplesmente uma UI de chat?

    • Não é só uma interface de chat; é um front-end de comunicação por escrita :sparkle:!
    • O formato “no x no y no z” precisa obrigatoriamente aparecer
    • Sim. Dá até para dizer que é uma forma pior, já que você não consegue parar para pensar
      Ainda assim, isso não muda o fato de que é muito legal
    • Isso é claramente uma UI de chat
    • As pessoas vão olhar para isso, ficar impressionadas e ainda assim chamar LLM de lixo
  • 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