ASCII art is a kind of drawing made entirely out of text, that can be displayed in Terminal. While there are generators available that convert uploaded photos into ASCII art, we wanted to create a tool that was more like a canvas, allowing people to create ASCII art by drawing in real time. The goal is for users to create fun art and alias it in their terminal. That way when working with the command line users can view fun art. We created this web app to allow experimentation with this text-based art form, and to encourage the intersection of creativity and programming.

What it does

Users click in the grid spaces in the right to add a character and "draw" an image. They can use the menu to choose the characters that they are drawing with, or erase parts of their work. Once satisfied with their work the user can add it to their Terminal so they can see fun art when working with the command line.

How we built it

ASCII Art Canvas is a Flask app with Bootstrap. The logic is handled with a combination of Python and Javascript. The app is hosted on Heroku, and uses the web server Gunicorn.

Challenges we ran into

It was a challenge to get the grid to render properly, and to get the grid contents to copy to the clipboard. We're glad we finally figured it out!

Accomplishments that we're proud of

We're proud that our app not only helps people create ASCII Art, but that it does it in a way that is drastically different than other types of ASCII Art generators available. We're proud that our project acts more like a canvas than a generator, and we're excited to have fun with the canvas and create ASCII art!

What we learned

We learned how to use Javascript, and while during our initial research we learned more about ASCII art and its history alongside the development of computers.

What's next for ASCII Art Canvas

In the future we'd like to add a feature that allows users to submit their work to us so that we can display it on the site. It'd be great to have a gallery of examples for people to use as inspiration!

Share this project: