~/ me art writing

Lines Walking

“Lines Walking” is a “long-form” generative series of 44 pieces made for the pen-plotter. The project is published on Plottables, and all editions were minted on February 9th, 2022.

Each edition of 44 is generated from a single piece of computer code, and is tokenized for ownership. In addition, each edition will be plotted once , and will be made available to its owner for the price of shipping.

Once all editions are plotted, each “Lines Walking” has a physical and digital instantiation; I strongly encourage owners to keep these together as they are separate representations of the same piece. Owners are welcome to sell their digital token without claiming the physical plot. The new owner can claim it instead once the plot is available.

This piece is a study of the interaction of simple rules, relying heavily on repetition to highlight how complex and subtle these interactions become.

A plot of testnet mint #0

high-res · ropsten

All Outputs are Plotted

Over the past few years while creating plotter artwork, I’ve grown to really appreciate the physicality of the plotter’s output. There is something magical about the way the plotter translates computer instructions into a real-world image. The same can’t be said when using an LCD screen or inkjet printer for example, even if these devices are also “just” translating computer instructions into an image.

Plotting a piece in watercolor adds another level to this magic. The ultra-high precision of the plotter is a strange but wonderful complement to the unpredictability of watercolor paint. When done right, the output sits at a surreal intersection between human and machine.

As a result, each edition of “Lines Walking” will be plotted and given to the owner for the price of shipping. However, the plots won’t be available immediately after minting; it can take hours to complete just a single color, and if any mistakes occur, the plot needs to be restarted from scratch. To accomodate this, plots will be made available one-by-one on a fixed schedule.


Very slow... But the best way to get consistent brush strokes #plottertwitter #watercolor pic.twitter.com/XyfM7hEOGo

— Lars Wander (@larswander) January 30, 2022

What’s Being Drawn

One thing I love about generative art is its ability to draw attention to the beautiful complexity that can emerge from the right set of simple rules. The fact that this emergent complexity exists is no longer a surprise these days. However, where this complexity exists, and how it is expressed can be wonderful to discover.

It’s by no means necessary to understand what the code is doing in a generative artwork to appreciate it, but I strongly believe that even having only a high-level understanding of the code behind a piece of art enhances it.

The core idea behind “Lines Walking” is as follows: Lines advance on a hexagonal grid, traveling from one neighboring cell to the next. If they reach a cell on the grid that’s already occupied, they change direction using a programmed rule to find their next cell. If all of their options are exhausted, or they’ve traveled a predefined number of steps, they stop advancing.

To make that a little clearer, let’s use some diagrams:


Here is a 4x4 grid of hexagonal cells. Each cell is adjacent to 6 others in the grid. The cells on the top, left, right, and bottom boundaries of the grid "wrap" around and are adjacent with the cells on the opposite side.

There is a arrow pointing in the direction of our first line in green, and a circle denoting the starting point. Let's advance it a few steps to see where it ends up.
After 1 step the line has traveled to its immediate neighbor. The Rule feature controls how a line changes direction from one step to the next. For this example, the green line is following Rule: A, meaning it will continue in the same direction until it reaches an obstacle. Rule and other features are explained in more detail below.
After 2 steps, the line arrives at the edge of the grid. Instead of treating the edge as a boundary, we "wrap" around to the corresponding cell on the opposite side.
The line has wrapped around to the left-hand side of the grid and continues in the same direction. This also has an impact on the plotting: for this algorithm, the plotter will only refill paint at the start of a line. If a line is broken into many segments like in this example, paint will only be applied before the first segment is drawn.

To make things more interesting, let's see what happens when multiple lines advance on the same grid.

The majority of the diversity in output from this program stems from the choice of starting coordinates and directions. Let’s see what happens when we start with just 2 lines.


Using the same 4x4 hexagonal grid, let's add a second line in pink in the path of our existing green line. If both lines just go straight, there will be a collision.

The Rule feature controls how lines respond to occupied cells. The Rule: A trait requires a line to advance in one direction until the next cell in front of it is occupied. At that point, the line "turns left" until it either finds an unoccupied neighboring cell, or it is finished advancing.

Let's see what happens using these rules.
The green line has turned left and continues in its new direction. Both lines are going to wrap around the grid before having to turn again. Let's skip ahead to see where they wind up after a few more steps.
After seven steps both lines are stuck. It just so happens that every cell was visited in the process. To render the image in the style of "Lines Walking", let's remove the hexagonal grid and arrowheads, and apply curves to the sharp corners.
This is the completed image. Using just 16 cells and 2 lines, an appealing pattern emerges. "Lines Walking" uses a 96x120 grid of hexagons, and 100s of lines initialized according to a regular pattern to explore these patterns at scale.


