This is a temporary location for the most updated docs produced by Jack Armitage at the time of publishing

22 March 2019

Hydra Functions

Categories

Contents


Audio

Functions for manipulating audio signals.

hide

.hide()

setBins

.setBins( bins )

  • bins :: integer (default x)

setCutoff

.setCutoff( frequency )

  • frequency :: float (default x)

setScale

.setScale( amount )

  • amount :: float (default x)

setSmooth

.setSmooth( amount )

  • amount :: float (default x)

show

.show()


Color

Functions for manipulating color.

contrast

.contrast( amount )

  • amount :: float (default 1.6)

Larger amount value makes higher contrast.

color vec4

.color( r, g, b )

  • r :: float
  • g :: float
  • b :: float

Colorize texture.

colorama

.colorama( amount )

  • amount :: float (default 0.005)

Shift HSV values.

invert

.invert( amount )

  • amount :: float (default 1.0)

Invert color.

luma

.luma( threshold, tolerance )

  • threshold :: float (default 0.5)
  • tolerance :: float (default 0.1)

thresh

.thresh( threshold, tolerance )

  • threshold :: float (default 0.5)
  • tolerance :: float (default 0.04)

Geometry

Functions for manipulating geometry.

kaleid

.kaleid( nSides )

  • nSides :: float (default 4.0)

Kaleidoscope effect with nSides repetition.

pixelate

.pixelate( x, y )

  • pixelX :: float (default 20.0)
  • pixelY :: float (default 20.0)

Pixelate texture with pixelX segments and pixelY segments.

rotate

.rotate( angle, speed )

  • angle :: float (default 10.0)
  • speed :: float (default 0.0)

Rotate texture.

scale

.scale( size, xMult, yMult )

  • size :: float (default x)
  • xMult :: float (default 1.0)
  • yMult :: float (default 1.0)

Scale texture.

scrollX

.scrollX( scrollX, speed )

  • scrollX :: float (default 0.5)
  • speed :: float (default 0.0)

scrollY

.scrollY( scrollY, speed )

  • scrollY :: float (default 0.5)
  • speed :: float (default 0.0)

Global variables

Useful variables that are defined globally, and can be used within functions as a parameter.

mouse

mouse

  • .x :: x position of mouse
  • .y :: y position of mouse

Example

Control the oscillator frequency with the mouse position:

osc(() => mouse.x).out(o0)

time

time

  • time :: the current time

Example

Control the oscillator using a sine wave based on the current time:

osc( ({time}) => Math.sin(time) ).out(o0)

Modulators

Functions for describing modulations of sources.

modulate

.modulate( texture, amount )

  • texture
  • amount :: float (default 0.1)

Modulate texture. More about modulation at: https://lumen-app.com/guide/modulation/

modulateHue

.modulateHue( color, amount )

  • texture
  • amount :: float (default 1.0)

Changes coordinates based on hue of second input. Based on:https://www.shadertoy.com/view/XtcSWM

modulateKaleid

.modulateKaleid( nSides )

  • texture
  • nSides :: float (default 4.0)

See also: kaleid.

modulatePixelate

.modulatePixelate( multiple, offset )

  • texture
  • multiple :: float (default 10.0)
  • offset :: float (default 3.0)

See also: pixelate

modulateRotate

.modulateRotate( multiple, offset )

  • texture
  • multiple :: float (default 1.0)
  • offset :: float (default 0.0)

See also: rotate

modulateScale

.modulateScale( multiple, offset )

  • texture
  • multiple :: float (default 1.0)
  • offset :: float (default 1.0)

See also: scale

modulateScrollX

.modulateScrollX( multiple, scrollX, speed )

  • texture
  • scrollX :: float (default 0.5)
  • speed :: float (default 0.0)

See also: scrollX

modulateScrollY

.modulateScrollY( multiple, scrollX, speed )

  • texture
  • scrollY :: float (default 0.5)
  • speed :: float (default 0.0)

See also: scrollY


Operators

Functions for performing operations on sources.

add

.add( texture, amount )

  • texture
  • amount :: float (default 0.5)

Add textures.

blend

.blend( texture, amount )

  • texture
  • amount :: float (default 0.5)

Blend textures.

diff

.diff( texture )

Return difference of textures.

layer

.layer( texture )

Overlay texture based on alpha value.

mult

.mult( texture, amount )

  • texture
  • 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( speed )

  • speed :: float (default x)

noise

noise( scale, offset )

  • scale :: int (default 10.0)
  • offset :: float (default 0.1)

Generate 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.


Parameter sequences

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)