Contents

To Art is Human (Mobile Friendly) - proving you wrote that text by making it pretty

Info

This post is the mobile-friendly version of THIS POST. If you are on desktop or a tablet, go read that one!

../../_resources/939b17b94f3f50655e2b16ddb77911c7.png

There is an art form I deeply admire that is created not from brushes and inks, paint, graphite, or any other physical media, but by pixels. Many pieces of art of this type are accessible by anyone with a computer newer than the early 80s, and most people never see it at all. (If you’re reading this, you probably have seen it, but only because we’re nerds.) It is an art form that surprisingly has retained its humanity in the rise of LLMs (it’s not AI, despite what the people championing it have decided), even though it uses the same components that LLMs do. ASCII text art has been around for a long time as an art form: printouts of someone’s attempt at a pin-up on a computer lab wall, IRC silliness, forum post footers, and most visibly, the NFO files used inside releases from scene groups claiming their spot in history as the first to release a piece of software from the clutches of its publisher. Many releases are lost to time, but the art that came with them has endured - and LLMs are fundamentally incapable of generating the visuals that make these bits of art so special. In a time where every piece of media is suspect, every bit of writing placed under microscopes to ascertain its origin… perhaps the old ways are worth another look. This post is about a method that I’ve been using to write documentation that proves, beyond a shadow of a doubt, that it is I who wrote it. You can’t generate this - let’s dive in!

Definition check!

Much of this post is about the golden age of internet-based piracy (though if buying isn’t owning, is piracy theft?). As such, there’s a lot of it that has its own vocabulary. (In general, also some context to help you understand the setting.)

  • warez: software that has been ‘cracked’ (bypassed the security or license key) to allow it to function without paying for it
  • scene group: a group of hackers who release warez the scene: unofficial loose organization of different groups competing to release warez as fast as possible
  • NFO files: A .nfo (info) file is commonly used since 1990 to announce new scene releases. It usually contains elaborate art, information about groups that published the software, and any information relevant to using it. It’s similar to a README file, but prettier. Way prettier.
  • LLM: Large Language Model. It’s very fancy autocomplete, trained entirely on stolen content. We’re not gonna get into that in this post, though. It’s what OpenAI is trying to tell you will take over the world.
  • ASCII: American Standard Code for Information Interchange: 95 text pieces and 33 “control characters” (like backspace, newline, tab, etc.) that forms the standard for the text that you’re reading right now. Yes, this sentence is created using the ASCII Standard, since it’s the letters A-Z and numbers zero through nine. And punctuation. Can’t forget the punctuation.

There are a few things that I want to cover in this post, so it’s probably good to take a moment and make a Table of Contents.

  • I. A Brief History of ASCII Art
  • II. GameFAQs and the Art of the Guide
  • III. The rise of LLMs
  • IV. Proving You Wrote It
  • V. Takeaways & Last Thoughts

To quote Sam Reich: the only way to begin is by beginning; without further ado, let’s begin.

A Brief History of ASCII Art

Throughout the ages, every culture has played with their food. You might create something with it, draw a pattern with it, sort it by size or color, or use the gravy to create a lazy river through the mashed potatoes. Even though your food isn’t fulfilling its primary purpose (you know, of being food), you can explore different forms of art in a medium that is not explicitly designed for creating art.

So too do writers and typographers play with their letters. Just because a word is meant for communicating an idea doesn’t mean that it can’t be used for other things, sometimes at the same time. As is tradition, the Greeks got there first and wrote poetry in the “pattern poem” style - an egg, wings, or axeheads - and did so roughly in 300BCE. These three patterns are the finest examples that are still around, though there must have been more. Writing being what it is, we’ll see the same concept again later in the 1600s and every century since.

../../_resources/54046e5119b05b33eb0ed5935d676049.png
This art would have been engraved on an axe head.

In 1863, Abraham Lincoln’s Emancipation Proclamation changed slavery forever in the US, and two years later, several incredible works creating portraits of the president in calligraphy of the proclamation were made by R. Morris Swander and W.H. Pratt, engraver and lithographer respectively. I highly encourage that you look up these works (link at the bottom of this post), since I cannot very well show you in pure text form. Trust me, they’re gorgeous.

../../_resources/c0ddb71ef81d7f41437610a9e4276f17.png
Absolutely incredible work.

