Site navigation

Shader Effects

Shader Effects are curated procedural and image-processing treatments exposed through Effect Studio and Object Filters. They are editable document data, not flattened previews and not arbitrary code execution.

Use an effect

  1. Select a compatible shape, image, text object, or group.
  2. Open Effect Studio for named treatments, or use Object Filters for direct stack editing.
  3. Choose a treatment such as Bloom, RGB Split, CRT, VHS, Palette Snap, Lens Flare, Light Leak, or Caustics.
  4. Adjust only the controls that describe the look: scale, angle, origin, colors, intensity, seed, and quality. Use Before/After comparison before committing.
  5. Reorder, mask, blend, duplicate, undo, save, reopen, and export through the same workflows as other effects.

What is stored

Documents store the effect kind, artistic parameters, seed/time values where applicable, asset references, and algorithm versions needed to preserve meaning. They do not store GPU devices, bind groups, compiled pipelines, mapped buffers, or temporary preview URLs.

Backend and fallback

The interactive canvas keeps the tested Canvas2D/software path authoritative. An async consumer may use native or WebGPU compute when capability detection, shader compilation, resource validation, and the request all succeed. The software implementation remains available for unsupported adapters, Linux WebKitGTK, older browsers, and device loss. A successful API probe alone is not evidence that a GPU produced the pixels.

Usable acceleration
The selected provider initialized, compiled the requested effect, submitted it, and returned a valid result.
Software fallback
The provider was unavailable or failed validation/runtime checks; the same authored parameters are evaluated by the tested CPU implementation.
Unresolved failure
If no provider can produce a result, export reports the error instead of silently writing the unshaded source.

Coordinates, color, and export

Pixel centers, source/document coordinates, effect bounds, and producer dimensions are explicit. Procedural phase does not reset when the canvas pans or zooms. Current GPU effects use a bounded sRGB RGBA8 surface with straight-alpha boundaries; premultiplied values are internal only where a kernel needs them. This is an SDR contract, not an HDR or wide-gamut promise.

Export evaluates committed parameters at export quality and includes effect expansion such as bloom spill. SVG/PDF preserve unaffected vector and text content, rasterizing the smallest dependency region when the target format cannot represent a treatment.

Why not arbitrary shader imports?

A Shadertoy, GLSL, or arbitrary WGSL file cannot be treated as automatically portable or safely preemptible GPU work. Varve does not execute user JavaScript, native code, hidden network requests, or unrestricted filesystem access for an effect. Any future authoring surface must define a supported language subset, stages, entry points, bindings, resource budgets, diagnostics, versioned presets, and a last-known-good recovery path first.

Search Varve