reshaper
reshaper · output · schema v1RESHAPER 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
inputs
| id | cable | what it does |
|---|---|---|
x | mono-video | X — 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 |
y | mono-video | Y — 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 |
z | video | Z — 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 |
intensity | cv | intensity — 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) |
xDisp | cv | xDisp — 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) |
yDisp | cv | yDisp — 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
| id | cable | what it does |
|---|---|---|
out | video | out — 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
| id | label | range | default | curve |
|---|---|---|---|---|
intensity | Intensity | 0..2 | — | linear |
xDisp | X Disp | -1..1 | — | linear |
yDisp | Y Disp | -1..1 | — | linear |
tintR | Tint R | 0..1 | — | linear |
tintG | Tint G | 0..1 | — | linear |
tintB | Tint B | 0..1 | — | linear |
controls
| control | what it does |
|---|---|
| Intensity | Intensity (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 B | Tint B (0..1, default 1) — multiplies the blue channel of the output; lower to remove blue from the tint. |
| Tint G | Tint G (0..1, default 1) — multiplies the green channel of the output; lower to remove green from the tint. |
| Tint R | Tint R (0..1, default 1) — multiplies the red channel of the output; lower to remove red from the tint. |
| X Disp | X 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 Disp | Y 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.