Skip ahead a bit to exactly 100 years later, and in 1963, the first standard of ASCII text was published. It will get worked on over the coming years, but even in its infancy, it is reasonably complete. In 1969, RFC 20 codified using ASCII for the internet, but it was 2015 before it would be recognized as the internet backbone that it is.

Just in case you were wondering, here’s the complete printable ASCII characters (the space is represented as the block, since I’m ignoring the control ones):

░ ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
        (preformatted grid courtesy of roysac.com)

With just these characters, digital text art in the 80s with the release of the Amiga would be termed “oldskool” art. This uses basic punctuation: pipes, dots, slashes, and brackets. Much of the art is very angular, but it fits well with the way the art is intended to be seen and the tech that produced it.

../../_resources/343605e8a263b250c25a9f265ee528f9.png
oldskool art

When most people think of ‘ASCII art’, this type of art is likely their first thought. It’s the easiest to create of the three ‘skools’ of thought and fits nicely on forums, email signatures, or BBS’ that it once called home. For more complex images, conveying the details becomes harder. With monospace ‘cells’ only holding limited pieces of visual data, the minimum sizes to show ideas grow astronomically since visual complexity has such low fidelity. That won’t stop us for long though, since the “newskool” art began to appear shortly after. This is characterized by usage of numbers, symbols, and other “heavy” characters in the ASCII toolkit. They still don’t go into the “extended” ASCII set (128 additional characters added on to the ASCII standard, mostly internationalization, like accents and umlauts) very often, though the folks using this style do not differentiate much between the Unicode character sets and the extended set.

../../_resources/3b41997b57887ca2046c6cc833f543ae.png
newskool art

Newskool’s recognizable look comes from its requirement that each character involved is an actual text character that has a meaning beyond art. In the ’third wave’, there will be more accepted use of characters existing specifically for use in art (like boxes and drawing characters), but here, each cell in the piece must have meaning. In the artwork by vagonparovoz, the skull uses heavy ASCII for the primary shading of the skull, but dips into Unicode to show more detail around the edges. This approach provides the best of both worlds: demonstrate a command of the characters that uses whitespace and shadow appropriately, and be compact enough to show visual fidelity in a relatively cramped space.

The intro to this post uses “high ASCII” art (or block art), arguably the third wave of this type of art. When it became accepted to use additional characters, ASCII art entered a new age entirely. Block characters (and others designed for art) provide a whole new way of interacting with the screen and reader.

../../_resources/93f56efaea049c37d298d5c93a6d20b2.png
High ASCII -or Block- art

The components that make up this piece have no defined use - EXCEPT decoration. This automatically makes it ineligible for newskool art, and from here, shading and actual painting styles become more accessible. This is often mentioned with ANSI art, which uses control codes to change the colors of text and backgrounds across the piece. ANSI codes are likely not supported in your browser, so we’ll not be able to show it here. Just imagine beautiful colors on our ‘hello world’ example up there.

Now, why did we just go through all that? Because each of those three waves has its own style, its own vibe, and its own way to breathe life into enjoyable art for the reader, punctuating an otherwise flat black and white document - devoid of anything but raw information - with personality that makes it standalone and memorable. We’ll touch on this later, but have you ever asked an LLM, expecting the worst, to create text art? I can wait here if you want to go try it now. It isn’t a particularly inspiring process.

But before we really get into that, we need to talk about GameFAQs.

GameFAQs and the Art of the Guide

In 1995, a website quietly launched to fill an unloved niche: video game guides hand-written by volunteers. These posts describe strategy, walkthroughs, cheats and data dumps, maps, and anything else that might help a wayward soul find the path again after running around in circles for hours in a dark, dismal dungeon. In 2009, GameFAQs was one the most-visited websites; today, it hangs roughly at the 420,000th position. Despite the relatively recent acquisition by Fandom, it has remained more or less the same as it was.

One of the biggest things that I loved about this site is that the guides were, at one time, written completely in monospace fonts. This allowed users to place tables, crude illustrations, or formatting of their choice wherever they liked. It gave the entire experience a look that was highly customizable - each author was able to use common formatting they liked for their guides. The recognizable artwork of simple things like section headers were a subtle indication that the author had truly breathed life into their work - that it was cared for, adored. A carefully-formatted table might not look like a labor of love, but let’s have you try to manually resize all the columns when one of your headers is too long for the cell.

