Features

ZigZag is pre-alpha. Everything on this page exists in the current build. The list will grow, and there are zero compatibility guarantees between builds yet.

Editor

Operators

Operators are the blocks you connect. They are grouped by the kind of data they work on.

GeneralStructure and routing.

Feedback
Reads last frame's value so graphs can loop back on themselves.
Graph Inputs
Exposes inputs on a nested graph.
Graph Outputs
Exposes outputs on a nested graph.
Switch
Routes one of N inputs to one of M outputs.

MathOperate on signals and vectors.

Arithmetic
Add, subtract, multiply, divide.
Clamp
Limit a value to a range.
Compare
Boolean comparisons.
Counter
Count triggers.
Differentiator
Rate of change.
Expression
Type a formula with up to four inputs.
Integrator
Accumulate over time.
Map Range
Remap from one range to another.
Noise
Smooth random values.
Smoothen
Low-pass a signal.
Time
Elapsed time and frame counters.
Transform 3D
Compose position, rotation, and scale.
Vector
Pack and unpack vector components.

SignalControl-rate curves and envelopes.

ADSR
Attack, decay, sustain, release envelope.
Ramp
Linear ramp between values.
Signal Player
Play back a recorded signal, with looping.

TextureGPU image processing.

Load Image
PNG, JPEG, BMP, TGA, GIF, HDR, PSD and more.
Save Image
Write a texture to disk.
Color
Solid fill.
Color Ramp
Map values through a gradient.
Color Correct
Brightness, contrast, saturation, hue.
Grayscale
Convert to luminance.
Channel Shuffle
Reorder and swap channels.
Blend
Combine two textures with blend modes.
Mixer
Stack N layers with per-layer opacity.
Cross Fader
Fade between two textures.
Blur
Gaussian blur.
Edge Detect
Highlight edges.
Displace
Offset pixels by another texture.
Lookup UV
Sample a texture through a UV map.
Transform
Translate, rotate, scale.
Resize
Change resolution.
Noise
Procedural noise texture.
Sine Wave
Procedural wave pattern.

MeshProcedural geometry.

Cube
Box primitive.
Sphere
Sphere primitive.
Copy
Array instances with a step transform.
Create Attribute
Add a per-vertex attribute.
Distance
Distance from each vertex to a shape.
Noise
Displace vertices with noise.
Noise Attribute
Fill an attribute with noise.
Move
Displace vertices by an attribute.
Set Material
Assign a material.
Transform
Translate, rotate, scale.

Model & MaterialImported assets and shading.

Load 3D Model
Import glTF and GLB files.
Transform
Position a model in the scene.
PBR Material
Physically based shading.
Unlit Material
Flat color, no lighting.

Performance

ZigZag is written entirely in native code, with texture and mesh processing on the GPU. It has very few dependencies, and both the graphics layer and the user interface are custom-built for it. The result is a small download that starts instantly and stays responsive while the graph runs.