output

videoOut · output

output is the screen sink of the video chain — the card body itself is the live picture. Whatever video signal you patch into it is copied frame-by-frame into this card's own framebuffer (FBO) and blitted onto the visible canvas, aspect-fit (the engine render is letterboxed into the card; the engine is 4:3 by default). The shader is a plain texture copy: with a signal patched it shows the input verbatim; with nothing patched it draws a static idle pattern — a dark navy field with a subtle vertical brightness gradient (the blue channel rises toward one edge) — so you can tell the card is alive while you drag a cable in. The pattern does not animate; there is no time uniform, so it's a fixed gradient, not a moving sweep. Each output card pulls its OWN input via engine.blitOutputToDrawingBuffer(nodeId) (multiple outputs in a rack each show their own feed, no last-one-wins coupling). Use it as the monitor/projector at the end of a video patch — or mid-chain, since it passes its input straight through. In the rack it is a compact tile showing a live thumbnail of its own feed; the tile itself is not resizable. To see the picture bigger, right-click it: DETACH DISPLAY floats the output free of the rack as its own window — resizable by its bottom-right corner, draggable by its title bar, carrying no patch jacks or cables — and RE-ATTACH puts it back. The floating window is owned by the module, so deleting the module removes it and deleting the floating window removes the module. Its size and position live in node.data and sync to collaborators via Y.Doc. Expand the module to its faceplate for the same picture plus the display menu: true fullscreen, in-app full frame, detach, or present-on-a-second-display; right-clicking the picture anywhere opens that menu too. DELETING an output that sits mid-chain, with both its input and its output patched, re-joins the module feeding it directly to whatever it was feeding — so pulling a monitor out of a chain leaves the chain intact rather than cut in two. An output patched to itself is the one shape that cannot be re-joined, and it is deleted plainly.

output is the screen sink of the video chain — the card body itself is the live picture. Whatever video signal you patch into it is copied frame-by-frame into this card's own framebuffer (FBO) and blitted onto the visible canvas, aspect-fit (the engine render is letterboxed into the card; the engine is 4:3 by default). The shader is a plain texture copy: with a signal patched it shows the input verbatim; with nothing patched it draws a static idle pattern — a dark navy field with a subtle vertical brightness gradient (the blue channel rises toward one edge) — so you can tell the card is alive while you drag a cable in. The pattern does not animate; there is no time uniform, so it's a fixed gradient, not a moving sweep. Each output card pulls its OWN input via engine.blitOutputToDrawingBuffer(nodeId) (multiple outputs in a rack each show their own feed, no last-one-wins coupling). Use it as the monitor/projector at the end of a video patch — or mid-chain, since it passes its input straight through. In the rack it is a compact tile showing a live thumbnail of its own feed; the tile itself is not resizable. To see the picture bigger, right-click it: DETACH DISPLAY floats the output free of the rack as its own window — resizable by its bottom-right corner, draggable by its title bar, carrying no patch jacks or cables — and RE-ATTACH puts it back. The floating window is owned by the module, so deleting the module removes it and deleting the floating window removes the module. Its size and position live in node.data and sync to collaborators via Y.Doc. Expand the module to its faceplate for the same picture plus the display menu: true fullscreen, in-app full frame, detach, or present-on-a-second-display; right-clicking the picture anywhere opens that menu too. DELETING an output that sits mid-chain, with both its input and its output patched, re-joins the module feeding it directly to whatever it was feeding — so pulling a monitor out of a chain leaves the chain intact rather than cut in two. An output patched to itself is the one shape that cannot be re-joined, and it is deleted plainly.

the faceplate

outputinvideooutvideoaudiocvgatepitch
1 inputs · 1 outputs · 0 params

inputs

idcablewhat it does
invideoThe video signal to display. Polymorphic video input (type video) — it accepts a full video signal, and the engine implicitly upcasts narrower video-domain sources too (keys → mono-video → video, and image → video), so you can wire essentially any video output into it. With nothing patched, the shader's uHasInput branch draws the static navy idle gradient instead of black.
RGB video stream

outputs

idcablewhat it does
outvideoPass-through of the input. Each frame the card's draw renders its input texture into its own FBO, and out exposes that FBO's texture — effectively a clean copy of in (input → FBO → out). Wire it onward to chain a monitor into downstream video effects without breaking the signal flow; with no input it carries the static idle pattern.
RGB video stream

source

video-out.ts on GitHub.

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