To see how this works with hundreds of lines, I’ve animated the process for a few test mints:









Why Hexagons?

“Lines Walking” started in the early Winter of 2021 on a square grid with borders around the edges. I really liked the aesthetic of the square grid, but quickly discovered that having the edges “wrap” around produced much more interesting results, as it breaks up a single line into many segments that trace one another around the page.

The square grid was wonderful for drawing abstract forms with very long lines and pronounced curves. The plots I made with pen and a square grid are still some of my favorites:


Early "Lines Walking" on a square grid

Spring 2021 · high-res

However, I discovered that unlike on the square grid, placing the lines at regular intervals on a hexagonal grid resulted in intricate, nestled, and diverse patterns. The amount of variety in the images that came from only small tweaks in the program’s parameters was very exciting, and I spent many hours looking at its different outputs.

By the nature of the hexagonal grid, the figures drawn by the lines often look like they are rendered isometrically. This gives many of the outputs a strange, and slightly surreal feeling of perspective.


Early "Lines Walking" on a hexagonal grid

Spring 2021 · high-res

The density you can achieve by plotting with a fine-tipped pen is very appealing to me. However, with later experimentation, I found that this algorithm is far more interesting when visualized in watercolor. Not only does this provide a far wider range of colors to work with, but each stroke is given a gradient from dark to light in the direction the line’s travel. I personally love it when properties of a generative system are made visual like this.

Plotting in Watercolor

I’ve done a longer writeup on my watercolor plotting process. Here I’ll cover what’s unique to this project.

It’s important to me that the outputs of this program are all plotted, and don’t exist only as SVGs. This, coupled with the slow paint strokes of the plotter are why the edition count is so “low” compared to many other long-form generative pieces.


Watercolor lines that almost touch, so satisfying#plottertwitter #axidraw pic.twitter.com/1D9luZMSRt

— Lars Wander (@larswander) December 15, 2021

In order to help make these more easily reproducible, and not fret with large batches of pre-mixed paint, I limited myself to using the available Windsor & Newton tube paints. Finding color schemes that worked for this format took dozens and dozens of test prints.


A small sample of the test prints produced while iterating on the colors & algorithm.

I found that approximating colors in RGB space on a monitor was never a proper replacement for actually plotting them.

Use of Color

Each line is colored according to its starting direction. This means there are 6 possible colors to assign. I wound up using 3 base colors, each mixed to 2 levels of opacity. Lines that start in opposite directions use the same base color, mixed to different levels.

Coupling the starting direction and color is a very conscious choice to enforce the repetition across the canvas, as well as highlight where the repetition breaks down. You’ll find many similar lines drawn in a single color, and easily be able to pick out where they deviate from their pattern.

DIY

Despite offering a plot of each edition, I hope people try to plot these at home! This section is for those brave plotters who want to do it themselves.

There are two competing approaches to creating watercolor plots, and it stems from the need to load your brush with paint.

In the first approach, as long as you know where your paint wells are, you can embed brush stroke paths into the final plotter file (i.e. SVG) as the piece is rendered. This is what Licia He does, and you can see this in her PlotterFile in the “C” shapes were paint refills occur:

Made by Licia He, PlotterFiles

The alternative approach is to ignore the paint wells when the plot is generated, and instead determine when and how to load the brush at plot-time. This is the approach I chose, mainly for the flexibility as well as for how it fits into my current plotter workflow. As a result, only the paths used to draw the image are included in each “Lines Walking” SVG.

