Interactive piece created with code in Hydra (hydra.ojack.xyz). Move the mouse sideways to move the mirrors and change the refraction of colors.
Hydra is a toolkit for live coding of network visuals created by Olivia Jack (ojack.xyz)
/*
Deep Refraction
by Daniel Oropeza
Tw: @ferdoropeza
*/
EASE= 'easeInOutCubic'
A = window.innerHeight/window.innerWidth
solid()
.layer(
osc(320,0).pixelate())
.mult(voronoi(3,.125))
.layer(shape(300,.1).color(1,1,1).luma(.1).repeatY(5))
.layer(shape(2).color(1,0,0).hue(()=>mouse.x/1000).scale(1,1,.1).luma(.1))
.modulate(noise(500),.02)
.modulate(src(o0).hue(-.5).scrollX(-.5))
.modulateRotate(shape(2,.4,.2).rotate(Math.PI/2).repeatX(4).scrollX(0,()=>mouse.x/100000))
.modulateScale(shape(999,0.3).scale(1,A,1).scroll(0,0).scrollY([0.025,0.045,-0.35].ease(EASE).fast(.35)).scrollX([0.021,-0.031,0.062].ease(EASE).fast(.55)).rotate(Math.PI),.55)
.modulateScale(shape(999,0.3).scale(1,A,1).scroll(0,0.1).scrollY([-0.025,-0.015,0.035].ease(EASE).fast(.45)).scrollX([-0.021,-0.031,-0.022].ease(EASE).fast(.45)).rotate(Math.PI),.55)
.modulateScale(shape(999,0.3).scale(1,A,1).scroll(0.1,-0.1).scrollY([0.085,0.035,-0.25].ease(EASE).fast(.25)).scrollX([0.021,0.051,0.082].ease(EASE).fast(.35)).rotate(Math.PI),.55)
.modulateScale(shape(999,0.3).scale(1,A,1).scroll(-0.05,-0.06).scrollY([-0.15,0.085,0.15].ease(EASE).fast(.45)).scrollX([0.021,-0.091,-0.082].ease(EASE).fast(.35)).rotate(Math.PI),.55)
.modulateScale(shape(999,0.3).scale(1,A,1).scroll(0,-0.2).scrollY([-0.035,0.035,-0.15,-0.21].ease(EASE).fast(.25)).scrollX([0.041,0.21,0.012].ease(EASE).fast(.25)).rotate(Math.PI),.55)
.out();