Vai al contenuto

Banco di lavoro per animazioni ASCII

ASCII Animation Workbench

Costruisce un’animazione di griglie di caratteri da un video, da una GIF, da un editor fotogramma per fotogramma, da un testo in movimento o da un effetto generato, ed esporta fotogrammi semplici, ANSI, asciicast v2, una GIF animata e un lettore HTML autonomo.

Questo è un banco di lavoro più che un convertitore. Il documento è una sequenza di griglie di caratteri con un ritardo su ciascuna, e ci sono quattro modi di riempirlo — un video o una GIF, disegnare i fotogrammi a mano con il precedente in trasparenza, muovere uno striscione, oppure uno degli effetti procedurali — e quattro modi di farlo uscire, tra cui una GIF animata vera e un singolo file HTML che la riproduce senza nessuna rete.

🔒 Funziona interamente nel tuo browserasciiartanimationvideoterminal
Da dove arrivano i fotogrammi

Il donut.c di Andy Sloane (2006): un toro con z-buffer, ombreggiato in base alla normale della superficie rispetto a una luce fissa.

Lo stesso seme dà sempre gli stessi fotogrammi, quindi un risultato si può riprodurre ed esportare di nuovo identico.

Fotogramma 1 di 1

1 fotogramma, 0,1 s, circa 7,5 kB in memoria

Esporta
























Per MP4 o WebM salva la GIF e passala allo strumento Da GIF a video, che già codifica con WebCodecs e infila H.264 dentro MP4 e VP9 dentro WebM. Scrivere qui un secondo codificatore ne sarebbe soltanto una copia peggiore. Non c’è esportazione in APNG: servono i blocchi acTL/fcTL/fdAT sopra lo scrittore PNG, e non è stata fatta.
I fotogrammi sono limitati a 600 e la griglia complessiva a 2,4 milioni di celle — circa 230 MB di colore tutti insieme. A questa dimensione sono 600 fotogrammi. Oltre, la scheda di un telefono viene uccisa senza nessun messaggio, e questo è peggio di un rifiuto.
asciicast v2 è JSON a righe: un oggetto di intestazione, poi un array [tempo, "o", dati] per fotogramma. I tempi sono secondi assoluti dall’inizio e non ritardi per fotogramma; ogni fotogramma riporta il cursore in cima e cancella sotto, così un fotogramma corto non lascia la coda di uno lungo; e le righe finiscono con CRLF, perché un a capo nudo nell’output grezzo di un terminale produce la classica scaletta. Implementato qui dalla specifica v2 pubblicata.
Il numero di fotogrammi per la dimensione della griglia è dove finisce tutta la memoria, quindi entrambi sono limitati e il limite viene dichiarato invece che scoperto. La conversione gira in un worker con un annullamento che arriva al ciclo, così un lavoro da 300 fotogrammi non blocca la scheda e non continua a girare dopo che l’hai fermato.

Come si usa

  1. Tenere d’occhio il budget di fotogrammi, non la dimensione del file

    Qui tutto costa fotogrammi per celle della griglia, e la pagina stampa quanti fotogrammi ci stanno alla larghezza scelta. Allargare l’uscita da 80 a 160 caratteri riduce a un quarto i fotogrammi che si possono tenere. Il tetto esiste perché l’alternativa è una scheda del telefono chiusa d’ufficio senza nessun messaggio.

  2. Impostare i ritardi prima di esportare

    Ogni fotogramma porta il suo ritardo e ogni esportatore lo legge, quindi quello che si vede nell’anteprima è quello che faranno la GIF e l’asciicast. Si imposta un fotogramma e si preme «applica a tutti i fotogrammi» per una cadenza costante, oppure si lasciano più lunghi i singoli fotogrammi per tenere una posa.

  3. Scegliere l’esportazione in base a dove va

    asciicast v2 per asciinema e per chi la riprodurrà in un terminale. GIF per una finestra di chat o un README. Il riproduttore HTML per un incorporamento: è un file solo con i fotogrammi dentro e nessuna CDN. Fotogrammi di testo semplice se a leggerli sarà qualcos’altro.

Domande frequenti

Che cos’è asciicast v2 e perché non una semplice GIF?

È il formato in cui asciinema registra i terminali — righe JSON, un oggetto di intestazione e poi un array [tempo, "o", dati] per fotogramma — e resta *testo*, quindi sono pochi kilobyte dove la GIF è qualche megabyte, e chi guarda può selezionare e copiare quello che c’è sullo schermo. Qui è implementato dalla specifica pubblicata. La GIF è la risposta giusta quando la destinazione non sa riprodurre una registrazione di terminale, cioè quasi dappertutto.

Gli effetti procedurali: li avete scritti voi?

Il codice sì; le tecniche sono più vecchie e sono accreditate nella pagina. La ciambella rotante è il metodo di donut.c di Andy Sloane — uno z-buffer perché vinca la superficie più vicina, e la normale alla superficie moltiplicata scalarmente per una luce fissa per indicizzare la scala — e il fuoco è l’effetto demoscene documentato da Fabien Sanglard. Il plasma, la pioggia e lo scorrimento sinusoidale sono folclore senza un autore unico, e sono indicati come tali. Ogni effetto è una funzione pura del numero di fotogramma e del seme, quindi lo stesso seme dà sempre la stessa animazione.

Posso fermare una conversione lunga?

Sì, e si ferma davvero. La conversione gira in un worker che controlla tra un fotogramma e l’altro, quindi annullare chiude il lavoro invece di nascondere il risultato — cosa che conta su un telefono, dove la differenza è un altro minuto di ventola accesa.

Può ricevere da

Dopo

Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.

Da immagine ad ASCII

Image to ASCII

Converte una fotografia in caratteri ASCII o in caratteri ANSI colorati, alla larghezza e con l’insieme di caratteri che scegli.

Funziona interamente nel tuo browser

Arte in caratteri braille

Braille Art

Trasforma una fotografia in celle braille Unicode — 2 × 4 punti per carattere, otto volte la risoluzione di una scala di luminosità — con la scelta del retino.

Funziona interamente nel tuo browser

Da arte testuale a immagine

Text Art to Image

Disegna qualsiasi arte testuale a spaziatura fissa come PNG o SVG con font, dimensione della cella, colore, sfondo e trasparenza facoltativa a scelta, così sopravvive anche dove viene pubblicata e la spaziatura fissa non viene conservata.

Funziona interamente nel tuo browser

Da video a GIF

Video to GIF

Trasforma uno spezzone in una GIF o in una WebP animata, con controlli di frequenza dei fotogrammi, dimensione e tavolozza.

Funziona interamente nel tuo browser

Oroscopo del giorno per segno e animale dell’anno

Daily Fortune by Zodiac Animal & Star Sign

Compone il testo di una giornata per un animale dello zodiaco o per un segno zodiacale a partire dal 일진 di quel giorno e dal temperamento che la tradizione attribuisce al segno. Il seme è la data, quindi resta lo stesso per tutto il giorno e ricaricando la pagina non cambia.

Funziona interamente nel tuo browser

Affinità secondo la tradizione coreana (궁합)

Zodiac Compatibility (궁합)

Due date di nascita danno due animali dello zodiaco e due tronchi del giorno. Riporta la relazione esatta fra loro — 삼합, 육합, 충, 원진, 형, 파, 해 — e il rapporto fra i cinque elementi dei due tronchi, ciascuno con il giudizio tradizionale.

Funziona interamente nel tuo browser