December 12, 2018No Comments

Ghosts and Words

running example of Ghosts and words: pac-mans represented by yellow number eats food, or encounter ghost names and die

Ghost and words is a continuation from Evolutionary Pac-Man. It uses the same strategy of breaking down words (in this case, using paragraphs from Wikipedia's Pac-Man page) as "food", and also having "poison" or "ghost" that can kill the pac-mans.

Didn't know those ghosts have names...

The initial idea was simple - I wanted the words to act and animate as vectors. It also seemed interesting to use the correlation between actual meanings of words through such method like Word2vec, but I got stuck and spent too much time on other parts and didn't really get to that level.

Evolutionary Pac-Man was revisited because it was already using one unique way of converting text into many vector points. The renewed version more specifically focuses on typographic aspects, by turning (almost) every element into text.

In this game, texts do many things. They get eaten, run away or run towards, or sometimes get killed or starve to death.


The "ghosts" and "food" were initially built as classes:

class Ghost {
    this.x = x;
    this.y = y;
    this.type = ["BLINKY","PINKY","INKY","CLYDE"];
    this.color = ["red", "pink", "cyan", "orange"]; = int(random(4))

    textAlign(CENTER, CENTER);
    text(this.type[], this.x + random(3), this.y + random(3));

However, as I start inserting pac-man object, I realized in order to use p5.Vector functions such as p5.Vector.dist, I had to keep them as p5 Vectors:

    for (let i = list.length - 1; i >= 0; i--) {
      // Calculate distance
      let d = p5.Vector.dist(list[i], this.position);
      // If it's within perception radius and closer than pervious
      if (d < this.dna[2 + index] && d < closestD) {
        closestD = d;
        // Save it
        closest = list[i];

So at this point, it's ran with four different arrays of ghost, which I think is bit redundant and I would like to make it simpler in the future.

December 5, 2018No Comments

Doge Interactive Type

Doge meme style generator with ML5 PoseNet

Example of

Week 5: Doge style generator using ML5 PoseNet. This is not the best practice to use PoseNet, because a similar effect can be done through random(width), random(height) - not necessarily involving the person's pose. Yet it still makes a difference in a sense that it won't generate any text if it doesn't detect a person inside video. What can possibly done to use pose vertex with text in more apparent way..?

December 5, 2018No Comments

Fonts as Data

Type animation reacting to pitch of sound input

Week 4 assignment based on Drawing ttf with p5js commands + ML5 PitchDetection examples. It's always intriguing to see type itself reacting to sound, but it also makes me question what is the most natural/fitting typographic form to another data, such as: if the current transition of moving left to right goes along with concept of "pitch".

October 31, 2018No Comments

Hidden Symbols & Networked Poems

The Upright Script: Words in Space and on the Page

  • Ara Shirinyan’s Your Country is Great: Afghanistan–Guyana (New York: Futurepoem, 2008)
    • "knowledge and love of Afghanistan is great even as he regrets the limits of his understanding"
    • This emptiness is clearest in the poems “Burkina Faso is Great,” “Central African Republic is Great,” and “Equatorial Guinea is Great,” each of which contains only a title on a blank page. As Shirinyan notes in his preface, “no one who could write in English and had access to the web thought to say anything great about those countries” in September 2006 when he conducted his searches.
  • Index for X and the Origin of Fires
    • The images continue to refresh, each remaining on screen just long enough to catch the reader’s eye before disappearing, while the text remains onscreen until the next click of the mouse.

Code hidden in Stone Age art may be the root of human writing

World map of

  • Between 2013 and 2014, von Petzinger visited 52 caves in France, Spain, Italy and Portugal.
    • The symbols she found ranged from dots, lines, triangles, squares and zigzags to more complex forms like ladder shapes, hand stencils, something called a tectiform that looks a bit like a post with a roof, and feather shapes called penniforms.
    • In some places, the signs were part of bigger paintings.
  • “Consistent doodles”
    • "The ability of humans to produce a system of signs..."