- Image
- Voro
Kernel FX
Purpose
Section titled “Purpose”Kernel FX is the fast authoring lane for pictures. You write a small Python function in the Numba-CUDA dialect, press Reload, and the engine compiles it to PTX and runs it natively on the GPU. The shipped Image effects such as Blur, Bitmosh and Ink Bleed are Kernel FX sources frozen with their presets; place Kernel FX itself to write your own.
Place Kernel FX from the Image view of the Voro menu, under Voro. The docked DAT kernel_fx_source is the source; the Kernel page points at it. Wire an image into image, edit the source, press Reload. The result is on out. Declare PARAMS rows at the top of the source and they become parameters on the node. Save the node as a custom module when it does what you want.
Inputs and outputs
Section titled “Inputs and outputs”image, required. The frame to process. Sources that declareINPUTScan take up to four ports.out. The processed frame. Sources that declareOUTPUTScan produce up to four.
Controls
Section titled “Controls”- Reload compiles the source. A failed compile keeps the last good kernel running and reports the error.
- Preset selects among the presets a source carries.
- Every
PARAMSrow you declare appears as its own parameter and applies live. Changing a declaration (ports, state, stages) takes a Reload.
- Python is the compiler only. Once compiled, the frame loop never touches it.
- The dialect ships a library of device functions (sampling, colour, hashing, noise) visible by name inside the kernel.
Examples
Section titled “Examples”These ship with Voro as examples. They may change between versions. To make one your own, place it and press Fork Module on its Voro page. You get an editable copy in your custom modules.
- BitmoshStateful block-codec datamosh instrument for motion trails, field-driven smears, slice corruption, and performable resets.
- BlurImage blur and field-directed warp presets.
- BrushstrokesPersistent physical brush painting of the input: budgeted marks, wet paint body, coloured runs and lift on a lit textured canvas.
- ContourMultiscale contour extraction with signed shaping, rings, facets, tangent segmentation and neutral image/matte outputs.
- DarkroomPhysical film exposure, multilayer development, print timing and gate transport without taking-lens or screen projection stages.
- Depth LensDepth-driven physical iris rendering with f-stop, aperture blades, bokeh weighting, longitudinal colour focus and veiling flare.
- Ink BleedSomething is laid onto a surface and the material takes it from there: the image is the ink (or the subject), and water, fibre and pigment do the rest.
- IsochromePhotoelastic polariscope: image structure becomes a transparent specimen under load and its stress shows as isochromatic colour between crossed polarizers.
- Latent ComposeVariance-preserving composition of one to four compatible latents.
- Latent SeedProcedural or input-conformed latent seed for a declared profile.
- Latent TransformProfile-preserving latent shaping.
- PrinterHalftone print press: screened ink impressions with print-rate hold, paper, ink and press imperfections.
- TeleloopAnalogue raster television loop: scanned signal, damage, feedback loop, tube and glass.
Inputs
-
imageimage required -
fieldimage
Outputs
-
outimage
Parameters
Section titled “Parameters”Kernel
op('kernel_fx').par.Scriptdat Authoring contract: params menu values are zero-based int32 indices in every lane; Script FX can resolve labels with ctx.menu_label(name).
- Default:
"" (Empty String)
op('kernel_fx').par.Reload - Default:
None