More selected projects

Worm Box

A projection mapping project based on earthworms made using openFrameworks and ofxPiMapper.

Made by: Alexander MacKinnon


Instead of trying to create a beautiful creative coding piece, I wanted to create a piece that played with imagery that references the grotesque, while still being playful. in Worm Box I attempt to create and animate cartoon worms which crawl and writhe around the boxes which the projections were mapped onto. In some scenes the worms form recognisable imagery such as playful faces, as well as swirling pattern formations, and in the final scene multiple worms crawl around the mud on their own accord based on a random walk.

Concept and background research

In Brigid Cherry's Horror (2009), Cherry explores the paradox of finding pleaseure in the representation of the disturbing, displeasurable themes in the Horror genre. Cherry discusses the importance of Horror culturally; Horror is present in all historical forms of storytelling, and tropes of the genre are referenced in various current forms media, even in children's cartoons, such as the Scooby Doo series and the Addams Family. The representation of horror tropes in cartoons was a big inspiration for this project. Cherry points out that as well as emotional, there is a great emphasis on physiological responses that the genre attempts to induce - increased heartrate, goosebumps, nausea and disgust. This inspired me to create work which references grotesque and repulsive imagery in a way that is still playful. I decided to base the project on earthworms writhing in mud, an image which I believe many people feel repulsed by, however I wanted to represent them in a cartoon style.

I wanted to imitate a sense of agency in the worms, so I based their movement on a random walk - a path formed by a succession of randomised steps.

Image of earthworms from the Guardian (2020)

Random Walk in 2 dimensions - Purpy Pupple (2011)



In this project I created the worms by stringing together worm "cells", which were just cartoon style shiny pink balls which I drew in a worm cell function. The position and sizes of the cells were calculated using various functions then called to be drawn.

A main focus I had was trying to resemble something organic with the movement and visuals, so to do that I used combinations of sine functions mixed with noise and randomness to control various features of the worms such as the size, position and wriggling movements.

The final scene features many worms which crawl around on mud. Each worm's movement is a random walk, based on Theo's "Dumb Agents" class assignment. The worms origin positions are instantiated randomly and the worm cell size is affected by noise to give the worms a pulsating effect.

Future development

To further develop this project, I would like to implement user input and have the worms react to the user. I also would like to develop a way for the worms to react to eachother. Currently, the random walk worms cross over eachother as if the other is not there when they meet paths. I would like to develop a way for them to interact, maybe simply bouncing off eachother, or stopping momentarily before moving in another direction.

Self evaluation

I think the final scene with the random walk worms came out well, and did what I intended. I think I could have improved the scenes in which the worms form faces. I would have liked to have more complex expressions in the animations, however I struggled to do this through code. Another thing that I attempted but was unable to do was create scenes with grids of swirling patterns. This may have been due to having to many for statements within for statements, but I ended up with lots of errors which I was unable to resolve. If I had more time to fix this, I would have created a class for the swirl and then called the draw function of the class in a nested for loop.


Brigid Cherry, Horror (2009)

Purpy Pupple, Random Walk in 2 Dimensions (2011)

Theo's lab assignments

Sounds used in video: