Auragen docs
Auragen docs
OverviewInterfacenerdGRAPH ModeWorking with LayersParameters and Controls
Generators
Custom GLSL
3D Preview
GeneratorsCustom

Custom GLSL

A generator node that runs your own fragment shader, with declared uniforms auto-exposed as animatable sliders.

The Custom GLSL node runs a fragment shader you write directly in the node's parameter panel. Any uniform you declare becomes a slider, so a few lines of GLSL produce a fully controllable, animatable generator.

Custom GLSL demo shader output

  • One texture output; a texture input readable from the shader, plus a composite input
  • A code editor with live compile, Shadertoy conversion, and ISF support
  • Found in nerdGRAPH under Generators in the add-node menu
Example patch — drag onto the app to load

The image on the right is the example patch itself — drag and drop it onto the app (or load it with File → Load) to open the full graph. It contains the ring shader shown above, with two custom uniforms (rings, glow) exposed as sliders.

Inputs and outputs

Custom GLSL node

PortTypePurpose
Input 0TextureAvailable inside the shader as uTexture (or iChannel0 in Shadertoy-style code)
Input 1TexturePresent on the node but not currently passed to the shader in graph evaluation
Composite InputTextureComposited over the output using the node's Blend Mode and Opacity
OutputTextureWhatever your shader writes to gl_FragColor
Only Input 0 reaches the shader — a texture wired into Input 1 is ignored during graph evaluation.

Parameters

Custom GLSL parameters with the shader editor

Opacity, Blend Mode, ALPHA — the standard operator header.

  • GLSL Code — the shader source, edited in the panel's code editor. With Auto checked the shader recompiles as you type; otherwise click Compile. Compile errors appear below the editor with a line number.
  • ISF MODE — treats the source as an ISF (Interactive Shader Format) shader: the JSON header's INPUTS become parameters with their declared types, ranges, and defaults.
  • Shader Parameters — every uniform float, vec2, vec3, vec4, or int you declare is auto-detected and listed here as a control. Each gets the standard per-parameter animation bar, so custom uniforms can be animated, audio-driven, or MIDI-mapped like any built-in parameter — see Parameters and Controls.

Built-in uniforms available in every shader: uTime (float, animation time), uResolution (vec2, pixels), uMouse (vec2, normalized), uTexture (sampler2D, Input 0). Shadertoy conventions (iTime, iResolution, mainImage(...)) are converted automatically on compile.

For the full shader-writing reference — ISF header format, Shadertoy conversion details, uniform annotations — see Custom GLSL Shaders.

Troubleshooting

Node renders black after loading a patch or preset — if the stored code has a compile error, the node stays black; select it and check the message under the editor. Valid code compiles automatically on first evaluation, no click required.

A texture wired into Input 1 does nothing — only Input 0 reaches the shader. Rewire to Input 0.

My uniform slider has a useless range — the auto-detected range is a guess. Type an exact value into the number field, or use ISF MODE and declare MIN/MAX in the header for precise ranges.

Sketch

Freehand brush surface with six brush types, symmetry, and pen-pressure support — draw directly onto the canvas.

Post Effects

Global post-processing effects for blur, color, distortion, detail, and stylization.

On this page

Inputs and outputsParametersTroubleshooting