s0.initImage("/home/pln/Work/Hydra/StarryNights/img/Edge.png");
src(s0).out(o0);

periodScale = 2.9;

noise(200, 0.13)
  .blend(
    // Filter out the center by blending a diffed shape
    solid(1, 1, 1).diff(shape(30).color(1, 1, 1).scale(1.8).scrollX(-0.015))
  )
  .thresh(0.95)
  .color(0.71,
         0,
         () => 0.49 + 0.1 * Math.sin(time),
         0
       )
  .out(o1);

src(o0)
  .blend(src(o0).rotate(0.5).scale(() => 1.05 + 0.05 * Math.sin(time / periodScale)))
  .blend(src(o0).rotate(0.25).scale(() => 0.95 - 0.05 * Math.sin(time / periodScale)))
  .out(o2);

src(o1)
.diff(src(o2))
.blend(src(o2)
.modulate(shape(30)
  .scale(() => 0.6 + Math.sin(time /20) * 0.059, 0.88)
  .scroll(0.0125,0.0125)
  .rotate(() => time % 360)
  .scrollX(-0.02)
)
)
.contrast(1.1)
.scale(() => 1.52 + 0.4 * Math.sin(time/200))
.add(noise(100,0.02).thresh(0.9))
.rotate(() => -time / 25 % 360)
.out(o3)

render(o3)