1 Punkte von GN⁺ 2025-12-16 | 1 Kommentare | Auf WhatsApp teilen
  • Unscii ist ein Bitmap-Unicode-Font-Set auf Basis klassischer Systemschriften, das sich sowohl für Character-Cell-Art als auch für Terminal- und Programmierumgebungen eignet
  • Die Hauptversionen sind unscii-8 (8×8 Pixel) und unscii-16 (8×16 Pixel); außerdem gibt es mehrere Alternativstile sowie die „full“-Variante mit ergänzten fehlenden Glyphen
  • Mit den in Unicode 13.0 hinzugefügten Zeichen für „Legacy Computing“ erschien Unscii 2.0, das bestehende Fehler behebt, die Lesbarkeit verbessert und neue Zeichen ergänzt
  • Durch die Untersuchung der visuellen Merkmale klassischer Systemschriften wie Amiga, Commodore 64 und IBM PC wird eine neutrale und konsistente Form umgesetzt
  • Als Werkzeug, das historische Zeichenkunst mit modernen Unicode-Umgebungen verbindet, spielt es eine wichtige Rolle bei der Reproduktion von ASCII-Art und Terminalgrafik

Überblick über Unscii

  • Unscii ist ein Bitmap-Unicode-Font-Set auf Basis klassischer Systemschriften
    • Geeignet für Character Cell Art und auch nutzbar in Terminal- und Programmierumgebungen
  • Zwei Hauptvarianten: unscii-8 (8×8 Pixel), unscii-16 (8×16 Pixel)
    • Für unscii-8 existieren mehrere alternative Stile
    • unscii-16-full enthält fehlende Glyphen aus Fixedsys Excelsior und GNU Unifont
    • unscii-16-full steht unter GPL, die übrigen Varianten sind Public Domain
  • Der Urheber ist Viznut

Unscii 2.0

  • In Unicode 13.0 (2020-03-10) wurden 214 grafische Zeichen für „Legacy Computing“ ergänzt
    • Darunter fehlende Zeichen aus PETSCII, Teletext/Videotex usw.
    • Zeichen, die bereits in Unscii 1.x enthalten waren, erhielten eine offizielle Unicode-Zuordnung
    Anzeige
  • Der Hauptgrund für das Update auf Unscii 2.0 ist die Übernahme dieser Zuordnung
  • Zusätzlich wurden Fehlerkorrekturen, Verbesserungen der Lesbarkeit und neue Zeichen umgesetzt
  • Es werden Testbilder der aktuell in Unicode verfügbaren Zeichen bereitgestellt

Beispiele (EXAMPLES)

  • Amiga-ANSI-Art: Hellbeards Divine Stylers, gerendert mit unscii-16
  • PC-ANSI-Art: Rad Mans Ansi Love, gerendert mit unscii-16
  • Commodore-64-PETSCII-Bilder: Redcrabs I Has Floppy, Dr.TerrorZs The First Ball, Mermaids Gary
  • Das Quellcode-Paket enthält einen Bitmap→Unscii-Konverter
    • Enthält ein Beispiel für die Umwandlung nach unscii-8 mit der 256-Farben-xterm-Palette

Download (DOWNLOADS)

  • Die eigentlichen Bitmap-Formate sind HEX und PCF
    • HEX ist dasselbe einfache Hexdump-Format wie im Unifont-Projekt
    • TTF, OTF, WOFF sind vektorisierte Versionen
  • Die PCF-Version enthält keine Zeichen oberhalb von U+FFFF
    • Die neuen grafischen Zeichen werden jedoch im Bereich PUA (Private Use Area) bereitgestellt
    • Die Mapping-Informationen sind in der Datei <uns2uni.tr> enthalten
Anzeige

