reshaper

reshaper · output · schema v1

RESHAPER is a coordinate-remap video processor that emulates a CRT raster scan whose horizontal and vertical sweeps are patchable instead of fixed. For every output pixel it reads a horizontal coordinate from the X field and a vertical coordinate from the Y field (the red channel of each mono-video texture), then samples the Z source video at that remapped position. With X and Y unpatched it falls back to identity ramps (screen-u, screen-v), so Z passes straight through like a normal display. Feed X/Y from shaped ramps (e.g. SHAPEDRAMPS folds, triangles, or radial fields) and the source video is rebuilt inside that deformed coordinate space — folded, mirrored, or circularised. On top of the field remap, the source's own brightness at each screen pixel pushes the lookup: luma above mid-grey lifts, below pushes back, scaled by X Disp / Y Disp — the classic Rutt/Etra "raised terrain" displacement. The final color is multiplied by Intensity and the R/G/B tint. Usage: patch a video into Z for a quick scanline display; drive X and/or Y from a ramp generator to warp it, or just dial X Disp / Y Disp for a luma-relief effect from Z alone. Output is a standard video texture, so chain it downstream (e.g. LINES into RESHAPER into MONOGLITCH). The card shows a live preview of the remapped output; in hide-controls mode the preview becomes a resizable screen (drag the bottom-right corner; double-click the frame to restore defaults).

RESHAPER is a coordinate-remap video processor that emulates a CRT raster scan whose horizontal and vertical sweeps are patchable instead of fixed. For every output pixel it reads a horizontal coordinate from the X field and a vertical coordinate from the Y field (the red channel of each mono-video texture), then samples the Z source video at that remapped position. With X and Y unpatched it falls back to identity ramps (screen-u, screen-v), so Z passes straight through like a normal display. Feed X/Y from shaped ramps (e.g. SHAPEDRAMPS folds, triangles, or radial fields) and the source video is rebuilt inside that deformed coordinate space — folded, mirrored, or circularised. On top of the field remap, the source's own brightness at each screen pixel pushes the lookup: luma above mid-grey lifts, below pushes back, scaled by X Disp / Y Disp — the classic Rutt/Etra "raised terrain" displacement. The final color is multiplied by Intensity and the R/G/B tint. Usage: patch a video into Z for a quick scanline display; drive X and/or Y from a ramp generator to warp it, or just dial X Disp / Y Disp for a luma-relief effect from Z alone. Output is a standard video texture, so chain it downstream (e.g. LINES into RESHAPER into MONOGLITCH). The card shows a live preview of the remapped output; in hide-controls mode the preview becomes a resizable screen (drag the bottom-right corner; double-click the frame to restore defaults).

the faceplate

reshaperxmono-videoymono-videozvideointensitycvxDispcvyDispcvoutvideoaudiocvgatepitch
6 inputs · 1 outputs · 6 params

inputs

idcablewhat it does
xmono-videoX — mono-video horizontal coordinate field. Its red channel replaces the linear horizontal scan ramp, so each output pixel reads its source u from this texture. Unpatched, it defaults to the identity ramp (no horizontal remap); patch a shaped ramp here to fold, mirror, or warp the image along X.
mono video stream
ymono-videoY — mono-video vertical coordinate field. Its red channel replaces the linear vertical scan ramp, supplying the source v for each output pixel. Unpatched, it defaults to the identity ramp (no vertical remap); patch a shaped ramp here to deform the image along Y.
mono video stream
zvideoZ — source video to be remapped (polymorphic video; mono-video, image, or keys upcast in cleanly). It is sampled at the remapped (X, Y) coordinate. Unpatched, RESHAPER shows flat mid-grey rather than black so a cold-spawned card isn't a void.
RGB video stream
intensitycvintensity — CV input that modulates the Intensity control (linear), scaling the output brightness/contribution of the remapped video.
control voltage (CV); modulates intensity (additive offset — ±1 CV sweeps the full range, centered on the knob)
xDispcvxDisp — CV input that modulates the X Disp control (linear), driving the horizontal luma-displacement amount from automation or another module.
control voltage (CV); modulates xDisp (additive offset — ±1 CV sweeps the full range, centered on the knob)
yDispcvyDisp — CV input that modulates the Y Disp control (linear), driving the vertical luma-displacement amount from automation or another module.
control voltage (CV); modulates yDisp (additive offset — ±1 CV sweeps the full range, centered on the knob)

outputs

idcablewhat it does
outvideoout — the remapped RGB video (the rendered FBO texture, same image shown in the on-card preview). Chain it into any downstream video module.
RGB video stream

params

idlabelrangedefaultcurve
intensityIntensity0..2linear
xDispX Disp-1..1linear
yDispY Disp-1..1linear
tintRTint R0..1linear
tintGTint G0..1linear
tintBTint B0..1linear

controls

controlwhat it does
IntensityIntensity (0..2, default 1) — overall output gain on the remapped video; 0 blacks the output, 1 is unity, above 1 boosts toward clipping (the result is clamped).
Tint BTint B (0..1, default 1) — multiplies the blue channel of the output; lower to remove blue from the tint.
Tint GTint G (0..1, default 1) — multiplies the green channel of the output; lower to remove green from the tint.
Tint RTint R (0..1, default 1) — multiplies the red channel of the output; lower to remove red from the tint.
X DispX Disp (-1..1, default 0) — horizontal luma displacement. Each pixel's source u is shifted by (sourceLuma − 0.5) × this amount, so bright areas of Z push one way and dark areas the other (Rutt/Etra raised-terrain); 0 disables horizontal displacement.
Y DispY Disp (-1..1, default 0) — vertical luma displacement. Each pixel's source v is shifted by (sourceLuma − 0.5) × this amount, lifting bright pixels and pushing dark ones vertically; 0 disables vertical displacement.

source

reshaper.ts on GitHub.

Generated from packages/web/src/lib/{audio,video}/module-registry.ts · repo