You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5.0 KiB

ASCII Art

ASCII art is the art of (mostly manually) creating graphics and images only out of fixed-width (monospace) ASCII characters. Strictly speaking this means no Unicode or extended ASCII characters are allowed -- these would rather be called Unicode art, ANSI art etc., though the term ASCII art is quite often used loosely for any art of this kind. If we keep being pedantic, ASCII art might also be seen as separate from mere ASCII rendering, i.e. automatically rendering a bitmap image with ASCII characters in place of pixels, and ASCII graphics that utilizes the same techniques as ASCII art but can't really be called art (e.g. computer generated diagrams); though in practice this distinction is also rarely made. Pure ASCII art is plain text, i.e. it can't make use of color, text decoration and other rich text formatting.

This kind of art used to be a great part of the culture of earliest Internet communities for a number of reasons imposed largely by the limitations of old computers -- it could be created easily with a text editor and saved in pure text format, it didn't take much space to store or send over a network and it could be displayed on text-only displays and terminals. The principle itself predates computers, people were already making this kind of images with type writers. Nevertheless the art survives even to present day and lives on in the hacker culture, among programmers, in Unix communities, on the Smol Internet etc. ASCII diagram may very well be embedded e.g. in a comment in a source code to explain some spatial concept -- that's pretty KISS. We, LRS, highly advocate use of ASCII art whenever it's good enough.

Here is a simple 16-shade ASCII palette (but watch out, whether it works will depend on your font): #OVaxsflc/!;,.- . Another one can be e.g.: WM0KXkxocl;:,'. .

Here are approximate brightness values for each printable ASCII character, with 0 being black and 1000 white (of course the values always depend on the specific font you use):

{ I obtained the values by shooting a screen with some generic monospace font in gedit or something, then made a script that computed the values and ordered them. ~drummyfish }

@ 577    P 727    A 777    ? 827    / 867
W 615    w 735    Z 777    I 830    > 867
M 640    3 740    h 779    j 831    \ 867
0 641    X 741    Y 786    C 834    < 868
Q 656    D 744    [ 797    ) 836    c 870
& 658    V 745    T 797    ( 837    + 874
% 664    b 746    e 798    l 837    J 892
R 664    p 747    } 800    x 838    " 911
8 676    5 748    a 800    i 848    ; 912
# 685    d 748    { 803    z 851    _ 912
O 685    2 750    ] 809    r 853    ~ 924
$ 687    4 750    y 810    ^ 854    : 936
B 702    S 750    1 811    s 855    , 942
6 707    q 751    7 812    v 855    - 953
9 708    k 759    F 812    ! 856    ' 954
g 711    G 765    o 813    t 856    . 968
N 715    K 767    f 815    * 857    ` 969
U 724    E 768    u 825    = 860      1000
m 727    H 771    n 826    L 866

And here are some attempts at actual ASCII art:

            _,,_  
           /    ';_  
    .     (  0 _/  "-._
    |\     \_ /_==-"""'           .~~~~~~~~;~~~~~~~~.
    | |:---'   (                  | ASCII  | tables |
     \ \__."    ) Steamer         |========I========|
      '--_ __--'    Duck!         |  are   |        |
          |L_                     |--------{   =)   |
                                  |  the   |        |
                                  |--------+--------|
      []  [][][][][]              |  best  | tables |
      [][][]      [][]            |________|________|
      [][]          []
      []    XX    XX[]
      []      XXXX  []
      [][]          []        ____   _____   _____
      [][][]      [][]       [   _) [   _ \ / ____]
      []  [][][][][]          ) {    } |_) )\___  \
                              | |__/||  _ {  ___} |
          SAF FTW             }_____|}_{ \_][_____/

   ("\/") ("\/") ("\/")
   \    / \    / \    /
    \  /   \  /   \  /          KEEP IT SIMPLE
     \/     \/     \/             ~~ BRUH ~~
^
|
|   _.--._                  _.--._
| .'      '.              .'      '.
|/__________\____________/__________\______
|            \          /            \
|             '.      .'              '.
|               `'--'`                  `'-
|
V
                                    /|_/| why is
  '.|.'       . :       ___        (._. ) everyone
 --{O}--   .;::.':.' __{   )_      /\  /) so
  .'|'. _.:''  '  : {_ \  } _}       VV   retarded
    ,__|| |_,         \_{__/
   /\\ \|_| \\          __
  /  \\      \\       ,'  '.
 /____\\______\\     ( o    )
  \,,,|,,,,,,,/       '")("o  
  |___|_[H]___|=|=|=|=|=|=|=|=|

See Also