DrawBot is a powerful, free application for MacOSX that invites you to write simple Python scripts to generate two-dimensional graphics.” drawbot.com
In Spring 2020, I took Ben Kiel’s Programming Design class and finally explored the intersections of coding and design. I’m a Computer Science minor, and since taking CSE 131 (Intro to CS), I’ve been linking for ways to make fun stuff with code. I’ve found DrawBot to be the perfect tool, and have since used it to supplement my work and make fun side projects. This is one of them.
Something I love about programming is the random function. This is used in games (you’ll often hear the term RNG, random number generated) to introduce unpredictability. It’s called Math.random() in Java and random() in Python, and it’s so, so useful for visual exploration. When I first started using DrawBot, I experimented a lot with placing text (and images) on random parts of the canvas using random(). It’s fascinating to see where things end up! Some placements seem too good to be true.
Another cool thing about DrawBot is that it lets you save your canvas in lots of file formats, including PDF and SVG so you can edit each element later on. In other words, I can treat DrawBot as a stepping stone. No matter what it produces, I can leave it be or I can tweak it. I used DrawBot to quickly generate compositions with random shapes for a different project. I then lightly edited the images in Illustrator.
Continuing that experimentation, I used song lyrics as the input. As a Writing minor, I study mainly nonfiction and poetry (I know). But the cool thing about words is that they mean different things in different contexts. In different contexts, they are transformed. Putting lyrics through DrawBot not only transforms their meaning but visualizes them. Mitski’s “Pink in the Night” lyrics hit different when randomly placed.
Repeated lyrics like “I hear my heart breaking tonight,” “I could stare at your back all day,” “I love you,” “try again,” and “and again,” form over and over in different ways.
The code uses methods inside methods. lyrics(line) randomly places line somewhere on the canvas. canitryagain2() then applies lyrics() to the lines “can i,” “try again,” and “and again.” 

def lyrics(line):
    fill(0.9, random(), random(), 0.9)
    text(line, (random()*1000, random()*1000))
def canitryagain2():
    lyrics("can i")
    lyrics("try again")
    lyrics("try again")
    lyrics("try again")
    lyrics("and again")
    lyrics("and again")
    lyrics("and again")
    lyrics("and again")
    lyrics("and again")
    lyrics("and again")
All of the images for this project are unedited (so far).
In the near future, I’d love to make postcards out of these and sell them on Etsy. Interested? Email me!
You can see more of my DrawBot work at the links below.
DrawBot made by Just van RossumErik van BloklandFrederik Berlaen​​​​​​​
Lyrics written by Mitski
IBM Plex Mono designed by Mike Abbink, IBM BX&D, in collaboration with Bold Monday. I love that a monospace typeface has so many weights. I’ve developed a deep appreciation not only for Plex’s letterforms but also that IBM very intentionally made Plex open source! Do I use IBM Plex Mono too much? Let me know in an email!

Want to see more?

January 2020
A personal comic about long walks home and places you can never go back to
Illustration, Comic, Wacom Intuos, Clip Studio Paint, InDesign / Spring 2022
Motion and Animation
3D modeling, video editing, and my obsession with making images move
Maya, After Effects, Photoshop, Clip Studio Paint / 2019 to present
Hypothetical typographic monogram & business card for Edward Snowden
Logo Design, Branding, Content Strategy, Illustrator / Fall 2019
A modular and dynamic typeface inspired by The Matrix (1999, dir Lily and Lana Wachowski)
Website, HTML, CSS, JavaScript, Figma, Glitch / Fall 2020
Birthday Zoomers
Celebrating birthdays in the pandemic using machine learning with audio
HTML, CSS, p5.js, Google’s Teachable Machine, Zoom / Spring 2020
Sketchbook and Studies
Selection of observational studies and sketches from my foundation year and beyond
Pencil, ink, cardboard, pastel, acrylic, oil / 2017 to present
Out and Open
A layered book applying metaphors of concealment to Alison Bechdel’s “Fun Home”
Book Binding, Layout Design, Book Design, InDesign / Fall 2020
DrawBot Explorations
Experimental coding in Python made visual with DrawBot
Creative coding, DrawBot, Python / Spring 2020 to present
My take on people, places, and food with a focus on narrative, color, and shapes
Clip Studio Paint, Paint Tool SAI, Photoshop, Wacom Tablet / 2017 to present
SQSH Background Generator
An easy-to-use programmed background generator for SQSH PR materials
Creative coding, responsive layout, Python, DrawBot / Spring 2020
Back to Top