Through Twitter, I saw a tweet from a teacher named Golan Levin about an assignment he gave his students in his “Electronic Media Studio 2″ class. In it he asked them to draw a Sol Lewitt wall drawing using pencil and paper. You can Google Sol Lewitt—I didn’t know much about him though I should have. He’s pretty interesting.
Sidenote: Golan Levin, I later learned teaches at CMU and is a professor in the art department and head of The Frank-Ratchye STUDIO for Creative Inquiry. I got to see a lecture by him last week. So small world!
The instructions for Lewitt’s wall drawing are a single paragraph of geometrical tasks. The instructions are a lot of midpoints based on various combinations of natural landmark points from around the borders (upper left corner, middle of the top, etc.). Those midpoints are combined and recombined. As the directions progress, a few intersections and some different language for the same tasks is introduced. The “apex” of the piece is finding a point equidistant from three points instead of the usual one-dimensional midpoint task.
I immediately thought, “I can do this in Javascript.” And so I set to using D3.js to create the lines and points in an SVG object. A few neat things happened along the way as I was working through the problem. First, though the directions are easy enough for any sophomore student who is taking geometry, they’re a real pain when dealing with a two-dimensional, algebraic coordinate system. I had to pull out pen and paper to abstractly solve line intersections and midpoints. I had to figure out how to deal with vertical and horizontal lines that had slopes of 0 and infinity. These are things I haven’t thought about since freshman year in high school. Second, I realized that Lewitt’s directions do have a narrative structure to them. Like I mentioned above, the instructions start simple, they lead you in. Then they introduce additional tasks and challenges.
You can see my results at the top of this post. Below is a snippet of the script. I removed all the algebra calculations into obviously named functions so that Lewitt’s directions could shine through.
And finally Lewitt’s original:
Some images from this post were already missing from the server when it was archived in 2014.