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.
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
// 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 r = thisComp.layer("controls").effect("Radius")("Slider") * Math.PI * 2; // conical spiral equation x = r * Math.cos(phase); x += posInc * myIndex y = r * Math.sin(phase); y += posInc * 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.
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;