From typewriter creations to modern digital masterpieces — the complete guide to ASCII art
ASCII art is a graphic design technique that uses characters from the ASCII (American Standard Code for Information Interchange) character set to create images, typography, and visual compositions. Instead of using pixels, ASCII art uses printable characters — letters, numbers, punctuation marks, and symbols — arranged to form recognizable pictures and text effects.
The beauty of ASCII art lies in its constraints. With only 95 printable ASCII characters (plus extended characters in various encodings), artists must be creative in how they use density, spacing, and character shapes to simulate shading, contours, and texture. This limitation has produced some of the most inventive digital art ever created.
ASCII art exists in two primary forms: line art (using characters like /, \, |, _, - to draw outlines) and solid art (using character density to create shaded images, similar to a halftone print).
The origins of text-based art predate computers entirely. Typewriter art emerged in the late 19th century, when creative individuals discovered they could use the typewriter as an artistic tool. One of the earliest known examples is a portrait of a butterfly created by Flora Stacey in 1898 using a typewriter.
With the advent of computers in the 1960s and 1970s, ASCII art found its natural home. Early computer terminals and line printers could only display text, so creative users pushed these limitations to create visual content. Teletype machines, dot-matrix printers, and CRT terminals all became canvases for ASCII artists.
The 1980s and 1990s saw ASCII art flourish in BBS (Bulletin Board System) culture. ANSI art — an extension that added color through escape sequences — became hugely popular in the demoscene and warez scene. Groups like ACiD (ANSI Creators in Demand) and iCE (Insane Creators Enterprise) produced elaborate ASCII and ANSI artwork that pushed the medium to new heights.
The internet era brought new life to ASCII art through email signatures (sig files), Usenet posts, and code comments. The tradition of embedding ASCII art in source code continues today, with everything from the Linux Tux penguin to elaborate dragon illustrations appearing in codebases worldwide.
|\ _,,,---,,_
/,`.-'`' -. ;-;;,_
|,4- ) )-,_. ,\ ( `'-'
'---''(_/--' `-'\_)
|\_/|
| @ @ Wow!
| <> _
| _/\------____ ((| |))
| `--' |
____|_ ___| |___.'
/_/_____/____/_______|
The most common form of ASCII art today is large text rendered in decorative ASCII fonts. FIGlet (Frank, Ian and Glenn's Letters) is the classic tool for this, supporting hundreds of font styles that transform ordinary text into eye-catching banner-style headings.
__ _ _ __ ___ ___ ___ _ __
/ _` | '__/ __|/ _ \/ _ \| '_ \
| (_| | | \__ \ __/ (_) | | | |
\__,_|_| |___/\___|\___/|_| |_|
___ _ _ _
/ _ \| \ | | ___ _ __ __| |
| | | | \| |/ _ \| '_ \ / _` |
| |_| | |\ | (_) | | | | (_| |
\___/|_| \_|\___/|_| |_|\__,_|
Images can be converted to ASCII art by mapping pixel brightness to character density. Dark areas are represented by dense characters like @, #, %, while light areas use sparse characters like ., `, and spaces. This creates a surprisingly detailed monochrome representation of the original image.
Box-drawing characters and line-drawing characters (both in standard ASCII and Unicode) are used to create diagrams, flowcharts, and architectural layouts entirely in text. This is especially useful in documentation, README files, and terminal interfaces.
ANSI art extends ASCII art with color and cursor control through terminal escape sequences. While limited to terminal environments, ANSI art can produce stunning full-color compositions and animations.
ASCII text generators offer dozens of font styles, each with a distinct personality. Here are some of the most popular categories:
These are large, bold fonts designed for headings and titles. They use multiple lines of characters to create substantial text blocks that are impossible to miss.
# Shadow font:
____ _ _ ____ _
| _ \| | | | / ___| | |
| |_) | | ___ ___| | | | _ ___ | |_
| __/| |/ _ \ / __| | | | | |/ _ \| __|
|_| | | (_) | (__| | | |_| | (_) | |_
|_| |_|\___/ \___|_| \____|\___/ \__|
These simulate cursive and handwritten text using characters like /, \, and } to create flowing, connected letterforms.
Block fonts fill the entire character grid with solid characters, creating dense, impactful text that looks great in monospace displays.
These compact fonts use just 1–3 lines per character, making them ideal for situations where vertical space is limited — like terminal prompts, IRC messages, or social media bios.
Creating ASCII art manually requires patience, a monospace font (so all characters have equal width), and a good understanding of how different characters contribute to visual density. Artists typically work in a text editor with a monospace font, building their composition character by character.
The key principle is character density mapping. Different characters have different visual "weights" — how much visual space they fill. A common density scale from lightest to darkest is:
Lightest → . ` ^ " : ; , - ~ _ + = ! ? / \ | ) ( ] [ } { * & # % $ @ ← Darkest
By choosing characters from this scale, artists can create convincing gradients and shading effects using nothing but text.
Modern ASCII art generators use algorithms to convert images or text into ASCII representations. For image conversion, the process typically involves:
For text-to-ASCII conversion, FIGlet-style tools use pre-defined character templates for each letter in each supported font. The input text is mapped character by character, and the template rows are concatenated line by line to produce the final output.
Color ASCII art uses ANSI escape sequences to add color to text art. While the base art is still ASCII characters, the color information transforms the output dramatically. This is common in terminal applications and code-based art installations.
Animated ASCII art sequences multiple frames of ASCII art to create animation effects. This can be done in terminals using ANSI cursor control codes, in web pages using JavaScript, or in video formats.
Multi-column techniques use different fonts, sizes, and styles in combination to create complex compositions with visual hierarchy — much like typographic design but using only ASCII characters.
Unicode extensions go beyond the 95 printable ASCII characters to include box-drawing characters (╔═╗║╚╝), block elements (▀▄█░▒▓), and other Unicode symbols that vastly expand the artistic palette while maintaining the text-based aesthetic.
ASCII art is deeply embedded in programming culture. From the Linux kernel's Tux penguin in boot logs to elaborate dragons in source code comments, ASCII art serves as a form of digital folk art that connects developers across generations and languages.
Text-based platforms like Twitter/X, Reddit, and Discord are natural homes for ASCII art. Kaomoji (Japanese-style text emoticons like ¯\_(ツ)_/¯), text banners, and small ASCII drawings are widely used for expression and decoration in text-limited environments.
ASCII diagrams are invaluable in technical documentation because they render correctly in any text environment — from Markdown files to terminal output to plain text emails. Architecture diagrams, flowcharts, and data structures are commonly represented as ASCII art.
Artists and creative coders use ASCII art as a medium for generative art projects. By combining algorithmic generation with the aesthetic constraints of character-based output, they produce works that bridge the gap between code and visual art.
ASCII art signatures remain popular for personalizing email communications. A small, well-crafted ASCII element below your contact information adds personality without relying on HTML or images (which many email clients block).
While creating ASCII art manually is a rewarding skill, automated generators save time and produce consistent results. When choosing an ASCII art generator, consider:
Create stunning ASCII text art instantly with 50+ fonts. No sign-up, completely free.
Open ASCII Art Generator →