- Unscii é um conjunto de fontes Unicode bitmap baseado em fontes de sistemas clássicos, adequado tanto para arte em células de caracteres quanto para ambientes de terminal e programação
- As versões principais são unscii-8 (8×8 pixels) e unscii-16 (8×16 pixels), com vários estilos alternativos e a variante ‘full’, que complementa glifos ausentes
- Com a adição de caracteres de “computação legada” no Unicode 13.0, foi lançada a Unscii 2.0, trazendo essa nova correspondência, correções de erros, melhorias de legibilidade e novos caracteres
- As características visuais de fontes de sistemas clássicos como Amiga, Commodore 64 e IBM PC foram estudadas para criar uma forma neutra e consistente
- Funciona como uma ferramenta que conecta a arte legada em caracteres aos ambientes Unicode modernos, com papel importante na reprodução de arte ASCII e gráficos de terminal
Visão geral do Unscii
- Unscii é um conjunto de fontes Unicode bitmap baseado em fontes de sistemas clássicos
- É adequado para arte em células de caracteres (character cell art) e também pode ser usado em ambientes de terminal e programação
- Duas variantes principais: unscii-8 (8×8 pixels), unscii-16 (8×16 pixels)
- O unscii-8 possui vários estilos alternativos
- O unscii-16-full inclui glifos ausentes do Fixedsys Excelsior e do GNU Unifont
- O unscii-16-full é GPL, e as demais variantes são domínio público
- O criador é Viznut
Unscii 2.0
- No Unicode 13.0 (2020-03-10) foram adicionados 214 caracteres gráficos para “computação legada”
- Incluem caracteres ausentes de PETSCII, Teletext/Videotex etc.
- Caracteres já presentes no Unscii 1.x passaram a receber mapeamento Unicode oficial
- A principal razão para a atualização do Unscii 2.0 foi refletir esse mapeamento
- Além disso, houve correção de erros em alguns caracteres, melhorias de legibilidade e adição de novos caracteres
- São fornecidas imagens de teste dos caracteres atualmente disponíveis no Unicode
Exemplos (EXAMPLES)
- Arte ANSI do Amiga: Divine Stylers, de Hellbeard, renderizada com unscii-16
- Arte ANSI de PC: Ansi Love, de Rad Man, renderizada com unscii-16
- Imagem PETSCII de Commodore 64: I Has Floppy, de Redcrab, The First Ball, de Dr.TerrorZ, Gary, de Mermaid
- O pacote de código-fonte inclui um conversor de bitmap→Unscii
- Também é fornecido um exemplo de conversão para unscii-8 usando a paleta xterm de 256 cores
Downloads (DOWNLOADS)
- Os formatos bitmap reais são dois: HEX e PCF
- HEX é o mesmo formato simples de hexdump usado pelo projeto Unifont
- TTF, OTF, WOFF são versões vetorizadas
- A versão PCF não inclui caracteres acima de U+FFFF
- Porém, os novos caracteres gráficos são fornecidos na faixa PUA (Private Use Area)
- As informações de mapeamento estão incluídas no arquivo
<uns2uni.tr>
Histórico (BACKSTORY)
- O Unicode possui caracteres pseudográficos, mas eles quase não são usados em arte ANSI
- Mesmo em MUDs e afins, normalmente só se usam os caracteres em bloco da code page 437 do MS-DOS
- Isso aconteceu porque a implementação de caracteres gráficos não-CP437 nas fontes Unicode existentes era incompleta
- O Unicode Consortium tinha pouco interesse na implementação de pseudográficos
- Havia um ciclo vicioso: “sem fontes não há arte, e sem arte não há fontes”
- Para resolver isso, o Unscii foi desenvolvido como uma fonte Unicode compatível com arte
Base de design
- As fontes de sistema 8×8 se dividem em tipos de 1 pixel e 2 pixels conforme a espessura do traço
- O Unscii adota o tipo de 2 pixels, por facilitar a criação de uma forma neutra devido à alta semelhança entre sistemas clássicos
- Sistemas que serviram de base visual para a versão 8×8:
- Amiga (Topaz-8), Amstrad CPC, Atari 8-bit/Arcade/32-bit, BBC Micro, Commodore 64, IBM PC (CGA/VGA 80×50)
- A versão 8×16 expande a 8×8 segundo princípios de conversão
- Fontes de referência: Windows Fixedsys, IBM PC VGA, X Window 8x13/9x15, Macintosh Monaco, Digital VT420, DejaVu Sans Mono, Lucida Console, Inconsolata
- A forma neutra é priorizada, mas há ajustes quando a conexão da arte ou a legibilidade exigem
- Ex.:
/\\XY mantém a conectividade da arte ASCII, e as serifas de iIl foram alongadas
- Glifos 8×16 não definidos são substituídos por uma versão 8×8 com altura dobrada
Variantes adicionais e mapeamento de caracteres
- A partir do estudo de fontes de jogos e fontes de traço fino, foram criadas unscii-8-thin, unscii-8-mcr, unscii-8-fantasy
- Centenas de caracteres sem equivalente no Unicode são mapeados para a área PUA
- U+E080..E0FF: mosaicos em bloco de Teletext/Videotex
- U+E100.. : PETSCII, mosaicos suaves de Videotex, sombreamento adicional, cantos arredondados etc.
- U+E800.. : cruzamentos, diagonais e padrões não retilíneos atípicos, mas úteis
- U+EC00.. : bitmaps voltados a jogos e outros caracteres especiais
- Após o Unicode 13.0, alguns desses caracteres passaram a fazer parte do Unicode oficial, mas os mapeamentos PUA foram mantidos por compatibilidade
1 comentários
Comentários do Hacker News
Um pouco fora do assunto, mas relacionado
Quando eu estava fazendo um jogo estilo Space Invaders em HTML + Canvas, acabei encontrando o The Ultimate Oldschool PC Font Pack do VileR enquanto procurava fontes OEM de IBM PC
É impressionante o cuidado colocado em restaurar as fontes OEM e suas variações a partir de inúmeras ROMs
O site não oferece só um arquivo detalhado, mas também recursos como pré-visualização ao vivo e correção de proporção, então é muito divertido de explorar
Passei horas ali comparando várias fontes OEM para encontrar a ideal para o meu projeto
Ela é ótima para usos retrô como arte ANSI, e também combina perfeitamente com ambientes modernos
Já usei em apresentações a ferramenta de live coding audiovisual IBNIZ, criada pelo Viznut
Foi uma experiência realmente intensa
Link do IBNIZ
Dá para ver a lista de trabalhos dele no perfil do Pouet
Invejo essa esquisitice e genialidade, e espero ter sido um pouco contaminado por isso ao assisti-la
Minha Nerd Font local não suporta alguns glifos gráficos
Seria ótimo se isso fosse adicionado
Verificando com
lsof, vi que várias fontes estavam sendo usadas como fallbackDejaVuSans, DroidSansFallback, Segoe UI Symbol e outras fontes se combinaram, e no fim a renderização ficou perfeita
Estou fazendo um MUD agora, e essas fontes são exatamente o estilo que eu queria
Obrigado por compartilhar isso na hora perfeita
Agora que o terminal finalmente ganhou suporte a Sixel,
dá a sensação de que demos uma volta completa em 40 anos, como mostra a wiki do Sixel
Transmitir dados raster coloridos sem compressão por um link serial de 9600 bps era uma ideia terrível
Hoje estamos em ambientes de gigabit, então desperdiça-se menos tempo do usuário, mas ainda há desperdício de CPU e complexidade
Eu preferiria que navegadores tivessem suporte a FTP ou Gopher
A fonte cnxt do Constantine Bytensky também é dessa mesma linha
Se você gosta de unscii, provavelmente também vai gostar de cnxt
CNXT significa “Constantine’s Nine x Twenty”
O site não abre agora, mas eu fiz um projeto paralelo que funciona com qualquer fonte monoespaçada
Ele converte binário em Unicode e depois de volta, substituindo caracteres de controle por símbolos correspondentes
Projeto printable-binary
Um caractere UTF-8 (1 a 3 bytes) corresponde a 1 byte dos dados de entrada, então o tamanho aumenta em média cerca de 70%, mas
isso dá independência de binário em qualquer meio que entenda UTF-8
Mas em serviços reais, base64 pode ser mais eficiente, já que aumenta o tamanho em apenas 33%
Essas fontes são muito legais
Sinto falta dessa vibe de arte ASCII, então adicionei isso em forma de banner à minha plataforma de blog lmno.lol
Unscii é excelente
No passado, fiz um editor simples de arte Unscii que também podia ser usado no celular
unicode-drawing-club.netlify.app
O favicon parece quase idêntico ou muito parecido com o logo de The Grate Book of Moo
Pode ser uma referência obscura demais para o Hacker News, mas acho que alguém vai reconhecer