# RLCC meetup April 9
[](https://hackmd.io/hfciWuHVRgOGC7qrrIVp5w)
@ V2 Rotterdam

^ QR code leads to this collaborative notepad :)
WIFI: v2_lab pass: end-of-file
## Presenters
* Rafaele about Knurl
* Rik hydra workshop #2
* Sebastian hydra gif extension by @geikha_
Previous Meetups Online...
https://youtube.com/playlist?list=PLkxzJSA7SW8_XLNwOn08Qwa9VxUi-E514
## Notes
### Rafaele with Knurl
- https://bela.io/
- https://supercollider.github.io/
- https://www.voordekunst.nl/projecten/18297-tropicos-een-muziekalbum-met-knurl
### Rik with Hydra
URL to hydra:
https://hydra.ojack.xyz/
Code used for workshop2
```javascript
ctrl+shift+enter -> Run all code
alt [option] +enter -> Run Block
ctrl+enter -> Run 1 line
ctrl +shift+h -> Hide code
ctrl +\ -> Disable selected
hush() -> Stop rendering
noise( scale = 10.0, offset = 0.1 ).out(o0)
voronoi( scale = 5.0, speed = .3, blending = 0.3 ).out(o0)
osc( frequency = 60.0, sync = .1, offset = 0.0 ).out(o0)
shape( sides = 3.0, radius = 0.3, smoothing = 0.01 ).out(o0)
gradient( speed = 1 ).out(o0)
solid( r= 1.0, g = 0.0, b = 0.0, a = 1.0).out(o0)
src( input ).out(o0)
s0.initImage("https://upload.wikimedia.org/wikipedia/commons/2/25/Hydra-Foto.jpg")
src(s0).out()
################################
shape( sides = 3.0, radius = 0.3, smoothing = 0.01 )
.rotate( angle = 10, speed )
.out(o0)
shape( sides = 3.0, radius = 0.3, smoothing = 0.01 )
.scale( amount = 1.5, xMult = 1, yMult = 1, offsetX = 0.5, offsetY = 0.5 )
.out(o0)
shape( sides = 3.0, radius = 0.3, smoothing = 0.01 )
.pixelate( pixelX = 20, pixelY = 20 )
.out(o0)
shape( sides = 3.0, radius = 0.3, smoothing = 0.01 )
.repeat( repeatX = 3, repeatY = 3, offsetX, offsetY )
.out(o0)
shape( sides = 3.0, radius = 0.3, smoothing = 0.01 )
.repeatX( reps = 3, offset )
.out(o0)
shape( sides = 3.0, radius = 0.3, smoothing = 0.01 )
.repeatY( reps = 3, offset )
.out(o0)
src(s0)
.kaleid( nSides = 4 )
.out(o0)
shape( sides = 3.0, radius = 0.3, smoothing = 0.01 )
.scroll( scrollX = 0.5, scrollY = 0.5, speedX, speedY )
.out(o0)
shape( sides = 3.0, radius = 0.3, smoothing = 0.01 )
.scrollX( scrollX = 0.5, speed )
.out(o0)
shape( sides = 3.0, radius = 0.3, smoothing = 0.01 )
.scrollY( scrollY = 0.5, speed )
.out(o0)
```
### Sebastian hydra gif extension by @geikha_
// await loadScript("https://hyper-hydra.glitch.me/hydra-gif.js")
// s0.initGif('https://media2.giphy.com/media/v1.Y2lkPTc5MGI3NjExajNyeGRjaHZkdjgxaXRjdHVuc2NvbGMxb3hpaDUwZmFlcm1mcWY4cyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/aFTt8wvDtqKCQ/giphy.gif')
// s1.initGif('https://media.giphy.com/media/l36kU80xPf0ojG0Erg/giphy.gif?cid=790b7611tdytjvlo3taz5vbgv39koq5d42andhipchhug74z&ep=v1_gifs_search&rid=giphy.gif&ct=g')
// // s2.initGif('https://media.giphy.com/media/kaq6GnxDlJaBq/giphy.gif?cid=790b7611tdytjvlo3taz5vbgv39koq5d42andhipchhug74z&ep=v1_gifs_search&rid=giphy.gif&ct=g')
// s2.initGif('https://media.giphy.com/media/ZezB6UeuJ4JVe/giphy.gif?cid=ecf05e473zdkm91ujl1fkpxdt9o8tr6vqtvevbo0szrbvslm&ep=v1_gifs_related&rid=giphy.gif&ct=g')
// s3.initGif('https://media.giphy.com/media/hgj3ldOZxhM0GUq4QI/giphy.gif?cid=ecf05e473zdkm91ujl1fkpxdt9o8tr6vqtvevbo0szrbvslm&ep=v1_gifs_related&rid=giphy.gif&ct=g')
Code used...
dog=()=>
solid()
.add(src(s0).scale(1,1))
.add(osc(3,-.4,8).kaleid(40).saturate(2))
.diff(osc(3.2,-.4,8).kaleid(40).saturate(2))
.mult(shape(4,0.88))
//
solid()
.add(dog())
//.add(s0)
.add(s1)
.add(s2)
.mult(s3)
.out()
Extension URL
https://hydra.ojack.xyz/?code=YXdhaXQlMjBsb2FkU2NyaXB0KCUyMmh0dHBzJTNBJTJGJTJGaHlwZXItaHlkcmEuZ2xpdGNoLm1lJTJGaHlkcmEtZ2lmLmpzJTIyKSUwQSUwQXMwLmluaXRHaWYoJ2h0dHBzJTNBJTJGJTJGaS5naXBoeS5jb20lMkZtZWRpYSUyRmtacWJCVDY0RUN0anklMkZnaXBoeS5naWYnKSUwQSUwQXNyYyhzMCkuc2NhbGUoMSUyQy42KSUwQSUwOS5vdXQoKQ%3D%3D
{%preview https://github.com/geikha/hyper-hydra/blob/main/doc/hydra-gif.md %}
-> making you own functions that collect a bunch of effects into it using javascript arrow functions