# Functions ## Color ### .contrast(`amount`) * amount :: float (default 1.6) Larger `amount` value makes higher contrast. ### .color( `r`, `g`, `b` ) * r :: float * g :: float * b :: float Colorize texture. ### .colorama(`amount`) * amount :: float (default 0.005) Shift HSV values. ### .invert(`amount`) * amount :: float (default 1.0) Invert color. ### .luma( `threshold`, `tolerance` ) * threshold :: float (default 0.5) * tolerance :: float (default 0.1) ### .thresh( `threshold`, `tolerance` ) * threshold :: float (default 0.5) * tolerance :: float (default 0.04) ----------- ## Combine ### .add( `texture`, `amount` ) * texture * color :: vec4 * src * shape * amount :: float (default 0.5) Add textures. ### .blend( `texture`, `amount` ) * texture * color :: vec4 * src * shape * amount :: float (default 0.5) Blend textures. ### .diff( `texture` ) * texture * color :: vec4 * src * shape Return difference of textures. ### .layer() Overlay texture based on alpha value. ### .mult( `texture`, `amount` ) * texture * color :: vec4 * src * shape * amount :: float (default 1.0) Multiply images and blend with the texture by `amount`. ----------------- ## CombineCoord ### .modulate( `texture`, `amount` ) * texture * color :: vec4 * src * shape * amount :: float (default 0.1) Modulate texture. More about modulation at: ### .modulateHue( `color`, `amount` ) * texture * color :: vec4 * src * shape * amount :: float (default 1.0) Changes coordinates based on hue of second input. Based on: ### .modulateKaleid( `nSides` ) * texture * color :: vec4 * src * shape * nSides :: float (default 4.0) ### .modulatePixelate( `multiple`, `offset` ) * texture * color :: vec4 * src * shape * multiple :: float (default 10.0) * offset :: float (default 3.0) ### .modulateRotate( `multiple`, `offset` ) * texture * color :: vec4 * src * shape * multiple :: float (default 1.0) * offset :: float (default 0.0) ### .modulateScale( `multiple`, `offset` ) * texture * color :: vec4 * src * shape * multiple :: float (default 1.0) * offset :: float (default 1.0) ### .modulateScrollX( `multiple`, `scrollX`, `speed` ) * texture * color :: vec4 * src * shape * scrollX :: float (default 0.5) * speed :: float (default 0.0) ### .modulateScrollY( `multiple`, `scrollY`, `speed` ) * texture * color :: vec4 * src * shape * scrollY :: float (default 0.5) * speed :: float (default 0.0) ----------------- ## Coord ### .kaleid( `nSides`) * nSides :: float (default 4.0) Kaleidoscope effect with `nSides` repetition. ### .rotate( `angle`, `speed` ) * angle :: float (default 10.0) * speed :: float (default 0.0) Rotate texture. ### .scale( `size`, `xMult`, `yMult` ) * size :: float * xMult :: float (default 1.0) * yMult :: float (default 1.0) Scale texture. ### .pixelate( `x`, `y` ) * pixelX :: float (default 20.0) * pixelY :: float (default 20.0) Pixelate texture with `pixelX` segments and `pixelY` segments. ### .scrollX( `scrollX`, `speed` ) * scrollX :: float (default 0.5) * speed :: float (default 0.0) ### .scrollY( `scrollY`, `speed` ) * scrollY :: float (default 0.5) * speed :: float (default 0.0) ------------------------- ## Src ### osc( `frequency`, `sync`, `offset` ) * frequency :: float (default 60.0) * sync :: float (default 0.1) * offset :: float (default 0.0) ### render( `output buffer`) * default: `o0` ### shape( `sides`, `radius`, `smoothing`) * sides :: int (default 3.0) * radius :: float (default 60.0) * smoothing :: float (default 0.01) ### solid( `r`, `g`, `b`, `a`) * r :: float (default 0.0) * g :: float (default 0.0) * b :: float (default 0.0) * a :: float (default 1.0) ### gradient( `speed` ) * speed :: float ### src( `input` ) * input :: examples: `o0`, `s1` ### noise( `scale`, `offset` ) * scale :: int (default 10.0) * offset :: float (default 0.1) Generate Perlin noise. ### voronoi( `scale`, `speed`, `blending` ) * scale :: float (default 5) * speed :: float (default 0.3) * blending :: float (default 0.3) Generate voronoi shapes. ### .out( `output buffer` ) * output buffer * osc: `o0`, `o1`, `o2`, `o3` * src: `s0`, `s1`, `s2`, `s3` ------------------- ## Sequences of parameters ``` osc( [80, 100, 200, 50], 1 ) ) .out(o0) ``` ``` osc( [80, 100, 200, 50].fast(0.2), 1 ) ) .out(o0) ``` ------------------- ## Audio ### .hide() ### .setBins( `int` ) ### .setCutoff( `float` ) ### .setScale( `float` ) ### .setSmooth( `float` ) ### .show() ------------------- ## Global variables Some useful variables that are defined globally, and can be used within functions as a parameter. ### time Example: ``` osc( ({time}) => Math.sin(time) ) .out(o0) ``` ### mouse * .x :: x position of mouse * .y :: y position of mouse Control the oscillator frequency with the mouse position: ``` osc(() => mouse.x).out(o0) ```