Skip to content

Dieci demo su trenta strappavano a ogni giro, e una tipografica rifaceva il layout - #9

Merged
antoninobig-beep merged 1 commit into
mainfrom
cicli-che-si-chiudono-2
Sep 4, 2026
Merged

antoninobig-beep merged 1 commit into
mainfrom
cicli-che-si-chiudono-2

Conversation

@antoninobig-beep

Copy link
Copy Markdown
Collaborator

Gli scatti

Le demo della pagina girano in ciclo. Dieci erano animazioni a senso unico — una camera che entra e resta dentro, un grafico che si disegna e resta disegnato, una board che si popola e resta piena — quindi l'ultimo fotogramma non aveva niente a che vedere col primo e ogni giro finiva con uno stacco secco. Su una pagina il cui argomento è perché gli stacchi non si fanno. GIU-04 cambiava il 28% del quadro nel punto di ricongiunzione.

La correzione è un'idea sola invece di dieci toppe: un profilo di andata e ritorno, più un orologio virtuale per le demo il cui stato è funzione di un frame che scorre invece che di un parametro 0..1 — una board che si popola non ha un t da invertire, ha un orologio da far tornare indietro.

Due demo non avevano bisogno di un riavvolgimento e hanno avuto di meglio: la risposta in streaming esce di campo verso l'alto come farebbe l'app, e la frase con la parola in comune si scambia nel verso opposto, quindi il ciclo è join → pose → join.

Il banco, e le tre domande sbagliate prima di quella giusta

  • Contro il movimento tipico: le demo ferme fra un cambio e l'altro hanno mediana zero e qualunque giunta risulta infinita.
  • Contro il passo più grande: si contamina. Una demo che stacca anche al suo interno si autoassolve — CHR-02 misurava 652 contro 652.
  • Quella che funziona: l'ultimo fotogramma è a un passo dal primo, o è altrove?

Misura solo la giunta del ciclo, non gli stacchi in mezzo, ed è un limite vero: nessuna misura provata distingue uno stacco da una dissolvenza.

Il bug tipografico

TYP-02 faceva crescere la parola chiave cambiandole il font-size dentro una riga sola: la riga flex si ricomponeva e a metà crescita tutta la frase saltava di 147 px. Ora la chiave sta su una riga sua e cresce con una scale(): le altre si muovono di 0,00 px.

Stato

30 demo su 30 chiudono il ciclo. Il banco gira senza numpy (sul runner non c'è) e con pillow, che serve solo a lui perché è l'unico a guardare i pixel del browser invece del DOM.

Sostituisce la #8, che non si innestava più dopo la riscrittura della cronologia di main.

🤖 Generated with Claude Code

…eva il layout

GLI SCATTI. Le demo della pagina girano in ciclo. Dieci erano animazioni a senso
unico - una camera che entra e resta dentro, un grafico che si disegna e resta
disegnato, una board che si popola e resta piena - quindi l'ultimo fotogramma non
aveva niente a che vedere col primo e ogni giro finiva con uno stacco secco. Su
una pagina il cui argomento e' perche' gli stacchi non si fanno. GIU-04 cambiava
il 28 per cento del quadro nel punto di ricongiunzione.

Nessuno legge quella cosa come "la demo e' ripartita": si legge come un sito che
scatta, ed e' esattamente cosi' che e' stato riportato.

La correzione e' un'idea sola invece di dieci toppe: un profilo di andata e
ritorno, piu' un orologio virtuale per le demo il cui stato e' funzione di un
frame che scorre invece che di un parametro 0..1 - una board che si popola non ha
un `t` da invertire, ha un orologio da far tornare indietro. La gamba di ritorno
non e' parte del movimento e la HUD lo dice. Due demo non avevano bisogno di un
riavvolgimento e hanno avuto di meglio: la risposta in streaming esce di campo
verso l'alto come farebbe l'app, e la frase con la parola in comune si scambia
nel verso opposto, quindi il ciclo e' join -> pose -> join.

IL BANCO, e le tre domande sbagliate prima di quella giusta. Contro il movimento
TIPICO della demo non funziona: quelle che stanno ferme fra un cambio e l'altro
hanno mediana zero e qualunque giunta risulta infinita. Contro il PASSO PIU'
GRANDE e' peggio, perche' si contamina: una demo che stacca anche al suo interno
si prende quello stacco come riferimento e si autoassolve - CHR-02 misurava 652
contro 652, lo stesso difetto contato due volte. La domanda che funziona e' piu'
semplice: l'ultimo fotogramma e' A UN PASSO dal primo, o e' altrove?

E misura solo la giunta del ciclo, non gli stacchi in mezzo. E' un limite vero,
non una dimenticanza: nessuna misura che ho provato distingue uno stacco da una
DISSOLVENZA. Contando i pixel sopra soglia, una dissolvenza lineare fa picco a
meta' strada - e' li' che la maggior parte dei pixel attraversa la soglia tutti
insieme - e il banco segnalava come stacco l'uscita di campo di una riga di
testo, che e' la cosa piu' continua che ci sia. Con la differenza media il picco
sparisce ma la misura diventa cosi' sensibile da segnalare tutto. Lo stacco
interno di CHR-02 l'ho trovato guardando, non misurando.

IL BUG TIPOGRAFICO. TYP-02 faceva crescere la parola chiave cambiandole il corpo
dentro una riga sola. Cambiare il corpo cambia la casella, quindi la riga flex si
ricomponeva, il punto di a capo si spostava, e a meta' crescita tutta la frase
saltava di 147 pixel: il contrario esatto di quello che la voce dichiara. Adesso
la parola chiave sta su una riga sua e cresce con una scale(), che non tocca il
layout - le altre si muovono di 0,00 px, misurati. Ed e' anche piu' vicino alle
reference, dove la parola enorme sta da sola.

Quattro sonde di demo-check.py riallineate: il rientro ha spostato i fotogrammi
in cui stanno gli eventi, e per CHR-02 si misurano le PARTENZE invece degli
arrivi, perche' vicino all'inversione l'orologio decelera e gli arrivi si
ammucchiavano appiattendo l'ordine (0,60 invece di 0,26).

Il banco gira senza numpy - sul runner non c'e' - e con pillow, che serve solo a
lui perche' e' l'unico a guardare i pixel del browser invece del DOM.

Trenta demo su trenta chiudono il ciclo.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@antoninobig-beep
antoninobig-beep merged commit 7a0f1f4 into main Sep 4, 2026
1 check passed
@antoninobig-beep
antoninobig-beep deleted the cicli-che-si-chiudono-2 branch September 4, 2026 16:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant