More selected projects

Concentric Circles

My generative visualisation consists of a series of colourful ellipses that phase in and out of each other. To hold the viewer’s attention, the piece varies by the outer ring distorting and the background inverting every minute. Occasionally there are also small glitches of yellow static and after two minutes the inner circle pseudo randomly strobes colour.

produced by: Chris Speed


 ‘Concentric Circles’ was a generative artwork I have wanted to make for a while, as it borrows visual ideas from the artists who inspired me to make motion graphics. During the process of writing the code, I found some alternative influences that also impacted my creative decisions.

Concept and background research

I came up with the concept after watching my undergraduate tutor’s VJ set for Jon Hopkins at Glastonbury Festival 2015[1]. During the performance of the unreleased track ‘Halo’ [2] he used video synthesis and VDMX to generate these circular patterns that pulsate with the beat. For one of my first solo generative pieces I decided that I wanted to replicate something similar due to its simplicity to execute but effectiveness within a performance scenario.  With the work I am also referencing early graphical artists such as Norman Mclaren [3].

When it came to writing code, I decided to predominately use the ofRandom function since I found it produced the best outcome compared to the more organic slow moving nature of Perlin Noise. I wanted the sketch to surprise me with its results and mimic the chance based processes of composers like John Cage.[4] As an artist I have become obsessed with creating digital art that become an autonomous system in which you could almost view it from a Taoist perspective on natural chaos. [5]


All of the elements were created using Open Frameworks but my starting point was from a Processing Sketch. Within the Open Processing website, I found a sketch by Abdulaziz Ghuloum entitled ‘circles with random colors’ which I ported to C++ then changed the source code to that fit my idea and build hue changing ellipses [6]. I then wrote a function to make three centred circles phase in scale and randomly change line width. For my class I chose to use for loops, if statements and the noise/sin functions as these commands achieved my desired algorithmic results.

The hardest challenges I faced were from integrating the application into ofxPiMapper. First of all, the quad surface only rendered half of my FBO source which, eventually, I discovered was due to the 600-400 resolution being halved. I found the getMillis function hard to initially understand but after a few days of practice I began to make progress. Then, on the day of the installation, I started having problems with my for loop for some unknown reason.

My group’s projection geometry consisted of abstract squares and circles which the latest update of ofxPiMapper can map onto.  However, the whole class had to use an older version so we changed our surfaces to solely squares for the pop up. Nevertheless, I tried out the newest update but found the results unsatisfactory anyway.

Future development

To improve my work, I experimented with the slit scan technique and tried to emulate a video synthesizer [7] but both attempts were unsuccessful. Next time around, I would like to incorporate these techniques as I feel they are a natural extension of this project and would add much production value. In future I also hope to spend a considerable amount of time debugging my code in preparation for exhibition. Hopefully, this would aid in avoiding any problems on the day.

Self Evaluation

Overall I feel that I achieved the generative visual I wanted despite my limited coding experience. However, it could be seen as a framework to reverse engineer more complicated video techniques which may produce results like this one day [8].

  1. Dan Tombs, [Accessed December 2017],
  2. Youtube, 2016, [Accessed December 2017],
  3.  Vimeo, 2011, [Accessed December 2017],
  4. Experimental Music Studios Illinois, [Accessed December 2017],
  5. Toropov & Hansen, B & C. ed., (2002). Chapter 12: Trust in Nature as an Organic Pattern. The Complete Idiot's Guide to Taoism. Available at: [Accessed December 2017].
  6. Open Processing, Abdulaziz Ghuloum 2017, [Accessed December 2017],
  7. Perevalov, D. ed., (2013). Chapter 5: Video Synthesiser Example. Mastering openFrameworks - Creative Coding Demystified. Available at: [Accessed December 2017].
  8. Youtube, 2016, [Accessed December 2017],
  • gallery-image
  • gallery-image
  • gallery-image
  • gallery-image
  • gallery-image