Categories
Art Generative Art Pen plotting

Useful things to know when using a pen plotter

Pen plotting is a fantastic way to create unique artworks and designs. There are a lot of things to find out and get the hang of, this guide should help. I am using an Axidraw pen plotter, but most advice should be useful for other plotters too.

This was originally planned as a handout after a workshop for pen plotting I wanted to give. It didn’t happen, so maybe other people can learn from it.

People who just got a pen plotter and started to play around, will probably find this most useful.

Checklist before starting a plot

  • Open and check SVG file:
    • Is the correct format set (e.g. A4, landscape)?
    • Are the correct colors enabled/disabled?
    • Check settings (speed, pen height,etc.)
  • Check work area:
    • Is the correct pen inserted and secured?
    • Is the paper flat and nothing hidden under it?
    • Is the paper well fixed?
    • Is there nothing in the way of the plotter arm?
  • Start printing. Ideally, wait until the first lines are drawn to make sure you didn’t miss something.

Things to know when working with a pen-plotter (AxiDraw)

  • The servo motor lifts and lowers the pen, but it does not press onto the paper (use a weight when more pressure is needed)
  • The pen-plotter draws lines, it can’t fill areas like the bucket in paint (use hatching instead).
  • A running plot can only be interrupted with the button on the plotter. You can continue in Inkscape under “Axi Draw Control” → Resume.
  • It is worth making a small test print before starting a 8h plot when trying something new.
  • Servos wear out, it is worth having a reserve, especially when you do plots that take a long time (there is now a new version, which is quieter and lives longer)

Possible problems when plotting

  • Paper is not properly aligned with Plotter. (Draw lines on the surface under the Plotter for orientation)
  • Plotter / Paper / Surface is moving due to the movement of the pen-plotter.
  • Paper roughens up / gets holes from many pen strokes (use stronger paper, different pen, optimize file to reduce repeating lines)
  • When using multiple pens, pay attention to pen diameters (the tips might not have the same position, which might lead to misalignment)
  • Computer goes into sleep mode during print (change the settings on your computer to a longer time)
  • Surface not evenly flat → strokes don’t have the same thickness / darkness
  • Certain pens may need additional weight to draw evenly
  • Different colors can bleed into each other, depending on pen, color sequence matters
Here I used different kinds of pen, which lead to them not properly aligning. Also, I draw the black grid first, which then mixed into the lighter areas.

Pen Selection

  • Pens with hard tips work best, as they don’t wear down and move evenly.
  • Fiber tips (such as Stabilos) wear down depending on the surface.
  • Certain pens will fade over time. (to avoid use pen that are sun proof )
  • With certain pens, the plot speed makes a difference to the result (slow movement, more ink can flow from the pen)
  • For initial CYMK plots (Cyan, Yellow, Magenta), Stabilos are practical for learning and easily available
  • Lead and color pencils are very difficult to use as they require more pressure and wear down fast
  • Two passes when printing can lead to better results (for example, with less reliable pens)
While this is one of my favourites, it’s also an example of a bad pen. The pen did draw quite unreliable. This was lucky in this case, because it gave the whole image texture and a depth it just wouldn’t have otherwise.

Paper selection

  • Generally, all paper works. Cheap paper sometimes looks cheap.
  • Cheap paper tends to tear more easily with multiple passes trough one point.
  • Flatter paper is more reliable with all pens (like printer paper)
  • More expensive paper has a nicer texture, but tends to wear out certain pens more quickly.
  • It doesn’t need to be paper, experiment around, why not try glass, wood or something else (but maybe test first on paper)
  • Printing on fabric is possible, but not easy; it is important to keep the fabric taut for even printing. Detail is limited.
Plot on a Shirt. Original SVG was in a proper circle, it is difficult to put tension on the shirt equally. Choose flexible, log details designs.

How to work with Inkscape (AxiDraw)

  • Through the AxiDraw plugin, the Inkscape becomes an interface for controlling the pen plotter. To start printing in the menu: Extension → Axidraw Control → Apply.
  • Only the lines and groups that are currently visible will be printed (important for using different pens).
  • Optimizing line order leads to faster prints (then pen moves to a close line): Axidraw Utilities → Plot Optimization. Can be activated by default.

