This tutorial is written by Hayley Wakenshaw


Getting Started

If you want to make ascii art the first thing you should know is that you don't need a special program, or special skills to make it with. All you need is somewhere to type text into - your e-mail program, notepad, wordpad, that sort of thing - and an idea of what you want to draw. There are no secrets or rules other than the following:

  1. Use a non-proportional or fixed width font. Click HERE for a page on this site that will tell you what they are, or ask me for the text version of the page via e-mail.
  2. Don't use tabs!! Always, but always use the space bar (or your cursor keys/mouse if the program you're typing in supports that) for empty spaces. The reason for this is that different computers and programs interperet the size of a tab space differently, so although what you see on your screen looks fine, on someone else's your pic may look all split up.
  3. Only use the keyboard characters on an American standard keyboard. That means all the letters, numbers and punctuation that you can see printed on the keyboard keys. You can use the shift key, but don't use the alt key to make characters. The reason for this is similar to that for not using tabs - different computers interperet alternative characters in different ways. The idea behind ascii is that all computers can read it because it's made up of characters that all computers will recognise.
  4. Don't leave empty spaces at the end of each line. Make sure every line that you type ends on the last character, and not a few spaces after it. This can cause problems on other systems, with line wrapping and so on.

Your First Ascii

The best way to make a start is to take someone else's picture and see if you can copy it. That way you get a feel for how you can use different characters. We'll start easy. Try copying these shapes, which only use the characters:

 / \  |  _ 
 ___               ___
|   |      /\     /   \
|___|     /__\    \___/

Easy huh? Now try making the same shapes again using the characters:

-  "  .  ,  `  :  >  <

This is what I came up with:

 .---.       .        .--.
 :   :     .' `.     <    >
 "---"     "---"      `--'

Bit more tricky, and it doesn't look as neat, but some of these characters, and knowing how you can use them can come in very handy at times, which we'll see later. Have a go at copying these, just for practice. Change them if you like:

 _   _    __    _   _                                   .^._    __
| |_| |_.'  `._| |_| |    /\  /\  /\  /\       /\      /   \|   \ \
|  _   _      _   _  |   /  \/  \/  \/  \    .'  `.   /_____V   / /
|_| |_| `.__.' |_| |_|  / /\  /\  /\  /\ \  <      >  |[]_[]|   \ \
                        \/  \/  \/  \/  \/   `.  .'   | |+| |   / /
                                               \/     `"""""'   \_\

Curves

It's handy to know where the characters 'sit' on each line. Are they at the top, in the middle or on the bottom of the line? A couple of ascii characters vary in their position from computer to computer, but mostly they all sit in the same place. Have a go yourself on your keyboard. Here are some examples.

Top of line:            " ` '
Top or middle of line:  ^ * ~ =
Middle of line:         - +
Bottom of line:         _ . ,

You can use all these characters on one line to make a pattern, like these:

_.,-=~+"^'`*`'^"+~=-,._.,-=~+"^'`*`'^"+~=-,._.,-=~+"^'`*`'^"+~=-,._


"^`'*-=~+,._.,+~=-*'`^"^`'*-=~+,._.,+~=-*'`^"^`'*-=~+,._.,+~=-*'`^"

Now try making a simple sig with a decorative border, using all the characters we've met so far. This is what I came up with:

                        _________________________
  ..,,++~~--==**''``^^""  Hayley Jane wakenshaw  ""^^``''**==--~~++,,..
 /|\                     flump@quadrant.xs4all.nl                    /|\
< : > Flump's Fantastic Ascii Collection  http://www.xs4all.nl/~klr < : >
 \|/ "Daddy.. why doesn't the magnet pick up your floppy disks?..."  \|/
  ""^^''``**--==~~++,,.._________________________..,,++~~==--**``''^^""

Using The Other Characters

The other ascii characters fall into three categories. Either they're the full height of the line or they're half height. Capitals and numbers are always full height. Compare them to some of the others - which are half height, and which are full height? Some examples:

