$ ./ascii/style — scene 00 of 06
ASCII
A visual style where every pixel is replaced by a character — structured, mechanical, nostalgic, and deliberately imperfect.
# SCENE 01 — THE RAMP
Why would anyone
draw with a keyboard?
Because a fixed-width font is secretly a grid of pixels in disguise. Pick characters by how much ink they imply — not what they spell — and a photograph emerges from pure text. Drag the slider; it's the entire technique.
ramp position 5/9 — drag to thin the block out
# SCENE 02 — HOW WE GOT HERE
$ cat print_log.txt
University operators discover that overstriking characters on an impact printer fakes grayscale. Nobody signs the work — it is a side effect of a machine that can only emit characters.
Character banners and signs become a Unix-era in-joke, long before figlet turns the craft into software.
Dial-up bulletin boards need graphics that work over a plain text modem connection — ASCII is the only format every terminal can render.
Named artists, monthly art packs, credited signature styles — ASCII/ANSI art becomes a competitive craft, not an accident.
Hand-drawn ASCII banner lettering becomes a portable, reusable Unix utility.
Tools like jp2a turn the density-mapping idea into a one-line command — anyone can render any photo as text.
A spinning 3D torus, rendered live in a terminal using only ASCII shading. Proof the technique still had real range, decades later.
cowsay, neofetch, and git-log graphs keep the aesthetic alive — not from necessity anymore, but because it still reads as craft.
# SCENE 03 — THE PEOPLE
$ cat artists.txt
The earliest line-printer artists are mostly anonymous — operators turning a slow afternoon into a Snoopy printout, never signing their work. There was no scene yet, just a machine that could only emit characters.
The BBS era changed that. Through the 1980s–90s, art groups like ACiD Productions and iCE competed on style, releasing monthly 'art packs' the way musicians release albums — exactly 80 columns, no true color, a fixed-width font nobody could change. Every artist had to solve 'how do I draw a face with only these 77 keys,' and no two solved it the same way.
Decades later the spirit moved to terminal-tool authors — whoever wrote cowsay as a joke, whoever keeps donut.c alive as a coding kata. The rule carried forward unchanged: if it can't render in a fixed-width grid, it doesn't belong in this style.
"Every BBS artist solved the same
77-key puzzle differently."
# SCENE 04 — THE DESIGN DNA
Five signals. One grid.
DENSITY-AS-SHADING
A ramp from " " to "@" stands in for brightness. Every image on this site is that ramp, mapped over light and shadow — never a real photograph.
"Mechanical. Mathematical. Unmistakably reverse-engineered."
MONOSPACE, FIXED GRID
No kerning, no proportional spacing — every character occupies an identical cell. The grid is the image; there is no resolution beyond it.
+--+--+--+ |##|::| | +--+--+--+
"Rigid. Printed. Honest about its own resolution."
ONE SIGNAL COLOR
True ASCII art is colorless by nature — text has no color of its own. This world allows exactly one warm amber, reserved for links, the scanline, and the CTA.
"A single warm light source in an otherwise dark, printed room."
THE GLYPH-CAT MARK
The hero cat statue, rendered once into a fixed ASCII block, reappears throughout the site as a stamp — a signature, not a stock icon.
-
-----=
---------
-----------=
-::::---= -------------=
=-::-------:------------==
-=-:------:::::::::------==-
------:::::::::::::----=====
----::::::::::::::::---======
=--::::::::::::::::::---=======
----::::::::::::::::----========
-----------------------==========
=------------------===============
==---:----------=====+++++========
=--::::::::---=====++++++++++======
------------=====+++++++++++++=====
-===---======++++++++++++++========
=======+++++++*******++++=========
==++++++++++*****+++++=========
=++++++++++++++==========
==========================
--------------=============
----------------------======
---------::::------------=====
------::::::::::------------====
---:::::::::::::::-----------====
---::::::::::::::::::---------=====
------::::::::::::::::::::-------=====
=---:::::::::::::::::::::::::::----=======
-----:::::::::::::::::::::::::::::--=========
---:::::::::::::::::::::::::::::::----========
=---:::::::::::::::::-::::::::::::-------========
=-:::::::::::::::::::::---::::-------------=======
---:::::::::::::::::::::--------------------=++====
--:-:::::::::::::::::::::---------------------=++==+
----:::::::::::::::::::::----------------------++===
------:::::::::::::::::::-----------------------=++=+
-----:::::::::::::::::---------------------------+++==
------::::::::::::-::----------------------------=+++=
------:::::::::-----------------------------------++=+
-------::::::::::---------------------------------=+=+
------:::::::::::::::::---------------------------=++=
-----:::::::::::::::::::-------------------------==+=
-----:::::::::::::::------------------------------+==+
------:::::::::::::-------------------------------====
-------::::::::::--------------------------------====
-----------::------------------------------------====
-------------------------------------=------------===
-------------------------------------------------====
--------------------------------------=----------===
=--------------------------------------=----------===
---------------------------------------==---------===
--------------------------------------------------===
----------------------------------::--------------===
-------------------------------------===----==----===
+:-------------------------------=======-----===----==
=:--------------------------------====-------===----===
=:--------------------------------=----------===-----====
=::-----------------------------------------===--------===
-:------------------------------------:--====-----------==
--::::------------------------------:---====-------------=
---::::------------------------------==+===--------------
=-----::::::::::::-:----:---------=+ ==== =
=-----------------------======+
================++ -
-----=
---------
-----------=
-::::---= -------------=
=-::-------:------------==
-=-:------:::::::::------==-
------:::::::::::::----=====
----::::::::::::::::---======
=--::::::::::::::::::---=======
----::::::::::::::::----========
-----------------------==========
=------------------===============
==---:----------=====+++++========
=--::::::::---=====++++++++++======
------------=====+++++++++++++=====
-===---======++++++++++++++========
=======+++++++*******++++=========
==++++++++++*****+++++=========
=++++++++++++++==========
==========================
--------------=============
----------------------======
---------::::------------=====
------::::::::::------------====
---:::::::::::::::-----------====
---::::::::::::::::::---------=====
------::::::::::::::::::::-------=====
=---:::::::::::::::::::::::::::----=======
-----:::::::::::::::::::::::::::::--=========
---:::::::::::::::::::::::::::::::----========
=---:::::::::::::::::-::::::::::::-------========
=-:::::::::::::::::::::---::::-------------=======
---:::::::::::::::::::::--------------------=++====
--:-:::::::::::::::::::::---------------------=++==+
----:::::::::::::::::::::----------------------++===
------:::::::::::::::::::-----------------------=++=+
-----:::::::::::::::::---------------------------+++==
------::::::::::::-::----------------------------=+++=
------:::::::::-----------------------------------++=+
-------::::::::::---------------------------------=+=+
------:::::::::::::::::---------------------------=++=
-----:::::::::::::::::::-------------------------==+=
-----:::::::::::::::------------------------------+==+
------:::::::::::::-------------------------------====
-------::::::::::--------------------------------====
-----------::------------------------------------====
-------------------------------------=------------===
-------------------------------------------------====
--------------------------------------=----------===
=--------------------------------------=----------===
---------------------------------------==---------===
--------------------------------------------------===
----------------------------------::--------------===
-------------------------------------===----==----===
+:-------------------------------=======-----===----==
=:--------------------------------====-------===----===
=:--------------------------------=----------===-----====
=::-----------------------------------------===--------===
-:------------------------------------:--====-----------==
--::::------------------------------:---====-------------=
---::::------------------------------==+===--------------
=-----::::::::::::-:----:---------=+ ==== =
=-----------------------======+
================++"Recognizable. Reused on purpose, never redrawn."
REVEAL BY SCANLINE
Every entrance animation sweeps a horizontal line of rows into place, echoing how this art was originally produced: top to bottom, one row at a time.
row 2 ◀ scanning
row 3 (not yet)
"Patient. Mechanical. Literally "rendering.""
# SCENE 05 — THE ARCHIVE
$ ls -la ./references
The living archive of the BBS-era ANSI/ASCII art scene — thousands of preserved art packs.
The art group that turned ASCII/ANSI login screens into a credited, competitive craft.
The tool that turned hand-drawn ASCII banner lettering into a portable, reusable utility.
Andy Sloane's spinning 3D torus, rendered live as shaded ASCII. Proof the technique still has range.
An open-source photo-to-ASCII converter — the density-ramp idea, automated.
A free in-browser converter — drop in any photo, get the density ramp back instantly. The same technique behind every glyph-cat on this site, with no install.
$ cat ./use_cases.txt
# SCENE 06 — VERDICT
Every pixel already had
a character that wanted
the job.
-
-----=
---------
-----------=
-::::---= -------------=
=-::-------:------------==
-=-:------:::::::::------==-
------:::::::::::::----=====
----::::::::::::::::---======
=--::::::::::::::::::---=======
----::::::::::::::::----========
-----------------------==========
=------------------===============
==---:----------=====+++++========
=--::::::::---=====++++++++++======
------------=====+++++++++++++=====
-===---======++++++++++++++========
=======+++++++*******++++=========
==++++++++++*****+++++=========
=++++++++++++++==========
==========================
--------------=============
----------------------======
---------::::------------=====
------::::::::::------------====
---:::::::::::::::-----------====
---::::::::::::::::::---------=====
------::::::::::::::::::::-------=====
=---:::::::::::::::::::::::::::----=======
-----:::::::::::::::::::::::::::::--=========
---:::::::::::::::::::::::::::::::----========
=---:::::::::::::::::-::::::::::::-------========
=-:::::::::::::::::::::---::::-------------=======
---:::::::::::::::::::::--------------------=++====
--:-:::::::::::::::::::::---------------------=++==+
----:::::::::::::::::::::----------------------++===
------:::::::::::::::::::-----------------------=++=+
-----:::::::::::::::::---------------------------+++==
------::::::::::::-::----------------------------=+++=
------:::::::::-----------------------------------++=+
-------::::::::::---------------------------------=+=+
------:::::::::::::::::---------------------------=++=
-----:::::::::::::::::::-------------------------==+=
-----:::::::::::::::------------------------------+==+
------:::::::::::::-------------------------------====
-------::::::::::--------------------------------====
-----------::------------------------------------====
-------------------------------------=------------===
-------------------------------------------------====
--------------------------------------=----------===
=--------------------------------------=----------===
---------------------------------------==---------===
--------------------------------------------------===
----------------------------------::--------------===
-------------------------------------===----==----===
+:-------------------------------=======-----===----==
=:--------------------------------====-------===----===
=:--------------------------------=----------===-----====
=::-----------------------------------------===--------===
-:------------------------------------:--====-----------==
--::::------------------------------:---====-------------=
---::::------------------------------==+===--------------
=-----::::::::::::-:----:---------=+ ==== =
=-----------------------======+
================++ -
-----=
---------
-----------=
-::::---= -------------=
=-::-------:------------==
-=-:------:::::::::------==-
------:::::::::::::----=====
----::::::::::::::::---======
=--::::::::::::::::::---=======
----::::::::::::::::----========
-----------------------==========
=------------------===============
==---:----------=====+++++========
=--::::::::---=====++++++++++======
------------=====+++++++++++++=====
-===---======++++++++++++++========
=======+++++++*******++++=========
==++++++++++*****+++++=========
=++++++++++++++==========
==========================
--------------=============
----------------------======
---------::::------------=====
------::::::::::------------====
---:::::::::::::::-----------====
---::::::::::::::::::---------=====
------::::::::::::::::::::-------=====
=---:::::::::::::::::::::::::::----=======
-----:::::::::::::::::::::::::::::--=========
---:::::::::::::::::::::::::::::::----========
=---:::::::::::::::::-::::::::::::-------========
=-:::::::::::::::::::::---::::-------------=======
---:::::::::::::::::::::--------------------=++====
--:-:::::::::::::::::::::---------------------=++==+
----:::::::::::::::::::::----------------------++===
------:::::::::::::::::::-----------------------=++=+
-----:::::::::::::::::---------------------------+++==
------::::::::::::-::----------------------------=+++=
------:::::::::-----------------------------------++=+
-------::::::::::---------------------------------=+=+
------:::::::::::::::::---------------------------=++=
-----:::::::::::::::::::-------------------------==+=
-----:::::::::::::::------------------------------+==+
------:::::::::::::-------------------------------====
-------::::::::::--------------------------------====
-----------::------------------------------------====
-------------------------------------=------------===
-------------------------------------------------====
--------------------------------------=----------===
=--------------------------------------=----------===
---------------------------------------==---------===
--------------------------------------------------===
----------------------------------::--------------===
-------------------------------------===----==----===
+:-------------------------------=======-----===----==
=:--------------------------------====-------===----===
=:--------------------------------=----------===-----====
=::-----------------------------------------===--------===
-:------------------------------------:--====-----------==
--::::------------------------------:---====-------------=
---::::------------------------------==+===--------------
=-----::::::::::::-:----:---------=+ ==== =
=-----------------------======+
================++