Description
JAN. 1 (credit: Melissa Wiederrecht & Nicolas Barradeau)
PROMPT: Particles, lots of them
Made with code in Hydra & SuperCollider
You must click on the image to start playing the audio.
INTERACTIVE PIECE. Move your mouse and have fun.
/*
Particles, lots of them
by Daniel Oropeza
*/
k = () => 100
d = (x) => Math.PI * x / k()
A = window.innerHeight / window.innerWidth
d = 0.001
xx = 0
yy = 0
x = 0, y = 0,
x = () => (((-mouse.x / innerWidth) + .5) / A) / 3
y = () => ((-mouse.y / innerHeight) + .5) / 3
window.document.body.addEventListener('touchmove', function(e) {
xx = 0,
yy = 0,
x = 0, y = 0,
xx = (((e.touches[0].clientX / -innerWidth) + .5) / A) / 3.3333,
yy = ((e.touches[0].clientY / -innerHeight) + .5) / 3.33333
//console.log(xx,yy)
}, false);
src(o1)
.colorama(.001)
.modulate(
osc(6, 0, 1.5)
.brightness(-.5)
.modulate(noise()
.sub(gradient())
.add(
solid(1, 1, 1)
.mask(
shape(2, () => d(1), 0.1))
.scrollY(() => d(2) / 2)
.rotate(() => Math.atan2(d(2), 1))
.scrollY(() => -d(2) / 2 - .5)
.kaleid(() => k() * .25)
.scale(.25)
.mask(shape(999, .5)
.rotate(Math.PI / 8))
.modulateRotate(shape(999, 0, 1), 1)
.scale(2), -1
), 3.14), .003)
.layer(
osc(5, 0, 1.5)
.modulateScale(osc(1, 0), -.2, 1)
.pixelate(5)
.scrollX(.3)
.scale(1, 1.25)
.mask(
shape(2, () => d(.5), 0))
.scrollY(() => d(.5) / 2)
.rotate(() => Math.atan2(d(.5), 1))
.scrollY(() => -d(.5) / 2 - .5)
.kaleid(() => k() * .25)
.scale(.25)
.mask(shape(999, .5)
.rotate(Math.PI / 8))
.modulateRotate(shape(999, 0, 1), 1)
.scale(2)
)
.mult(osc(10, 1 / 2, 300)
.diff(gradient(1)
.hue()
.thresh()
.brightness(1))
)
.blend(src(o0)
.scale(1.1))
.blend(src(o0)
.scale(1.1))
.blend(src(o0)
.scale(1.1)
.brightness(-0.005))
.modulate(noise(1.5)
.mult(osc(4, 0.1)))
.brightness(0.00001)
.saturate(1.05)
.luma(-1.99)
.scrollX([0.001, 0])
.scrollY([0, 0.001])
.modulateScale(osc(4), 0.02, 0.99)
.out(o1)
src(o0)
.mult(shape(100, .0005, 1)
.luma(.5, .75)
.scale(1 / 6)
.scrollX(x)
.scrollY(y)
.scrollX(() => xx)
.scrollY(() => yy)
.scale(3, A)
)
.posterize(30, 1)
.mult(voronoi(3), 0.005)
.blend(src(o1), 0.01)
.colorama(-0.0001)
.diff(shape(2, () => time < 300 ? 0.01 : 0, 0)
.g()
.rotate(Math.PI / 8)
.add(src(o0)
.modulate(
osc(6, 0, 4.5)
.brightness(-.5)
.modulate(noise(3, .1)
.modulatePixelate(
noise(3, .1), 504, 8)
.sub(gradient(), -1), 1)
.invert(-1)
.sub(gradient()
.brightness(-.5), 3), -.001)))
.saturate(1.001)
.out(o0)
src(o0)
.layer(src(o1)
.mask(src(o1))
.scrollY(0.001)
.contrast(1.01)
.rotate(0.001)
.scale(1.01))
.scale(2)
.contrast(500)
.color(-.1, .05, -1)
.posterize(.75)
.blend(o2)
.blend(o2)
.blend(o2)
.blend(o2)
.blend(o2)
.blend(o2)
.add(noise(innerWidth * 2), .15, .25)
.out(o2)
render(o2)