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
Live data viewers
Preview any texture, mesh, model, material, or signal inline while the graph runs.
Fullscreen output
Pop a texture viewer into its own window and press F for fullscreen. That's your projector feed.
Full undo
Every edit is a transaction. Drags fold into a single undo step.
Multiple viewports
Open the same project in several windows and viewports.
Drag and drop
Drop images and glTF files onto the graph to import them.
Parameter connections
Wire a parameter to another parameter, not only data ports.
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.