One upside to this approach is that you can just as easily plot this in pen, or even better, in marker. I don’t have any colored markers (beyond a few sharpies), so I would love it if someone could plot one of these for themselves in marker and share a picture (#lineswalking).

The downside is that if you do want to plot in watercolor, you will need to write some custom code. Here is a very high-level approach to get you started:

  1. Each layer (<g> tag) in the SVG has a class attribute corresponding to the Windsor & Newton paint used. As mentioned above, each paint is mixed to a “regular”, and “lighter” opacity. The “lighter” opacity is denoted with -faint in the layer’s class attribute.
  2. Before every <polyline> in each layer, insert a <circle> with its center (cx, cy) on the target paint tray if and only if the the <polyline> has class refill. This is important, as paint is only applied at the start of a line, even if it “wraps” around from one side of the hexagonal grid to the other.

As an example, I’ve highlighted where to insert refills in this fictional SVG:

<svg xmlns="http://www.w3.org/2000/svg ...>
  <g class="viridian" ...>
    <!-- insert a paint refill <circle> here -->
    <polyline class="refill" points="..."></polyline>
    <polyline class="no-refill" points="..."></polyline>
    <!-- ... and here -->
    <polyline class="refill" points="..."></polyline>
    ...
  </g>
  <g class="sap-green" ...>
    ...
  </g>
  <g class="rose" ...>
    ...
  </g>
  ...
</svg>

If you plot the resulting SVG, the plotter will make a “circle” in your paint tray before every line that requires a paint refill.

Features

Each “Lines Walking” piece is generated with 6 features: Rule, Color, Steps, Fullness, Curves, Breaks.

Logistics

For owners of “Lines Walking”.

Claiming a Plot

You can contact me via direct message on Twitter, or on the Plottables discord.

To claim a plot, you must be able to prove that you currently own the accompanying token (i.e. sign a message with the ETH wallet holding the NFT).

I recommend using https://app.mycrypto.com/sign-message or similar to sign a message stating how you’d like to receive your plot (e.g. “My shipping address is X”).

A plot can only be claimed once on or after the date it is made available according the schedule below.

Finally, you can receive the plot by picking it up in person (in Manhattan), or have it shipped. I will cover the cost of shipping to the lower 48 US states.

Plot Size & Details

Each plot is drawn on ARCHES 300g 9x12” Cold-Pressed Watercolor Paper, using Winsor & Newton Professional Watercolor paints.

The back is annotated with plot metadata using a rOtring Isograph pen and ink.

The frame I used in the topmost picture can be found here.

Schedule

A new plot is made available every 4 days, starting on 2022-04-04 (April 4th, 2022). (The plots were finished early, so I’m letting everyone claim their plots according to their own schedule).

All plots are available to claim starting Friday, April 15th 2022. If you sell your token before claiming a plot, you’ve given up the right to claim it.


#0 : Plottables · Open Sea · SVG · Claimed
#1 : Plottables · Open Sea · SVG · Claimed
#2 : Plottables · Open Sea · SVG · Claimed
#3 : Plottables · Open Sea · SVG · Claimed
#4 : Plottables · Open Sea · SVG · Claimed
#5 : Plottables · Open Sea · SVG · Claimed
#6 : Plottables · Open Sea · SVG · Claimed
#7 : Plottables · Open Sea · SVG · Claimed
#8 : Plottables · Open Sea · SVG · Claimed
#9 : Plottables · Open Sea · SVG · Claimed
#10 : Plottables · Open Sea · SVG · Not yet claimed
#11 : Plottables · Open Sea · SVG · Claimed
#12 : Plottables · Open Sea · SVG · Claimed
#13 : Plottables · Open Sea · SVG · Claimed
#14 : Plottables · Open Sea · SVG · Claimed
#15 : Plottables · Open Sea · SVG · Claimed
#16 : Plottables · Open Sea · SVG · Claimed
#17 : Plottables · Open Sea · SVG · Not yet claimed
#18 : Plottables · Open Sea · SVG · Claimed
#19 : Plottables · Open Sea · SVG · Claimed
#20 : Plottables · Open Sea · SVG · Claimed
#21 : Plottables · Open Sea · SVG · Claimed
#22 : Plottables · Open Sea · SVG · Claimed
#23 : Plottables · Open Sea · SVG · Not yet claimed
#24 : Plottables · Open Sea · SVG · Claimed
#25 : Plottables · Open Sea · SVG · Not yet claimed
#26 : Plottables · Open Sea · SVG · Claimed
#27 : Plottables · Open Sea · SVG · Claimed
#28 : Plottables · Open Sea · SVG · Not yet claimed
#29 : Plottables · Open Sea · SVG · Claimed
#30 : Plottables · Open Sea · SVG · Claimed
#31 : Plottables · Open Sea · SVG · Claimed
#32 : Plottables · Open Sea · SVG · Claimed
#33 : Plottables · Open Sea · SVG · Claimed
#34 : Plottables · Open Sea · SVG · Claimed
#35 : Plottables · Open Sea · SVG · Claimed
#36 : Plottables · Open Sea · SVG · Claimed
#37 : Plottables · Open Sea · SVG · Claimed
#38 : Plottables · Open Sea · SVG · Claimed
#39 : Plottables · Open Sea · SVG · Claimed
#40 : Plottables · Open Sea · SVG · Claimed
#41 : Plottables · Open Sea · SVG · Claimed
#42 : Plottables · Open Sea · SVG · Claimed
#43 : Plottables · Open Sea · SVG · Claimed