1 pontos por GN⁺ 2025-12-16 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2025-12-16
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

    • Uso a fonte Px437 Verite 9x6 deste pacote como fonte principal do meu terminal há anos
      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

    • O Viznut realmente criou muitos projetos incríveis
      Dá para ver a lista de trabalhos dele no perfil do Pouet
    • Gosto demais dessa demo
      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

    • Eu consegui uma saída correta no terminal st usando Iosevka Nerd Font
      Verificando com lsof, vi que várias fontes estavam sendo usadas como fallback
      DejaVuSans, DroidSansFallback, Segoe UI Symbol e outras fontes se combinaram, e no fim a renderização ficou perfeita
    • A issue relacionada está no GitHub #1959
    • Acho Nerd Font ruim por ser não padrão
  • 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

    • Mas o Sixel já tinha sido introduzido em terminais em 1988
      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

    • Ideia legal
      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