Full height: A 7 % @ ! # ) ; & $ ] } | / > l t f k h d ?
Half height: a o v z

And then there's the 3rd sort. The characters that look like half height, but sit a little lower on the line, like they would in handwriting. These are: j g y p q

And all together they can make a slight curve, just like the others:

pqyjgacoevA8!@)lf$%;$fl(@!8AveocagjypqacoevA8!@)lf$%;$fl(@!8Aveoc

Lines and Diagonals

There are three basic lines to any picture - straight (either horizontally, or vertically), diagonal, and the third is the curve, which includes circles. We'll look at straight and diagonal lines first. Horizontal and vertical lines are simple in ascii - here are some examples:

Horizontal: 8888888888888888888888888888888888888888888888888888888888
            """"""""""""""""""""""""""""""""""""""""""""""""""""""""""
            ----------------------------------------------------------
            __________________________________________________________
            ..........................................................


Vertical:   |    8    :    !    1    I
            |    8    :    !    1    I
            |    8    :    !    1    I
            |    8    :    !    1    I
            |    8    :    !    1    I
            |    8    :    !    1    I

Diagonals are a bit more tricky. You can make simple ones using the / and \ keys. Diagonals with other gradients need a technique similar to that used to make slight curves. Experiment yourself to see how you can make different angles. Here are some examples to start you off:

       /         .'               _,-'                            __
      /        .'             _,-'                        __..--''
     /       .'           _,-'                      __..''
    /      .'         _,-'                  __..--''
   /     .'       _,-'              __..--''
  /    .'     _,-'          __..--''                   ____....----"""
 /   .'   _,-'      __..--''           ____....----""""
/  .'  ,-'  __..--''   ____....----""""

Circles

By now we've looked at the basic characters, character height, slight curves, lines, and slopes. The last thing to look at is what many people who make ascii have trouble with: circles. You're half way there already, though, because ascii circles are basically a mix of vertical and horizontal lines, slopes or diagonals, and curves. After a little practice, you'll get a feel for making different sized circles - I have a basic set of circles in a file that I refer to when I need a circular or rounded shape in an ascii pic, so now I can make them easily in all sorts of sizes. Start making small circles - how many ways can you think of to make a circle in under 5 lines? The bigger the circle the more rounded it can be, but try making circles of different sizes and see what you come up with. These are mine:

                                               __
                          _   /""\            /  \
1 line:  O ()   2 lines: (_)  \__/   3 lines: \__/

                                                     ____
           ___               .-''-.                .'    `.
4 lines:  /   \   5 lines:  /      \   6 lines:   /        \
         |     |           |        |             |        |
          \___/             \      /              \        /
                             `-..-'                `.____.'

             _.-""""-._
9 lines:   .'          `.
          /              \
         |                |
         |                |
         |                |
          \              /
           `._        _.'
              `-....-'

That's the basic characters, and what you can do with them. Play with them, see what patterns and ascii scribbles you can make. Have a go at taking one of my pics, or another ascii pic from some of the excellent sites around, and copy it. Then change it! See how you can use the characters to make the picture look different. Can you make the expression on a face change? Can you make an ascii person fatter, thinner, taller, shorter? Give Barney the dinosaur a moustache, or, much better, multiple wounds? :-) This is how I learned. Many of my first efforts were absolutely dreadful. So I looked at how someone else had made the same sort of picture and learned from it. And I still do - probably why people often say my style is very similar to Joan Stark's!

To get you started, cut and paste this head into wherever you want to draw your ascii, and give it a face. Add a hat or a body. Or make the hair shorter or longer. Make it a clown or a devil!

           ,-.,~~.
         ,'///||\\`.
        ///(((||)))\\.
       (((         )))
       _)))        |(_
      ._//\       /\\_.
      `-'_/`-._.-'\-`-'
        ' \/=._.=\/ hjw

Moving Forward

That's all the boring stuff about technique over. :-) What's coming up is a step by step demo of how I go about turning a picture into ascii.

When you first start, it's always a good idea to try to draw something simple. Gromit the dog is made up of very simple shapes - just ovals and circles, so I'll use him as an example.

To start a picture, I look for the simplest or most prominent feature of whatever I'm trying to draw. In Gromit's case, I reckon it's his nose. :-) I'll try the 2 line circle and see where that takes me. After I've drawn his nose I'll see if I can draw the shape of his head around it:

               ___
              /   \
             |     |
            /   _   \
            |  (_)  |
             \     /
              `---'

Hmm.. don't like that - the top of his head isn't tall enough, but if I make it any longer it looks too narrow. If I make it wider, then the nose looks too small....

               ____
              /    \
             |      |
             |      |
            /   _    \
            |  (_)   |
             \      /
              `----'

.... and to put the nose in the center, I'll have to make it yet another character wider.......

              _____
             /     \
            |       |
            |       |
           /    _    \
           |   (_)   |
            \       /
             `-----'

.. and though it looks like it would make a nice dog, it's not Gromit, really is it? So I'll make his nose a bit bigger; 3 lines this time, and try the face shape again.

                 ____
               ."    ".
              /        \
              |        |
              |        |
              /   __   \
             |   /  \   |
             |   \__/   |
              \        /
               `.____.'

Yep - that's more like it. :-) Next I usually try to fit the eyes in.

                 ____
               ."    ".
              / __  __ \
              |/()\/()\|
              |\__/\__/|
              /   __   \
             |   /  \   |
             |   \__/   |
              \        /
               `.____.'

Nope. Don't like those. Normally I like to make eyes complete circles, or just use a couple of characters like "9 9" or "e e".But those would be too small. And these eyes are too big and don't look round enough. I'll try two lines instead.

                 ____
               ."    ".
              /        \
              |  _  _  |
              | (O)(O) |
              /   __   \
             |   /  \   |
             |   \__/   |
              \        /
               `.____.'

Much better.Now to add the ears.

       .-""-.            .-""-.
      /    -.`.  ____  .' _    \
      \   .' \ `"    "' ,' \   /
       `-'    /        \    `-'
              |  _  _  |
              | (O)(O) |
              /   __   \
             |   /  \   |
             |   \__/   |
              \        /
               `.____.'       hjw

There are gaps left that look untidy though. This is where I couldn't get the characters to fit together. Often you can solve this by using a letter. This is about the only time I use letters and numbers apart from doing small details like eyes. I'll mess around with my favourite 'connecting' characters like: "j" "v" "V" "X" "x" "7" "i" "y" "Y". I'll use the "Y" I think, because it has the right angles in the right places to connect the ears to the head. :-)

       .-""-.            .-""-.
      /    -.`.  ____  .' _    \
      \   .' \ `"    "' ,' \   /
       `-'    Y        Y    `-'
              |  _  _  |
              | (O)(O) |
              /   __   \
             |   /  \   |
             |   \__/   |
              \        /
               `.____.'    hjw

Last stage is to add the little details, and tidy up any messy or unclear bits. I don't like that left ear at the minute, so I'll, change that. But in the final version that goes on the web site I might decide to change it back. ;-) Have a last check to make sure he actually looks like the picture I've been working on, ask Robbie my fiance if he can tell what it is. If the Robbie test succeeds, then I hit the save button, and start looking for something else to draw. :-)

       .-""-.            .-""-.
      /    ,.`.  ____  .' _    \
      \   /  \ `"    "' ,' \   /
       `-'    Y        Y    `-'
              |  _  _  |
              | (O)(O) |
              /   __   \
             |   /# \   |
             |   \__/   |
              \        /
               `.____.'
               --"  "--     hjw
   

These are only the basics. There are other techniques such as shading, making solid style ascii, anti-aliasing (making solid style ascii look smoother). But I don't use those much so I'm not qualified to explain them. But this info should be enough to get you started. :-)

If all else fails, you can always have a look at some of the other ascii art tutorials and hints available. There are about 7 that I know of, but the following three are the ones that I found useful and not too technical: