manifest.md
Top-level fields (wisp, id, name, kind, category, version, license), the params table with its WGSL mapping, and the passes table: shader, entry, constants, inputs and output. Reserved input names source, from and to.
Anything may change before 1.0. Each file below is the source of truth for its chapter; this page is the map.
Top-level fields (wisp, id, name, kind, category, version, license), the params table with its WGSL mapping, and the passes table: shader, entry, constants, inputs and output. Reserved input names source, from and to.
Draft 2020-12 JSON Schema for manifest.json, published at wispfx.org/schema/0.1/manifest.json. Validate before shipping.
Module assembly (prelude plus plugin file), the five host bindings, the fragment entry point, the colour space (linear, premultiplied RGBA, rgba16float, Rec. 709) and the portability rules.
MIDI 2.0 controllers and notes a plugin reads each frame as 0..1 floats at group 1, binding 1. The host maps audio followers, OSC and hardware onto them; the plugin never sees events.
The WGSL the host prepends to every plugin shader module: WispGlobals, the sampler, the two input textures and the fullscreen-triangle vertex stage wisp_vs. Plugins must not redeclare anything in it.
Cross Dissolve (transition), Gaussian Blur (two passes with override constants) and Reactive Grade (a colour grade driven by signals). All pass naga and validate against the schema.
A conforming host assembles each pass's module as the prelude plus the plugin's WGSL file, creates explicit pipeline layouts so unused bindings stay valid, provides the five bindings of group 0 and the plugin's Params at group 1, lays Params out with WGSL uniform alignment padded to 16 bytes, feeds linear premultiplied rgba16float in and out, drives progress across the clip or the cut, and accepts only WGSL that both naga and browser WebGPU compile.