Gysin remembers
One finished poster moves through Collage and Plotter Export. The chapters return to choices already present in this sheet.
720 × 900 · one seed · two inks
canvas → layers → frames → field → red return → words → paper
Canvas style
Three JavaScript strings set the paper, black ink and red ink on screen. They do not create SVG layers or choose physical pens.
canvas first · export structure later
const PAPER = "#f0efe9";
const INK = "#151515";
const RED = "#c0392b";
function draw() {
background(PAPER); // canvas only
plot.draw();
}
Two export layers
On screen, stroke gives a mark its colour. In SVG, layer keeps paths together. At the plotter, penMap assigns the pens; their ink and width remain physical.
black layer → pen 1 · red layer → pen 2
- 1 black
- 2 red
const plot = new GysinPlot({
seed: 19600319,
width: 720,
height: 900,
style: { stroke: INK },
export: { layer: "black" }
});
const penMap = { black: 1, red: 2 };
plot.circle(256, 337, 450, {
stroke: RED,
layer: "red"
});
Hold the page
Three open rectangles hold the page before the words enter it. The first begins above the canvas; only fray and dropout depart from the defaults.
rect() · three unequal fields
plot.rect(80, -70, 544, 170, {
fray: 0.3,
dropout: 0.14
});
plot.rect(80, 90, 544, 260, {
fray: 0.3,
dropout: 0.14
});
plot.rect(80, 500, 544, 360, {
fray: 0.3,
dropout: 0.14
});
Rule the lower field
A loop rules the lower frame with twelve evenly spaced lines. They stay in the black layer and act as measure and rhythm, not ornament.
line() · twelve repetitions
for (let i = 1; i < 13; i += 1) {
const y = 570 + i * 12.3;
plot.line(82, y, 632, y, {
dropout: 0.21,
rubout: 0.189
});
}
Build the machine field
Six punctuation marks gather into one bounded field. symbols() repeats them as a clustered machine texture.
/ " ( ) - :
plot.symbols(70, 474, 580, 286, {
set: '/"()-:',
size: 20,
alpha: 0.58,
cluster: true,
dropout: 0.2175
});
The red return
A circle crosses the middle field three times. It is the first red gesture and leaves through pen 2; alpha softens only the preview.
red layer → pen 2
plot.circle(256, 337, 450, {
stroke: RED,
layer: "red",
repeat: 3,
rubout: 0.2,
alpha: 0.7
});
Four hand gestures
One asemic gesture returns four times along the lower edge. Only its horizontal position changes.
red layer → pen 2
for (let i = 0; i < 4; i += 1) {
plot.asemic(160 * i, 690, 150, 210, {
stroke: RED,
layer: "red",
breathe: 1.4
});
}
The typed voices
Seven short phrases remain readable while wear, bold and underline alter their delivery. Observe and REMEMBERS enter the red layer; every phrase remains visible in the complete composition.
underwood() · black and red
plot.underwood("Brion Gysin", 70, 88);
plot.underwood("Continue", 60, 260, {
bold: true
});
plot.underwood("the small voice.", 60, 190);
plot.underwood("REMEMBERS", 82, 360, {
size: 50,
stroke: RED,
layer: "red",
bold: true,
wear: 2.1,
strokeWeight: 1.4
});
Write three times
The same word appears three times: first calm, then breathing, finally marked by dropout and rubout. Each call states only what changes.
text() · readable first, disturbed last
plot.text("write", 60, 220, {
size: 64,
breathe: 0.4
});
plot.text("write", 60, 360, {
size: 64,
breathe: 1.4,
dropout: 0.08
});
plot.text("write", 60, 420, {
size: 64,
breathe: 2.2,
dropout: 0.2,
rubout: 0.2
});
Choose paper at export
page: "A4" chooses a physical export preset. A5, A4, A3 and A2 change the SVG paper, margin and fit without moving the 720 × 900 composition.
exact ISO dimensions · 10 mm margin · clipping · width fit
plot.downloadPlotterSVG("poster.svg", {
page: "A4",
penMap: { black: 1, red: 2 }
});
Take it to paper
Nothing new is drawn here. The same poster leaves the screen as two numbered pen layers; the pens themselves determine colour and width on paper.
Inkscape · layer 1 black · layer 2 red