Axidraw plugin functions for Inkscape

  • Hershey Text. Better letters for plots. If you use normal fonts, it just draws the outline of the letters (which sometimes works well enough). With Hershey-text, letters are drawn with only one line (not the outline of the letters).
  • Hatching: Plot can only draw lines, not surfaces, but with hatching, you can fill surfaces with lines.
  • Plot Duration Estimation: Axidraw Control → Options → Preview → Enable offline Preview mode → Start normal printing

Useful links and resources

Categories
Art Fun Generative Art R

I created a shiny app for R. It generates colourful circles

I tried making a shiny app about 2 years ago, but I never really got it online for some reason. But after talking to a friend I tried again and it was surprisingly easy! Maybe I just got a lot better using R or the server infrastructure got a lot easier to use.

Anyway here you can play around with it.

I still could improve a few things UI-vice and maybe add more options. But honestly for a prove of concept it is good enough and I am quite happy how well it works. And I really like the results.

Categories
Art Fun Generative Art Glitch Art

Beyond Charts: Creating Glitch Aesthetics with R

This newest project doesn’t have much to do with data visualization, but I use R for it. I am into Glitch Art  quite some time already. So far, I  used apps or plugins to create my own. BUT this will change now.

I was interested if I could write anything like this on my own. R is probably far from the  optimal tool to work on images, but it is the only programming language I really know, so it must do. The blog Fronkostin did something with images in R recently and inspired me to try it too.

Here is my first try: I basically, selected a random square of the image and randomly shuffled to color channels around (RGB) or inverted them. And then I repeated the progress between 10 and 80 times. It is quite basic, but I love the look of it. And I just love that I can churn them out automatically, randomly creating an infinite amount of variants.  The whole thing is quite slow and is basically unusable with bigger images, but it is a start.

Code

library(imager)
library(tidyverse)

setwd("path")

#convert image to dataframe. Add additional colorchannels, which will be changed.
img=as.data.frame(image,wide="c")%>%rename(red1=c.1,green1=c.2,blue1=c.3)%>%
mutate(red=red1, blue=blue1, green=green1)

 #this function randomly changes colorchannels of random squares. also uses negative of the colorchannel


colorswitches = function(data,negative=T){

#create cordinates for squares. choose randomly two points on the x and y axis. 
liney=sample(1:max(data$y),2)%>%sort()
linex=sample(1:max(data$x),2)%>%sort()

#there are 6 color variables. three of them are the originals. three of them are the ones who are changed
#variable which defines where color is picked from. chooses from orignal and changable variables. it is important that it also picks from original from time to time. because else at one point all becomes grey.
fromcolor=sample(3:8,1)
#randomly selects one of 3 changable variables
tocolor=sample(6:8,1)

#add 1 to 6 chance the negative of the color is used.
minuscolor=ifelse (sample(1:6,1)==1,T,F)

#this is just that the for counter doesn't has to start at one. small speedup
startbla=max(data$x)*(liney[1]-2)
startbla=ifelse(startbla<1,1,startbla)

for(i in startbla:nrow(data)){

#check if x and y is inside the defined square
if (data$y[i] > liney[1]){
if(data$x[i]<linex[2] & data$x[i]>linex[1]){

#two version of changing the color value of the selected channel. one negative on normal. 
if(minuscolor==T &negative==T) data[i,tocolor]=1-data[i,fromcolor]
else data[i,tocolor]=data[i,fromcolor]
}
}
#if y bigger then selected square, stop loop
if(data$y[i]>liney[2]){
break 
}
}
data
}


#repeating the colorsquare function
for(i in 1:50){
img=colorswitches(img)
}


#create proper RGB code from the three color channels
img=img%>% mutate(rgb=rgb(red,green,blue))

#display it with ggplot.
p<- ggplot(img,aes(x,y))+geom_raster(aes(fill=rgb))+scale_fill_identity()+
scale_y_reverse()+
theme_void()
p