Project description

The project is another attempt and study of visual music and as well my pursuit of my own artistic expression. Highly inspired by the repetition and recursion of live-action footage in Kevin McGloughlin’ Suite After the Furies, this animation employ similar techniques in visualizing the Arrival of the Birds by Cinematic Orchestra to create a cosmic and diaphanous symphony of forms.

Art Direction

Keywords: ethereal, amorphous, repetition, recursion, sublime, cosmic, cinematic, celestiaL



The production of this project uses ‘database editing’ approach in which I first produce a series of abstract animations using mixture of my own photography and stock footage from Premium Beat— through custom After Effects expression setups and TouchDesigner — which are later used as footage for the editing process.

Step repetition in After Effects

The AE step repetition rig was built using Javascript expressions that multiply the layer’s index number by value from Expression Controls in the control null layer (see code below). The black was keyed out setting the blending mode to Screen or Linear Dodge, and color grading was done using curves, and glow was occasionally added to stylize the shot.

					// Step rep: calculate interval based on absolute index
myIndex = index-thisComp.layer("controls").index-1
phaseInc = thisComp.layer("controls").effect("Phase increment")("Slider");
offset = myIndex * phaseInc

// setup
phase = degreesToRadians(thisComp.layer("controls").effect("Phase")("Slider") + offset)
posInc = thisComp.layer("controls").effect("3D Point Control")("3D Point");
zInc = posInc[2]
r = thisComp.layer("controls").effect("Radius")("Slider") * Math.PI * 2;

// conical spiral equation 
x = r * Math.cos(phase);
x += posInc[0] * myIndex
y = r * Math.sin(phase);
y += posInc[1] * myIndex
z = zInc * myIndex;

[x, y, z] + value

Step repetition in TouchDesigner

ToucherDesigner was also use to replicate the same process as I did in After Effects by referencing Noto The Talking Ball tutorial on Light Trails. The primary advantage of this software was its realtime rendering and playback that allowed quick iterations of animation.

Atmospheric abstractions

In order to prevent things from being too uniform and expected, I designed another AE procedural animation system to create atmospheric animations through randomization the position, rotation, scale, and opacity of the source footage using expressions(see code below). Multiple variations were then created through the replacement of footage, changing the controls settings and seed value.

					let controls = thisComp.layer('controls');
let randPos = controls.effect("randomPosRange")("3D Point");
let seed = controls.effect("seed")("Slider");
let bool = controls.effect("randomPosRange").active;
let t = thisComp.layer("controls").transform.position
seedRandom(seed, true)

// logic 
rand = random(-randPos, randPos);
if (bool == true) t + rand;
else value;