Pular para o conteúdo

Bancada de animação ASCII

ASCII Animation Workbench

Monta uma animação de grades de caracteres a partir de um vídeo, um GIF, um editor quadro a quadro, texto em movimento ou um efeito procedural, e exporta quadros puros, ANSI, asciicast v2, um GIF animado e um player HTML autônomo.

Isto é uma bancada de trabalho, não um conversor. O documento é uma sequência de grades de caracteres com um intervalo em cada uma, e há quatro jeitos de preenchê-lo — um vídeo ou GIF, desenhar os quadros você mesmo com o anterior transparecendo, mover um banner, ou um dos efeitos procedurais — e quatro jeitos de tirá-lo, incluindo um GIF animado de verdade e um único arquivo HTML que o reproduz sem rede nenhuma.

🔒 Roda inteiramente no seu navegadorasciiartanimationvideoterminal
De onde vêm os quadros

O donut.c de Andy Sloane (2006): um toro com z-buffer, sombreado pela normal da superfície contra uma luz fixa.

A mesma semente sempre dá os mesmos quadros, então um resultado pode ser reproduzido e exportado de novo igualzinho.

Quadro 1 de 1

1 quadro, 0,1 s, uns 7,5 kB na memória

Exportar
























Para MP4 ou WebM, salve o GIF e entregue para a ferramenta GIF para vídeo, que já codifica com WebCodecs e junta H.264 em MP4 e VP9 em WebM. Escrever um segundo codificador aqui seria uma cópia pior daquele. Não existe exportação para APNG: ela exige os pedaços acTL/fcTL/fdAT em cima do escritor de PNG, e isso não foi feito.
Os quadros são limitados a 600 e a grade inteira a 2,4 milhões de células — uns 230 MB de cor de uma vez. Neste tamanho isso dá 600 quadros. Passando disso, a aba de um celular é morta sem mensagem nenhuma, o que é pior do que uma recusa.
asciicast v2 são linhas de JSON: um objeto de cabeçalho e depois um vetor [tempo, "o", dados] por quadro. Os tempos são segundos absolutos desde o início e não esperas por quadro; cada quadro leva o cursor para o topo e apaga o que está abaixo, para um quadro curto não deixar a cauda de um longo; e as linhas terminam em CRLF, porque uma quebra de linha sozinha na saída crua de um terminal produz aquela escadinha clássica. Implementado aqui a partir da especificação publicada.
O número de quadros vezes o tamanho da grade é para onde vai toda a memória, então os dois são limitados e o limite é dito em vez de descoberto. A conversão roda num worker com um cancelamento que chega até o laço, então um trabalho de 300 quadros nem congela a aba nem continua rodando depois que você manda parar.

Como usar

  1. Vigie o orçamento de quadros, não o tamanho do arquivo

    Tudo aqui custa quadros vezes células da grade, e a página imprime quantos quadros cabem na largura que você escolheu. Alargar a saída de 80 para 160 caracteres divide por quatro o número de quadros que você pode guardar. O teto existe porque a alternativa é uma aba de celular sendo encerrada sem mensagem nenhuma.

  2. Defina os intervalos antes de exportar

    Cada quadro carrega o próprio intervalo e todo exportador o lê, então o que você vê na prévia é o que o GIF e o asciicast farão. Defina um quadro e pressione “aplicar a todos os quadros” para um ritmo constante, ou deixe quadros avulsos mais longos para segurar uma pose.

  3. Escolha a exportação conforme o destino

    asciicast v2 para o asciinema e para quem vai reproduzir num terminal. GIF para uma janela de chat ou um README. O reprodutor HTML para embutir — é um arquivo só, com os quadros dentro, sem CDN. Quadros em texto simples se outra coisa for lê-los.

Perguntas frequentes

O que é asciicast v2 e por que não simplesmente um GIF?

É o formato em que o asciinema grava terminais — linhas JSON, um objeto de cabeçalho e depois um array [tempo, "o", dados] por quadro — e continua sendo *texto*, então são uns poucos kilobytes onde o GIF são uns poucos megabytes, e quem assiste pode selecionar e copiar o que está na tela. Implementado aqui a partir da especificação publicada. Um GIF é a resposta certa quando o destino não consegue reproduzir uma gravação de terminal, que é a maioria dos lugares.

Os efeitos procedurais — vocês que escreveram?

O código, sim; as técnicas são mais antigas e são creditadas na página. O toro girando é o método donut.c de Andy Sloane — um z-buffer para a superfície próxima vencer, e a normal da superfície em produto escalar com uma luz fixa para indexar a rampa — e o fogo é o efeito de demoscene que Fabien Sanglard documentou. Plasma, a chuva e a rolagem senoidal são folclore sem autor único, e são nomeados assim. Todo efeito é uma função pura do número do quadro e da semente, então a mesma semente sempre dá a mesma animação.

Posso parar uma conversão longa?

Pode, e ela para de verdade. A conversão roda num worker que verifica entre quadros, então cancelar encerra o trabalho em vez de esconder o resultado — o que importa num celular, onde a diferença é mais um minuto de ventoinha girando.

Pode receber de

Em seguida

Estas aceitam o que esta ferramenta produz, então o resultado pode ir direto.

Imagem para ASCII

Image to ASCII

Converte uma imagem em caracteres ASCII ou coloridos em ANSI, com largura e conjunto de caracteres escolhidos.

Roda inteiramente no seu navegador

Arte em braille

Braille Art

Transforma uma fotografia em células braille Unicode — 2 × 4 pontos por caractere, oito vezes a resolução de uma rampa de brilho — com escolha de dithering. Não é braille legível, e a página diz isso.

Roda inteiramente no seu navegador

Arte em texto para imagem

Text Art to Image

Renderiza qualquer arte em texto monoespaçado como PNG ou SVG com fonte, tamanho de célula, cor, fundo e transparência opcional escolhidos, para que sobreviva onde a fonte monoespaçada não é preservada.

Roda inteiramente no seu navegador

Vídeo para GIF

Video to GIF

Transforma um clipe em GIF ou WebP animado com controle de taxa de quadros, tamanho e paleta.

Roda inteiramente no seu navegador

Horóscopo do dia por signo animal e signo

Daily Fortune by Zodiac Animal & Star Sign

Compõe a leitura de um dia para um signo animal ou signo do zodíaco a partir do 일진 do próprio dia e do temperamento tradicional do signo. Semeado pela data, então é o mesmo o dia inteiro e recarregar não sorteia outro — entretenimento; a tradição por trás não prevê nada.

Roda inteiramente no seu navegador

Compatibilidade de signos (궁합)

Zodiac Compatibility (궁합)

Duas datas de nascimento dão dois signos animais e dois troncos do dia. Informa a relação exata entre eles — 삼합, 육합, 충, 원진, 형, 파, 해 — e a relação dos cinco elementos entre os troncos do dia, cada uma com o veredito tradicional: a aritmética é exata, o veredito é folclore.

Roda inteiramente no seu navegador