edges
edges · effects · schema v1Per-frame Sobel edge-detection video PROCESSOR. Takes a video input, runs a 3×3 Sobel operator on its per-pixel Rec. 601 LUMINANCE (gradient magnitude = sqrt(Gx²+Gy²), normalised so a unit luma step reads ~1.0), and emits a MONO-VIDEO frame: white where an edge was detected, black everywhere else. STATELESS per frame — the detected edges move/transform live with the source (no feedback, no history). THRESHOLD (0..1, default 0.2) gates which gradients count as edges (below → black; raise it to keep only the strongest contours, lower it to let faint gradients through). THICKNESS (1..8 px, default 2) DILATES the detected edge mask (morphological MAX over a square neighbourhood of radius thickness-1 texels) so a 1px edge renders up to `thickness` px wide; thickness=1 is the raw edge. IN takes RGB; OUT is mono-video (white edges on black) — patch it into OUTPUT, a video mixer, COLORIZER (mono→video upcast), or back into another video module as a key mask. THRESHOLD + THICKNESS each have a matching CV input (port id == param id). Pairs well with a moving source (CAMERA / VIDEOBOX / SHAPES) for live rotoscoped outlines.
the faceplate
inputs
| id | cable | what it does |
|---|---|---|
in | video | The video frame to edge-detect. Its per-pixel Rec. 601 luminance is run through the 3x3 Sobel operator; with nothing patched here the output is solid black. RGB video stream |
threshold | cv | CV input that modulates Thresh — raising it via CV keeps only the strongest gradients (fewer white pixels), lowering it lets faint edges through. Linear-scaled into the 0..1 control range. control voltage (CV); modulates threshold (additive offset — ±1 CV sweeps the full range, centered on the knob) |
thickness | cv | CV input that modulates Thick — drives the rendered edge width / dilation radius in pixels. Linear-scaled into the 1..8 px control range and clamped so it cannot blow up the dilation loop. control voltage (CV); modulates thickness (additive offset — ±1 CV sweeps the full range, centered on the knob) |
outputs
| id | cable | what it does |
|---|---|---|
out | mono-video | A mono-video frame of white edges on a black background (all three RGB channels written to the same value, so plain video consumers also see white). mono video stream |
params
| id | label | range | default | curve |
|---|---|---|---|---|
threshold | Thresh | 0..1 | — | linear |
thickness | Thick | 1..?px | — | linear |
controls
| control | what it does |
|---|---|
| Thick | Thick is the rendered edge width in pixels (1..8 px, default 2). 1 px is the raw single-texel edge with no dilation; higher values dilate the mask by taking the max over a square neighbourhood of radius round(thickness)-1, fattening the strokes up to the set width. |
| Thresh | Thresh sets the normalised gradient magnitude (in luma-step units) at or above which a pixel counts as an edge. 0 = every pixel passes so the whole frame floods white; 1 = almost nothing passes (a near-full unit luma step is needed); default 0.2 catches salient contours without low-contrast texture noise. |
source
edges.ts on GitHub.