The Scroll Art Museum

Scroll art lets beginner programmers turn loops and print() into animated ASCII art.

Create

Writing scroll art programs only requires cursory amounts of programming knowledge. The inspiration for new scroll art programs comes from understanding the space and limitations that your program's output lives in. The programs in this article are written in Python. If you'd like an introduction to programming for complete beginners, I recommend reading my book, Automate the Boring Stuff with Python which is freely available under a Creative Commons license.

On April 20, 2024 I gave a talk on scroll art at the PyTexas Conference in Austin:

If you have questions or comments, email al@inventwithpython.com.

Design Tips

This website is under development, but here's some tips for your scroll art programs:

Where to Look for Inspiration

 _____ ___ ____ _      _   
|  ___|_ _/ ___| | ___| |_ 
| |_   | | |  _| |/ _ \ __|
|  _|  | | |_| | |  __/ |_ 
|_|   |___\____|_|\___|\__|

JSFiddle Template

Here is a template preloaded with the BextJS code so that you can create your own scroll art in the browser with the JSFiddle.net JavaScript sandbox:

BextJS Template: https://jsfiddle.net/asweigart/5skyrhc1/

BextJS provides a print() function to print strings to the <textarea> element and a sleep() function to pause for a certain number of milliseconds. Note thtat you must put the await keyword in front of every sleep() function call.

On the JSFiddle site, scroll down the HTML area until you find the // !!!! INSERT YOUR SCROLL ART PROGRAM CODE BELOW !!!! comment and place your JavaScript code there. The above BextJS template currently preloaded with some short "Hello, world!" code. You can replace this with your own scroll art code experiments and not have to worry about getting a programming environment set up on your computer.

All of the scroll art featured on this website have a "JavaScript source code in JSFiddle" link to JSFiddle preloaded with their code, so you can make experiment with changes and view the results in the browser.