Lanternina inventa un pomeriggio per un adolescente, lo fa approvare a un genitore, e poi lo fa succedere in una stanza vera — su carta, su schermi a inchiostro elettronico e su pulsanti fisici. Legge quello che torna scritto a mano, da lì decide come va avanti, e si ferma a un'ora stabilita dal genitore.
Un mini-PC in una casa pilota due schermi a inchiostro elettronico, una stampante e uno scanner. Ogni chiamata di linguaggio e di visione va a Microsoft Foundry, in UE. Nessun modello gira sul dispositivo e non esiste una modalità offline. La casa tiene l'orologio e le chiavi dei sigilli, ed è l'unica cosa che dà inizio al lavoro.
Uno dei due schermi. La cornice è stampata in 3D e l'unità è montata a mano; il quadro sopra è stato generato un'ora prima a partire da un tema scritto dal genitore.
Quattro decisioni su cui vale la pena discutere
Un prompt disegna il foglio intero
Non c'è un motore di impaginazione. A un modello di immagini vengono date tutte le stringhe già passate dal filtro di sicurezza, con l'istruzione di scriverle carattere per carattere, e torna una pagina A4 finita. Il lavoro di design è il prompt, e il formato della pagina vive in un file Markdown invece che nel codice.
Una pagina si legge contro il proprio bianco
Niente QR, niente marker ArUco, nessuna griglia dichiarata — niente sulla carta che sia lì per una macchina. Leggere vuol dire dare a un modello due immagini, il bianco e quello che è tornato dal vetro, e chiedere cosa è cambiato. Una versione precedente aveva tutti e tre, e sono stati cancellati.
Il cloud non può far partire niente
Il pannello è inerte per costruzione: approvare scrive una riga e nient'altro. È la casa che chiede, sul proprio orologio, e la risposta arriva dentro la replica. Non esiste una strada in ingresso verso un dispositivo in una stanza, ed è anche il motivo per cui sulla rete di casa non c'è niente da attaccare.
Le garanzie sono tipi, non convenzioni
Un agente non ha dove annotare che la propria uscita va bene, perché Proposal non ha un campo di stato. Solo il filtro di sicurezza può coniare il tipo che un contenuto destinato a una persona richiede. Ogni test di confine è stato verificato al negativo: violazione iniettata, e test guardato mentre falliva.
Cosa esce, e cosa torna indietro
La pagina qui sotto è stata disegnata per intero da un modello di immagini, a partire da parole già filtrate. Qualcuno ci scrive sopra e la rimette sul vetro dello scanner; la lettura decide i momenti dopo, che vengono scritti mentre il foglio è ancora sul tavolo.
Consegnata. Uscita del modello non ritoccata, 19–33 s per disegnarla.Tornata. Qui riempita da una mano simulata, così una corsa intera si può esercitare senza nessuna persona dentro.
Il vocabolario del lettore è volutamente povero: una pagina è tornata con segni oppurebianca, e nient'altro. Non un conteggio e non una frazione, perché contare i segni di qualcuno è a un passo da un punteggio. Poi la lettura sparisce: il tipo si rifiuta di essere serializzato, copiato o messo in cache.
Misurato sul sistema in funzione
Le date ci sono perché i prompt cambiano e i numeri si spostano con loro. Tutto quello che segue è stato misurato contro i servizi veri, non stimato.
Inventare un pomeriggio intero
68–157 s
n=22, set 2026
Rileggerlo con un secondo modello
14,4–22,8 s
set 2026
Disegnare una pagina
19–33 s
ago 2026
Inchiostro su una pagina disegnata
0,5–2,7 %
ago 2026
Leggere una pagina tornata
4,4–5,5 s
ago 2026
Dalla pressione alla lettura sullo schermo
≈ 35 s
19 ago 2026
Righello stampato, misurato con un righello
50 mm chiesti, 50 mm ottenuti
4 ago 2026
L'ultima riga è quella che non parla di velocità. La catena di stampa non riscala, e la verifica è stata fatta a mano: una catena che riscala in silenzio renderebbe sbagliata ogni misura fisica di ogni pagina, in un modo che nessun test noterebbe.
Lo stack
In casa
Raspberry Pi Compute Module 5 su base board PoE, Raspberry Pi OS. Due schermi a inchiostro elettronico da 7,5" su XIAO ESP32-S3, con firmware TRMNL modificato contro un server BYOS nostro. Epson ET-2870 via IPP ed eSCL, senza driver. Cornici stampate in 3D, unità montate a mano.
Nel cloud
Microsoft Foundry in UE per ogni chiamata di linguaggio, visione e immagini, dietro un unico modulo router che è l'unico posto a cui è permesso importare un SDK di modelli. Azure AI Content Safety su tutto ciò che viene generato e su ogni immagine in ingresso. Container Apps per l'API, Cosmos DB, Blob Storage, Static Web Apps. Infrastruttura in Bicep.
Come si pubblica
Un push su main pubblica l'API attraverso una managed identity assegnata dall'utente con credenziale federata, quindi nella pipeline non c'è nessuna password — misurato end to end in 1 m 35 s. L'immagine si costruisce sul runner e non con az acr build, perché quest'ultimo richiede diritti che permetterebbero all'identità di riconfigurare il registro.
Cosa va dentro una cornice: pannello, XIAO ESP32-S3, una cella da 2000 mAh e la piattina fra i due.
Quello che non fa
Ottimizzare l'aggancio è facile da aggiungere a un sistema così, e farebbe danno: quindi è una regola scritta e non una questione di buon senso. tests/test_boundaries.py rifiuta quel vocabolario nella forma salvata, nel pannello, nel browser e nei prompt.
Nessuna serie di giorni, nessun obiettivo giornaliero, niente tenuto da parte per far tornare qualcuno.
Nessuna notifica innescata dall'assenza, e nessuna misura del tempo passato.
Un profilo viene tenuto, e arriva ai due modelli che scrivono ed eseguono un pomeriggio — e a nessuno schermo, nessun foglio stampato e nessuna pagina del pannello. Lo impone un gate di revisione, non la speranza che un prompt sia stato educato.
Nessun riconoscimento di volti o persone, nessuna inferenza di emozione o attenzione, nessun dato biometrico.