Aller au contenu

Atelier d’animation ASCII

ASCII Animation Workbench

Construit une animation de grilles de caractères à partir d’une vidéo, d’un GIF, d’un éditeur image par image, d’un texte en mouvement ou d’un effet procédural, et exporte des images brutes, de l’ANSI, un asciicast v2, un GIF animé et un lecteur HTML autonome.

Ceci est un établi plutôt qu’un convertisseur. Le document est une suite de grilles de caractères avec un délai sur chacune, et il y a quatre façons de le remplir — une vidéo ou un GIF, dessiner les images vous-même avec la précédente en transparence, promener une bannière, ou l’un des effets procéduraux — et quatre façons de le ressortir, dont un vrai GIF animé et un fichier HTML unique qui le joue sans aucun réseau.

🔒 Fonctionne entièrement dans votre navigateurasciiartanimationvideoterminal
D’où viennent les images

Le donut.c d’Andy Sloane (2006) : un tore avec z-buffer, ombré selon la normale à la surface face à une lumière fixe.

La même graine donne toujours les mêmes images, un résultat peut donc être reproduit et réexporté à l’identique.

Image 1 sur 1

1 image, 0,1 s, environ 7,5 ko en mémoire

Export
























Pour du MP4 ou du WebM, enregistrez le GIF et confiez-le à l’outil GIF vers vidéo, qui encode déjà avec WebCodecs et multiplexe H.264 dans du MP4 et VP9 dans du WebM. Écrire un second encodeur ici n’en serait qu’une copie moins bonne. Il n’y a pas d’export APNG : il demande les blocs acTL/fcTL/fdAT par-dessus l’écrivain PNG, et il n’est pas fait.
Les images sont plafonnées à 600 et la grille totale à 2,4 millions de cellules, soit environ 230 Mo de couleur en vol. À cette taille cela fait 600 images. Au-delà, l’onglet d’un téléphone est tué sans le moindre message, ce qui est pire qu’un refus.
asciicast v2 est du JSON par lignes : un objet d’en-tête, puis un tableau [temps, "o", données] par image. Les temps sont des secondes absolues depuis le début et non des délais par image ; chaque image ramène le curseur en haut et efface en dessous, pour qu’une image courte ne laisse pas la queue d’une image longue ; et les lignes se terminent par CRLF, parce qu’un simple saut de ligne dans une sortie terminal brute produit l’escalier bien connu. Implémenté ici d’après la spécification publiée.
Le nombre d’images multiplié par la taille de la grille est là où part toute la mémoire, donc les deux sont plafonnés et le plafond est annoncé plutôt que découvert. La conversion tourne dans un worker avec une annulation qui atteint la boucle, si bien qu’un travail de 300 images ne fige pas l’onglet et ne continue pas après que vous l’avez arrêté.

Comment s’en servir

  1. Surveillez le budget d’images, pas la taille du fichier

    Tout ici coûte des images fois des cellules de grille, et la page imprime combien d’images tiennent à la largeur que vous avez choisie. Élargir la sortie de 80 à 160 caractères divise par quatre le nombre d’images que vous pouvez tenir. Le plafond existe parce que l’alternative est un onglet de téléphone tué sans le moindre message.

  2. Réglez les délais avant d’exporter

    Chaque image porte son propre délai et tous les exportateurs le lisent, donc ce que vous voyez dans l’aperçu est ce que feront le GIF et l’asciicast. Réglez une image et appuyez sur « appliquer à toutes les images » pour une cadence constante, ou laissez certaines images plus longues pour tenir une pose.

  3. Choisissez l’export selon la destination

    asciicast v2 pour asciinema et pour qui le jouera dans un terminal. GIF pour une fenêtre de discussion ou un README. Le lecteur HTML pour une intégration — c’est un fichier unique avec les images dedans et sans CDN. Des images en texte brut si autre chose doit les lire.

Questions fréquentes

Qu’est-ce qu’asciicast v2 et pourquoi pas simplement un GIF ?

C’est le format dans lequel asciinema enregistre les terminaux — des lignes JSON, un objet d’en-tête puis un tableau [temps, "o", données] par image — et il reste du *texte*, donc il fait quelques kilooctets là où le GIF en fait quelques mégaoctets, et le lecteur peut sélectionner et copier ce qui est à l’écran. Implémenté ici d’après la spécification publiée. Un GIF est la bonne réponse quand la destination ne sait pas jouer un enregistrement de terminal, c’est-à-dire dans la plupart des cas.

Les effets procéduraux — les avez-vous écrits ?

Le code, oui ; les techniques sont plus anciennes et sont créditées sur la page. Le tore tournant est la méthode du donut.c d’Andy Sloane — un tampon de profondeur pour que la surface la plus proche l’emporte, et la normale de la surface produite en scalaire avec une lumière fixe pour indexer la rampe — et le feu est l’effet de démoscène que Fabien Sanglard a documenté. Le plasma, la pluie et le défilement sinusoïdal relèvent du folklore sans auteur unique, et sont nommés comme tels. Chaque effet est une fonction pure du numéro d’image et de la graine, donc la même graine donne toujours la même animation.

Puis-je arrêter une longue conversion ?

Oui, et elle s’arrête vraiment. La conversion tourne dans un worker qui vérifie entre les images, donc annuler met fin au travail au lieu de cacher le résultat — ce qui compte sur un téléphone, où la différence est une minute de plus de ventilateur.

À alimenter depuis

Ensuite

Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.

Image en art ASCII

Image to ASCII

Convertit une image en caractères ASCII ou en caractères colorés ANSI, à la largeur et avec le jeu de caractères de votre choix.

Fonctionne entièrement dans votre navigateur

Art en braille

Braille Art

Transforme une photographie en cellules braille Unicode — 2 × 4 points par caractère, huit fois la résolution d’une rampe de luminosité — avec plusieurs tramages au choix.

Fonctionne entièrement dans votre navigateur

Art textuel en image

Text Art to Image

Rend n’importe quel art textuel à chasse fixe en PNG ou en SVG, avec police, taille de cellule, couleur, fond et transparence au choix, pour qu’il survive à une publication là où la chasse fixe ne l’est pas.

Fonctionne entièrement dans votre navigateur

Vidéo vers GIF

Video to GIF

Transforme un extrait en GIF ou en WebP animé, avec réglage de la cadence, de la taille et de la palette.

Fonctionne entièrement dans votre navigateur

Horoscope du jour par signe animal et signe astrologique

Daily Fortune by Zodiac Animal & Star Sign

Compose la lecture d’une journée pour un signe animal ou un signe du zodiaque à partir du 일진 propre au jour et du tempérament traditionnel du signe. La graine vient de la date, si bien que le texte est le même toute la journée et qu’un rechargement ne le retire pas.

Fonctionne entièrement dans votre navigateur

Compatibilité des signes (궁합)

Zodiac Compatibility (궁합)

Deux dates de naissance donnent deux signes animaux et deux troncs du jour. L’outil rapporte la relation exacte entre eux — 삼합, 육합, 충, 원진, 형, 파, 해 — et la relation des cinq éléments entre les troncs du jour, chacune avec son verdict traditionnel.

Fonctionne entièrement dans votre navigateur