Hintergrund (BACKSTORY)

  • In Unicode gibt es pseudografische Zeichen, diese werden jedoch in ANSI-Art kaum verwendet
    • Auch in MUDs werden meist nur die Blockzeichen der MS-DOS-Codepage 437 genutzt
  • Der Grund ist, dass die Umsetzung nicht-CP437-Grafikzeichen in bestehenden Unicode-Schriften unvollständig war
    • Das Unicode Consortium zeigte nur geringes Interesse an der Umsetzung pseudografischer Zeichen
    • Es entstand ein Teufelskreis: „Ohne Schriften keine Kunst, ohne Kunst keine Schriften“
  • Um dieses Problem zu lösen, wurde Unscii als kunstkompatible Unicode-Schrift entwickelt

Designgrundlage

  • 8×8-Systemschriften lassen sich nach Strichstärke in 1-Pixel- und 2-Pixel-Typen einteilen
    • Unscii verwendet den 2-Pixel-Typ, da die Ähnlichkeit zwischen klassischen Systemen höher ist und sich so leichter eine neutrale Form umsetzen lässt
  • Visuelle Basissysteme der 8×8-Version:
    • Amiga (Topaz-8), Amstrad CPC, Atari 8-bit/Arcade/32-bit, BBC Micro, Commodore 64, IBM PC (CGA/VGA 80×50)
    Anzeige
  • Die 8×16-Version erweitert 8×8 nach festgelegten Umwandlungsprinzipien
    • Referenzschriften: Windows Fixedsys, IBM PC VGA, X Window 8x13/9x15, Macintosh Monaco, Digital VT420, DejaVu Sans Mono, Lucida Console, Inconsolata
  • Vorrang hat eine neutrale Form, bei Bedarf wird jedoch für Art-Verbindbarkeit oder Lesbarkeit angepasst
    • Beispiel: /\\XY bewahrt die Verbindbarkeit in ASCII-Art, die Serifen von iIl wurden verlängert
  • Nicht definierte 8×16-Glyphen werden durch eine in der Höhe verdoppelte 8×8-Version ersetzt

Zusätzliche Varianten und Zeichen-Mapping

  • Durch die Untersuchung von Spieleschriften und Fonts mit dünnen Linien entstanden unscii-8-thin, unscii-8-mcr, unscii-8-fantasy
  • Hunderte nicht in Unicode enthaltene Zeichen wurden auf den PUA-Bereich gemappt
    • U+E080..E0FF: Teletext/Videotex-Blockmosaike
    • U+E100.. : PETSCII, weiche Videotex-Mosaike, zusätzliche Schattierungen, abgerundete Ecken usw.
    • U+E800.. : untypische, aber nützliche Kreuzlinien, Diagonalen, nichtlineare Muster usw.
    • U+EC00.. : besondere Zeichen wie spielorientierte Bitmaps
  • Seit Unicode 13.0 sind einige dieser Zeichen offiziell in Unicode enthalten, die PUA-Zuordnung bleibt jedoch aus Kompatibilitätsgründen erhalten