It’s here, in these hallowed halls of monospace glory, that I found the post of my dreams. The post that would make all of this make sense - and an inspiration for what you’re reading now: the walkthrough for Super Metroid for SNES by rs1n (nemes1ss). Through manually-spaced and carefully chosen words, rs1n produced a gorgeous speedrun manual with nothing more than determination and ASCII. Though he and I chose different rules for our artworks (like indents and line length), it’s still an inspiration for the thoughts that lead me to write this today.

GameFAQs was one of the last places that most people would ever view monospaced fonts in their natural habitat. Like a zoo, they still display the same classic guides that navigated me through Bionic Commando on the GameBoy, and the same things that you looked up back in the day are probably also still there, just waiting for the next person to play that game to seek out the expertise within. I remember many decrying the site for its “old” guides, the lack of images, and the whole monospace thing. I loved it though; sometimes you just find something that speaks to you. Anyway, let’s move on.

The Rise of LLMs

LLMs, or Large Language Models, are the predictive text Blobs of Math that some people want you to think are magical artificial intelligence (AI). Instead, the way they work is by ingesting the plenary written corpus of human history, then regurgitate it by computing the statistical probability that predicting “fu” is the next syllable that comes after “what the “. For things that can really only be written one way (like boilerplate code), an LLM is fantastic - I expect that it will give me the boilerplate that it has read so many times before, and then to my delight, it does - but when attempting to use it for something that needs logic, intuition, or creativity, and it falls apart. It falls apart because the math simply can’t predict creativity.

As these models grow more complex, it is becoming commonplace for some folks to lean on them wholesale, an effective ‘outsourcing’ of their brain. I’ve seen it in my line of work as a developer, and - even more depressingly - so too has my partner, a librarian by trade. As predictive text algorithms, they spout drivel with a confidence that would make Bernie Madoff want to give it money. Blinking lights do not a brain make, and the issue is that it sounds convincing. Maybe it actually ‘knows’ what it’s talking about?

I argue that there is nothing wrong with using LLMs for things you can validate on your own; after all, you’ll know where the answer went astray via experience gained on your own. Where people run into trouble is when they use it for ideas or concepts that they do not know already, as there is no way to easily certify the accuracy of the results. Google’s own “AI mode” consistently yields wrong data, sometimes dangerously so. (Are you having trouble getting cheese to stick to your pizza? Google suggests Elmer’s glue in the sauce.) When it is necessary to take the response at face value, there’s no limit to the reality distortions that appear, again with that dangerous side of confidence, in your hands.

With this in mind, there’s a phenomenon (especially in my line of work) wherein it becomes somewhat commonplace to have LLM-generated documentation. I’m guilty of this too - it’s something that I’m working on fixing. For software that will not see much use, or something of relatively low importance, perhaps it’s okay. Perhaps the world will not implode. But sometimes, I find myself working on the stuff of dreams, and it becomes paramount to prove, beyond a shadow of a doubt, that I am the person who wrote the words.

Proving You Wrote It

As people lean more and more on LLMs to process text or generate text, there is a tinge of unease present as you read over documentation that has that specific ‘feel’ to it. Though it’s easy to make, there are still questions: “Can I trust this?”, “Is this correct?”, etc. As the stakes for the project rise, desire for proven docs and proven code rises too.

Sure, things like “AI-detectors” exist, but success rates vacillate more than a 6-year-old’s dream of what they want to be when they grow up. Stories abound of plagiarism checkers or detectors flagging problems that don’t exist (or proudly finding human-written text as ‘AI’); I personally verified that zerogpt.com has the first two paragraphs of the Declaration of Independence at 96.8% “AI”. This result isn’t reflected in all of the sites that I tried (some accurately marked as 0%); I can’t tell if that’s because the Declaration is part of a pre-flagged bit of text or if training is getting better. I realistically don’t have access to any text that hasn’t already been stolen trained on in some way beyond the text that I personally have written (which scored a 0% everywhere I checked but zerogpt.com, which gave me a 3%. I think this one’s just broken).

After much introspection, where I’ve landed is that the answer is to write text that is literally impossible to replicate through mechanical means. By starting from a perspective of treating what you’re writing as art to begin with, this encourages creativity from the beginning. In my North Bay Python talk (2025), I posit that working inside the box is not only a good thing, but that that the box is required for creativity. You have to have walls to yeet your ideas at; if you have no boundaries to push against, you find yourself lost in a quagmire of choice.

