About
This is an experiment in visualising James Joyce's Ulysses as a scluptural object and as a palimpsetic text.
Prompted by the intertextual and layered construct of Joyce's writing, the fluid manner in which meaning is created, this experiment created an interface that lifted the text off the page and into a space that the user could freely navigate.
Stately, Plump
One Moment
Technical Description
The project was coded in the Processing language and used peasycam to allow the user to fly around the generated text. Videos captured in OBS.
ulysses.pde
let cam;
let myText = [];
let textcounter = 0;
let wordsperline = 13;
let linesperpage = 40;
let pages = 450;
let linegap = 6;
let pagegap = 100;
let movetoend = 0;
let newcharwidth = 0;
let font;
function preload() {
font = loadFont('Serif-48.vlw');
myText = loadStrings('ulysses.txt');
}
function setup() {
let canvas = createCanvas(640, 960, WEBGL);
canvas.parent('processing-canvas');
cam = new PeasyCam(this, 80, 100, 50, 50);
cam.setMinimumDistance(0);
cam.setMaximumDistance(200000);
}
function draw() {
background(255);
textFont(font, 4);
textAlign(LEFT);
fill(0);
lights();
let textcounter = 0;
for (let pagecount = 0; pagecount <= pages; pagecount++) {
push();
translate(0, 0, pagecount * pagegap);
for (let linecount = 0; linecount <= linesperpage; linecount++) {
push();
translate(0, linecount * linegap, 0);
movetoend = 0;
newcharwidth = 0;
for (let wordcount = 0; wordcount <= wordsperline; wordcount++) {
let currentChar = myText[textcounter % myText.length];
newcharwidth = textWidth(currentChar);
text(myText[textcounter % myText.length], movetoend, 10);
textcounter++;
movetoend += newcharwidth + 2;
}
pop();
}
pop();
}
}