diff --git a/docs/funcs.md b/docs/funcs.md index 3413c8c..72b6700 100644 --- a/docs/funcs.md +++ b/docs/funcs.md @@ -50,8 +50,25 @@ - [modulateScrollX](#modulateScrollX) - [modulateScrollY](#modulateScrollY) - [Operators](#operators) + - [add](#add) + - [blend](#blend) + - [diff](#diff) + - [layer](#layer) + - [mult](#mult) - [Sources](#sources) + - [gradient](#gradient) + - [noise](#noise) + - [osc](#osc) + - [out](#out) + - [render](#render) + - [shape](#shape) + - [solid](#solid) + - [src](#src) + - [voronoi](#voronoi) - [Parameter sequences](#parameter-sequences) + - [Lists as parameter sequences](#lists-as-parameter-sequences) + - [Functions on parameter sequences](#functions-on-parameter-sequences) + - [fast](#fast) --- @@ -257,8 +274,7 @@ osc(() => mouse.x).out(o0) Control the oscillator using a sine wave based on the current time: ```javascript -osc( ({time}) => Math.sin(time) ) -.out(o0) +osc( ({time}) => Math.sin(time) ).out(o0) ``` --- @@ -281,7 +297,7 @@ Functions for describing modulations of sources. `.modulate( texture, amount )` * `texture` - * `color` :: `vec4`, see [color `vec4`](#color-vec4) + * `color` :: see [color `vec4`](#color-vec4) * `src` :: see [`src`](#src) * `shape` :: see [`shape`](#shape) * `amount` :: float (default `0.1`) @@ -294,7 +310,7 @@ More about modulation at: https://lumen-app.com/guide/modulation/ `.modulateHue( color, amount )` * `texture` - * `color` :: `vec4`, see [color `vec4`](#color-vec4) + * `color` :: see [color `vec4`](#color-vec4) * `src` :: see [`src`](#src) * `shape` :: see [`shape`](#shape) * `amount` :: float (default `1.0`) @@ -307,7 +323,7 @@ Based on:https://www.shadertoy.com/view/XtcSWM `.modulateKaleid( nSides )` * `texture` - * `color` :: `vec4`, see [color `vec4`](#color-vec4) + * `color` :: see [color `vec4`](#color-vec4) * `src` :: see [`src`](#src) * `shape` :: see [`shape`](#shape) * `nSides` :: float (default `4.0`) @@ -319,7 +335,7 @@ See also: [`kaleid`](#kaleid). `.modulatePixelate( multiple, offset )` * `texture` - * `color` :: `vec4`, see [color `vec4`](#color-vec4) + * `color` :: see [color `vec4`](#color-vec4) * `src` :: see [`src`](#src) * `shape` :: see [`shape`](#shape) * `multiple` :: float (default `10.0`) @@ -332,7 +348,7 @@ See also: [`pixelate`](#pixelate) `.modulateRotate( multiple, offset )` * `texture` - * `color` :: `vec4`, see [color `vec4`](#color-vec4) + * `color` :: see [color `vec4`](#color-vec4) * `src` :: see [`src`](#src) * `shape` :: see [`shape`](#shape) * `multiple` :: float (default `1.0`) @@ -345,7 +361,7 @@ See also: [`rotate`](#rotate) `.modulateScale( multiple, offset )` * `texture` - * `color` :: `vec4`, see [color `vec4`](#color-vec4) + * `color` :: see [color `vec4`](#color-vec4) * `src` :: see [`src`](#src) * `shape` :: see [`shape`](#shape) * `multiple` :: float (default `1.0`) @@ -358,7 +374,7 @@ See also: [`scale`](#scale) `.modulateScrollX( multiple, scrollX, speed )` * `texture` - * `color` :: `vec4`, see [color `vec4`](#color-vec4) + * `color` :: see [color `vec4`](#color-vec4) * `src` :: see [`src`](#src) * `shape` :: see [`shape`](#shape) * `scrollX` :: float (default `0.5`) @@ -371,7 +387,7 @@ See also: [`scrollX`](#scrollx) `.modulateScrollY( multiple, scrollX, speed )` * `texture` - * `color` :: `vec4`, see [color `vec4`](#color-vec4) + * `color` :: see [color `vec4`](#color-vec4) * `src` :: see [`src`](#src) * `shape` :: see [`shape`](#shape) * `scrollY` :: float (default `0.5`) @@ -379,5 +395,190 @@ See also: [`scrollX`](#scrollx) See also: [`scrollY`](#scrollY) +--- ---- \ No newline at end of file +## Operators + +Functions for performing operations on sources. + +- [add](#add) +- [blend](#blend) +- [diff](#diff) +- [layer](#layer) +- [mult](#mult) + +### add + +`.add( texture, amount )` + +* `texture` + * `color` :: see [color `vec4`](#color-vec4) + * `src` :: see [`src`](#src) + * `shape` :: see [`shape`](#shape) +* `amount` :: float (default `0.5`) + +Add textures. + +### blend + +`.blend( texture, amount )` + +* `texture` + * `color` :: see [color `vec4`](#color-vec4) + * `src` :: see [`src`](#src) + * `shape` :: see [`shape`](#shape) +* `amount` :: float (default `0.5`) + +Blend textures. + +### diff + +`.diff( texture )` + +* `texture` + * `color` :: see [color `vec4`](#color-vec4) + * `src` :: see [`src`](#src) + * `shape` :: see [`shape`](#shape) + +Return difference of textures. + +### layer + +`.layer( texture )` + +* `texture` + * `color` :: see [color `vec4`](#color-vec4) + * `src` :: see [`src`](#src) + * `shape` :: see [`shape`](#shape) + +Overlay texture based on alpha value. + +### mult + +`.mult( texture, amount )` + +* `texture` + * `color` :: see [color `vec4`](#color-vec4) + * `src` :: see [`src`](#src) + * `shape` :: see [`shape`](#shape) +* `amount` :: float (default `1.0`) + +Multiply images and blend with the texture by `amount`. + +--- + +## Sources + +Sources are elementary generators that output different types of visual content. + +- [gradient](#gradient) +- [noise](#noise) +- [osc](#osc) +- [out](#out) +- [render](#render) +- [shape](#shape) +- [solid](#solid) +- [src](#src) +- [voronoi](#voronoi) + +### gradient + +`gradient( speed )` + +* `speed` :: float (default `x`) + +### noise + +`noise( scale, offset )` + +* `scale` :: int (default `10.0`) +* `offset` :: float (default `0.1`) + +Generate [Perlin noise](https://en.wikipedia.org/wiki/Perlin_noise). + +### osc + +`osc( frequency, sync, offset )` + +* `frequency` :: float (default `60.0`) +* `sync` :: float (default `0.1`) +* `offset` :: float (default `0.0`) + +### out + +`.out( buffer )` + +* `buffer` + * `osc`: `o0`, `o1`, `o2`, `o3` + * `src`: `s0`, `s1`, `s2`, `s3` + +### render + +`render( buffer )` + +* `buffer`: buffer (default `o0`) + +### shape + +`shape( sides, radius, smoothing)` + +* `sides` :: int (default `3.0`) +* `radius` :: float (default `0.3`) +* `smoothing` :: float (default `0.01`) + +### solid + +`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`) + +### src + +`src( input )` + +* `input` :: input (examples: `o0`, `s1`) + +### voronoi + +`voronoi( scale, speed, blending )` + +* `scale` :: float (default `5`) +* `speed` :: float (default `0.3`) +* `blending` :: float (default `0.3`) + +Generate [voronoi shapes](https://en.wikipedia.org/wiki/Voronoi_diagram). + +--- + +## Parameter sequences + +- [Lists as parameter sequences](#lists-as-parameter-sequences) +- [Functions on parameter sequences](#functions-on-parameter-sequences) + - [fast](#fast) + +### Lists as parameter sequences + +``` +osc( + [80, 100, 200, 50], 1 ) +) +.out(o0) +``` + +### Functions on parameter sequences + +#### fast + +`fast ( amount) ` + +* `amount` :: float (default `x`) + +``` +osc( + [80, 100, 200, 50].fast(0.2), 1 ) +) +.out(o0) +``` diff --git a/docs/funcs_global-variables.md b/docs/funcs_global-variables.md index b0e56ea..0018007 100644 --- a/docs/funcs_global-variables.md +++ b/docs/funcs_global-variables.md @@ -31,6 +31,5 @@ osc(() => mouse.x).out(o0) Control the oscillator using a sine wave based on the current time: ```javascript -osc( ({time}) => Math.sin(time) ) -.out(o0) +osc( ({time}) => Math.sin(time) ).out(o0) ``` diff --git a/docs/funcs_modulators.md b/docs/funcs_modulators.md index e42d903..b9d1d0e 100644 --- a/docs/funcs_modulators.md +++ b/docs/funcs_modulators.md @@ -16,7 +16,7 @@ Functions for describing modulations of sources. `.modulate( texture, amount )` * `texture` - * `color` :: `vec4`, see [color `vec4`](#color-vec4) + * `color` :: see [color `vec4`](#color-vec4) * `src` :: see [`src`](#src) * `shape` :: see [`shape`](#shape) * `amount` :: float (default `0.1`) @@ -29,7 +29,7 @@ More about modulation at: https://lumen-app.com/guide/modulation/ `.modulateHue( color, amount )` * `texture` - * `color` :: `vec4`, see [color `vec4`](#color-vec4) + * `color` :: see [color `vec4`](#color-vec4) * `src` :: see [`src`](#src) * `shape` :: see [`shape`](#shape) * `amount` :: float (default `1.0`) @@ -42,7 +42,7 @@ Based on:https://www.shadertoy.com/view/XtcSWM `.modulateKaleid( nSides )` * `texture` - * `color` :: `vec4`, see [color `vec4`](#color-vec4) + * `color` :: see [color `vec4`](#color-vec4) * `src` :: see [`src`](#src) * `shape` :: see [`shape`](#shape) * `nSides` :: float (default `4.0`) @@ -54,7 +54,7 @@ See also: [`kaleid`](#kaleid). `.modulatePixelate( multiple, offset )` * `texture` - * `color` :: `vec4`, see [color `vec4`](#color-vec4) + * `color` :: see [color `vec4`](#color-vec4) * `src` :: see [`src`](#src) * `shape` :: see [`shape`](#shape) * `multiple` :: float (default `10.0`) @@ -67,7 +67,7 @@ See also: [`pixelate`](#pixelate) `.modulateRotate( multiple, offset )` * `texture` - * `color` :: `vec4`, see [color `vec4`](#color-vec4) + * `color` :: see [color `vec4`](#color-vec4) * `src` :: see [`src`](#src) * `shape` :: see [`shape`](#shape) * `multiple` :: float (default `1.0`) @@ -80,7 +80,7 @@ See also: [`rotate`](#rotate) `.modulateScale( multiple, offset )` * `texture` - * `color` :: `vec4`, see [color `vec4`](#color-vec4) + * `color` :: see [color `vec4`](#color-vec4) * `src` :: see [`src`](#src) * `shape` :: see [`shape`](#shape) * `multiple` :: float (default `1.0`) @@ -93,7 +93,7 @@ See also: [`scale`](#scale) `.modulateScrollX( multiple, scrollX, speed )` * `texture` - * `color` :: `vec4`, see [color `vec4`](#color-vec4) + * `color` :: see [color `vec4`](#color-vec4) * `src` :: see [`src`](#src) * `shape` :: see [`shape`](#shape) * `scrollX` :: float (default `0.5`) @@ -106,7 +106,7 @@ See also: [`scrollX`](#scrollx) `.modulateScrollY( multiple, scrollX, speed )` * `texture` - * `color` :: `vec4`, see [color `vec4`](#color-vec4) + * `color` :: see [color `vec4`](#color-vec4) * `src` :: see [`src`](#src) * `shape` :: see [`shape`](#shape) * `scrollY` :: float (default `0.5`) diff --git a/docs/funcs_operators.md b/docs/funcs_operators.md index b3d53d4..01612b0 100644 --- a/docs/funcs_operators.md +++ b/docs/funcs_operators.md @@ -1,50 +1,67 @@ -# Operators +## Operators Functions for performing operations on sources. -- [.add( `texture`, `amount` )](#.add( `texture`, `amount` )) -- [.blend( `texture`, `amount` )](#.blend( `texture`, `amount` )) -- [.diff( `texture` )](#.diff( `texture` )) -- [.layer()](#.layer()) -- [.mult( `texture`, `amount` )](#.mult( `texture`, `amount` )) +- [add](#add) +- [blend](#blend) +- [diff](#diff) +- [layer](#layer) +- [mult](#mult) ---- +### add -### .add( `texture`, `amount` ) -* texture - * color :: vec4 - * src - * shape -* amount :: float (default 0.5) +`.add( texture, amount )` + +* `texture` + * `color` :: see [color `vec4`](#color-vec4) + * `src` :: see [`src`](#src) + * `shape` :: see [`shape`](#shape) +* `amount` :: float (default `0.5`) Add textures. -### .blend( `texture`, `amount` ) -* texture - * color :: vec4 - * src - * shape -* amount :: float (default 0.5) +### blend + +`.blend( texture, amount )` + +* `texture` + * `color` :: see [color `vec4`](#color-vec4) + * `src` :: see [`src`](#src) + * `shape` :: see [`shape`](#shape) +* `amount` :: float (default `0.5`) Blend textures. -### .diff( `texture` ) -* texture - * color :: vec4 - * src - * shape +### diff + +`.diff( texture )` + +* `texture` + * `color` :: see [color `vec4`](#color-vec4) + * `src` :: see [`src`](#src) + * `shape` :: see [`shape`](#shape) Return difference of textures. -### .layer() +### layer + +`.layer( texture )` + +* `texture` + * `color` :: see [color `vec4`](#color-vec4) + * `src` :: see [`src`](#src) + * `shape` :: see [`shape`](#shape) Overlay texture based on alpha value. -### .mult( `texture`, `amount` ) -* texture - * color :: vec4 - * src - * shape -* amount :: float (default 1.0) +### mult -Multiply images and blend with the texture by `amount`. \ No newline at end of file +`.mult( texture, amount )` + +* `texture` + * `color` :: see [color `vec4`](#color-vec4) + * `src` :: see [`src`](#src) + * `shape` :: see [`shape`](#shape) +* `amount` :: float (default `1.0`) + +Multiply images and blend with the texture by `amount`. diff --git a/docs/funcs_sources.md b/docs/funcs_sources.md index a6a1d20..ebbe5b2 100644 --- a/docs/funcs_sources.md +++ b/docs/funcs_sources.md @@ -1,58 +1,83 @@ -# Sources +## Sources -Sources are the +Sources are elementary generators that output different types of visual content. -- [osc( `frequency`, `sync`, `offset` )](#osc( `frequency`, `sync`, `offset` )) -- [render( `output buffer`)](#render( `output buffer`)) -- [shape( `sides`, `radius`, `smoothing`)](#shape( `sides`, `radius`, `smoothing`)) -- [solid( `r`, `g`, `b`, `a`)](#solid( `r`, `g`, `b`, `a`)) -- [gradient( `speed` )](#gradient( `speed` )) -- [src( `input` )](#src( `input` )) -- [noise( `scale`, `offset` )](#noise( `scale`, `offset` )) -- [voronoi( `scale`, `speed`, `blending` )](#voronoi( `scale`, `speed`, `blending` )) -- [.out( `output buffer` )](#.out( `output buffer` )) +- [gradient](#gradient) +- [noise](#noise) +- [osc](#osc) +- [out](#out) +- [render](#render) +- [shape](#shape) +- [solid](#solid) +- [src](#src) +- [voronoi](#voronoi) ---- +### gradient -### osc( `frequency`, `sync`, `offset` ) -* frequency :: float (default 60.0) -* sync :: float (default 0.1) -* offset :: float (default 0.0) +`gradient( speed )` -### render( `output buffer`) -* default: `o0` +* `speed` :: float (default `x`) -### shape( `sides`, `radius`, `smoothing`) -* sides :: int (default 3.0) -* radius :: float (default 0.3) -* smoothing :: float (default 0.01) +### noise -### 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) +`noise( scale, offset )` -### gradient( `speed` ) -* speed :: float +* `scale` :: int (default `10.0`) +* `offset` :: float (default `0.1`) -### src( `input` ) -* input :: examples: `o0`, `s1` +Generate [Perlin noise](https://en.wikipedia.org/wiki/Perlin_noise). -### noise( `scale`, `offset` ) -* scale :: int (default 10.0) -* offset :: float (default 0.1) +### osc -Generate Perlin noise. +`osc( frequency, sync, offset )` -### voronoi( `scale`, `speed`, `blending` ) -* scale :: float (default 5) -* speed :: float (default 0.3) -* blending :: float (default 0.3) +* `frequency` :: float (default `60.0`) +* `sync` :: float (default `0.1`) +* `offset` :: float (default `0.0`) -Generate voronoi shapes. +### out -### .out( `output buffer` ) -* output buffer - * osc: `o0`, `o1`, `o2`, `o3` - * src: `s0`, `s1`, `s2`, `s3` \ No newline at end of file +`.out( buffer )` + +* `buffer` + * `osc`: `o0`, `o1`, `o2`, `o3` + * `src`: `s0`, `s1`, `s2`, `s3` + +### render + +`render( buffer )` + +* `buffer`: buffer (default `o0`) + +### shape + +`shape( sides, radius, smoothing)` + +* `sides` :: int (default `3.0`) +* `radius` :: float (default `0.3`) +* `smoothing` :: float (default `0.01`) + +### solid + +`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`) + +### src + +`src( input )` + +* `input` :: input (examples: `o0`, `s1`) + +### voronoi + +`voronoi( scale, speed, blending )` + +* `scale` :: float (default `5`) +* `speed` :: float (default `0.3`) +* `blending` :: float (default `0.3`) + +Generate [voronoi shapes](https://en.wikipedia.org/wiki/Voronoi_diagram). diff --git a/docs/funsc_parameter-sequences.md b/docs/funsc_parameter-sequences.md index 4037807..7e53163 100644 --- a/docs/funsc_parameter-sequences.md +++ b/docs/funsc_parameter-sequences.md @@ -1,9 +1,8 @@ -# Parameter sequences +## Parameter sequences - [Lists as parameter sequences](#lists-as-parameter-sequences) - [Functions on parameter sequences](#functions-on-parameter-sequences) - ---- + - [fast](#fast) ### Lists as parameter sequences @@ -16,6 +15,12 @@ osc( ### Functions on parameter sequences +#### fast + +`fast ( amount) ` + +* `amount` :: float (default `x`) + ``` osc( [80, 100, 200, 50].fast(0.2), 1 )