The box that I built for myself in this project is an homage to those that came before me. The countless hackers and dreamers who did what they could because they could (and are often the only reason we can run old software today). These folks swam through extreme technological limitations to create art for the sake of art, and it is on their shoulders I proudly stand. My rules for creating the post you’re reading now are:

  • every line that does not end naturally must be 79 characters long
  • no external tools & no automatic formatting; only carefully choosing my words
  • no indents at the beginning of paragraphs (I’m not really sure why I did that to be honest)

I’ll be the first to admit that it is not a tremendously speedy way of writing, but there’s a certain amount of joy with discovering that you’ve discovered the magic incantation of words that is the correct lengh, is grammatically correct, AND communicates the idea you are trying to communicate. It is a balancing act!

Takeaways & Last Thoughts

Though the situations that require this type of thing are rare, sometimes it is still nice to know that you can create. No text prediction algorithm is going to take that away from you, but they will try. Gods, will they try. So, back to the beginning of this post. As purveyors of pure text, LLMs fundamentally can’t process text art. They also, hilariously, cannot count. (The infamous “how many r’s are in strawberry” question comes to mind here.) As part of my research for this post, I asked several top-tier models to create text in a similar style to my own writing here, with the most successful attempt managing six lines before succumbing to a line that was too long. Such minor successes also have negative sides, as it took minutes of processing before I got responses in some cases.

For what it’s worth, I do not think that it’s important to always write in ways that can’t be replicated by LLMs. To some extent, it is a fool’s errand; though companies like Anthropic and OpenAI are adding what equates to verbal ’tics’ to the models so that their output is easier to identify, it’s a genie that’s been let out of the bottle. It can’t be put back, and there are lots of people whose primary job is to make sure we can’t ever even try.

To make it clear, though the tone of this post regarding LLMs is quite dour, my personal views on using LLMs for work is reasonably permissive. As a developer, LLMs like Claude and Codex do make my workday easier (as long as I babysit it appropriately and give it small enough tasks). I just think that as developers, we should understand what the LLM has written. If you cannot explain and verify the code, you shouldn’t merge it. That being said, I don’t think that they have a place in art. Where writing, music, and painting are concerned, they can fuck right off.

I also cannot deny that there are severe ethical concerns with using LLMs. With code, at least I’m aware where the majority of the training data came from: the open source repositories that people like me wrote, released, and said “do what you will with it” via licenses like MIT. The majority of the code I’ve released over the years has been via extremely permissive licenses, specifically because I want the fruits of my labor to be usable by those who come after me. Planting a tree knowing you won’t sit in its shade, something something. None of us knew that anything like LLMs were a possibility, or I think we would have built that into the license structure.

You’ll note that I do my best to not use the term “AI” anywhere in this post. I believe it is important to maintain an understanding that LLMs are not AI. They do not possess an intelligence of any sort. They are the evolutionary next step of the predictive text on your phone keyboard, nothing more. They are not magic and they do not have feelings; they certainly are not ‘AGI’ (artificial general intelligence), and anyone who believes so is either very uninformed or needs to see a professional.

What I do think is important is that though LLMs have managed to weasel into so many of the human expressions of creativity that we’ve historically leant upon, it is an expression of creativity to defeat their co-opting and distillation of the things that make us human. It’s human to prove that we’re human. To make it plainly clear that we are still here and we’re still writing.

We’ve come a long way from art on axe heads and warez groups competing to craft the coolest release notes. Over thousands of years of text-based art, one thing remains true: you can’t automate it. It’s art, and art it will remain. Generate this, clankers.

t(-_-t)


Footnote: I manually retyped vagonparovoz’s work in order to add it here. Fonts being what they are, it does not match perfectly, though I did my best - please accept my apologies for any graphical errors.

Sources:

Headers:

Top art: https://patorjk.com/software/taag/#p=display&f=Cesspool+Blu&t=hi This was modified to fill in gaps from ANSI art so that it would display better

Headings: https://patorjk.com/software/taag/#p=display&f=JS+Stick+Letters&t=hi Added ‘&’ character

ToC: https://patorjk.com/software/taag/#p=display&f=Slant&t=hi