1 Kommentare

 
GN⁺ 2025-12-16
Hacker-News-Kommentare
  • Etwas am Thema vorbei, aber verwandt
    Als ich früher mit HTML + Canvas ein Invader-artiges Spiel gebaut habe, stieß ich bei der Suche nach IBM-PC-OEM-Schriften auf VileRs The Ultimate Oldschool PC Font Pack
    Es ist erstaunlich, mit welcher Sorgfalt dort OEM-Schriften und ihre Varianten aus unzähligen ROMs rekonstruiert wurden
    Die Seite bietet nicht nur ein detailliertes Archiv, sondern auch Funktionen wie Live-Vorschau und Korrektur des Seitenverhältnisses, was das Stöbern besonders reizvoll macht
    Ich habe dort Stunden damit verbracht, verschiedene OEM-Schriften zu vergleichen, um die beste Schrift für mein Projekt zu finden

    • Ich nutze seit Jahren die Schrift Px437 Verite 9x6 aus diesem Paket als Hauptschriftart im Terminal
      Sie eignet sich gut für Retro-Einsatzzwecke wie ANSI-Art und passt auch perfekt in moderne Umgebungen
  • Ich habe Viznuts Audio-/Visual-Live-Coding-Tool IBNIZ einmal bei einer Performance eingesetzt
    Das war eine absolut intensive Erfahrung
    IBNIZ-Link

    • Viznut hat wirklich viele erstaunliche Projekte geschaffen
      Eine Liste seiner Arbeiten findet sich auf seinem Pouet-Profil
    • Ich liebe diese Demo einfach
      Ich beneide ihre Skurrilität und Genialität und hoffe, dass beim Anschauen ein wenig davon auf mich abgefärbt hat
  • Meine lokale Nerd Font unterstützt einige grafische Glyphen nicht
    Es wäre schön, wenn so etwas ergänzt würde

    • Ich habe in einem st-Terminal mit Iosevka Nerd Font eine korrekte Ausgabe erhalten
      Ein Blick mit lsof zeigte, dass mehrere Schriften als Fallback verwendet wurden
      DejaVuSans, DroidSansFallback, Segoe UI Symbol und weitere Schriften wurden gemischt, was am Ende zu perfektem Rendering führte
    • Ein verwandtes Issue gibt es unter GitHub #1959
    • Ich halte Nerd Font für wenig überzeugend, weil es nicht standardisiert ist
  • Ich arbeite gerade an einem MUD, und diese Schriften sind genau der Stil, den ich gesucht habe
    Danke fürs Teilen, perfektes Timing

  • Jetzt, da das Terminal endlich Sixel-Unterstützung bekommt,
    fühlt es sich, wie im Sixel-Wiki zu sehen, nach einer 40-jährigen Ehrenrunde an

    • Allerdings wurde Sixel bereits 1988 in Terminals eingeführt
      Unkomprimierte Farbrasterdaten über eine serielle 9600-bps-Verbindung zu übertragen, war eine schreckliche Idee
      Heute verschwenden wir in Gigabit-Umgebungen zwar weniger Zeit auf Nutzerseite, aber es ist immer noch Verschwendung von CPU und Komplexität
      Lieber hätte ich Unterstützung für FTP oder Gopher in Webbrowsern
  • Constantine Bytenskys cnxt-Schrift gehört in eine ähnliche Richtung
    Wenn dir unscii gefällt, wird dir wahrscheinlich auch cnxt gefallen
    CNXT steht für „Constantine’s Nine x Twenty“

  • Die Website ist momentan nicht erreichbar, aber ich habe ein Side-Project gebaut, das mit jeder Monospace-Schrift funktioniert
    Es wandelt Binärdaten in Unicode um und wieder zurück und ersetzt Steuerzeichen durch passende Symbole
    printable-binary-Projekt
    Ein UTF-8-Zeichen (1–3 Byte) entspricht dabei 1 Byte Eingabedaten; im Schnitt wächst die Größe um etwa 70 %, aber
    dafür erhält man Binärunabhängigkeit in jedem Medium, das UTF-8 versteht

    • Coole Idee
      In realen Diensten könnte base64 aber effizienter sein, weil es die Größe nur um 33 % erhöht
  • Solche Schriften sind wirklich großartig
    Ich habe diese ASCII-Art-Ästhetik vermisst und sie deshalb bannerartig in meine Blogging-Plattform lmno.lol eingebaut

  • Unscii ist großartig
    Ich habe früher sogar einen einfachen Unscii-Art-Editor gebaut, der auch auf Mobilgeräten funktioniert
    unicode-drawing-club.netlify.app

  • Das Favicon sieht fast identisch oder zumindest sehr ähnlich zum Logo von The Grate Book of Moo aus
    Auf Hacker News ist das vielleicht eine zu obskure Referenz, aber vermutlich gibt es doch ein paar Leute, die sie erkennen