API & MCP

Everything a person can do on CRT & VHS Effect Generator, a program or AI agent can do with the same inputs and get the identical result.

HTTP API

CRT & VHS Effect Generator

Render a still or a short seeded loop with CRT scanlines, aperture-grille, shadow or slot masks, curvature and bloom, or VHS chroma bleed, tracking noise, head switching and line jitter. Optionally quantise to a retro palette first. Download PNG, animated GIF and APNG.

Inputs of CRT & VHS Effect Generator
FieldTypeDefaultDescription
image (required)file—Image (PNG, JPEG or WebP)
effectselect (crt, vhs)"crt"Display effect
resolutionselect (custom, gb, cga, ega, c64-hires, c64-multicolor, nes, mac)"custom"Machine resolution
widthinteger320Working width (px)
fitselect (cover, contain, stretch)"cover"Image fit for machine resolutions
scaleinteger3Output scale (whole pixels)
scanlinesinteger70Scanline strength (%)
maskselect (none, aperture, shadow, slot)"aperture"Phosphor mask
maskStrengthinteger35Mask strength (%)
curvatureinteger30Screen curvature (%)
bloominteger35Bloom (%)
bloomRadiusinteger4Bloom radius (source pixels)
vignetteinteger30Vignette (%)
crtNoiseinteger10CRT grain (%)
flickerinteger10Frame flicker (%)
lumaBlurinteger40Luma softness (%)
sharpeninteger35Edge ringing (%)
chromaBleedinteger55Chroma bleed (%)
chromaShiftnumber3Chroma delay (px at 640 px width)
tapeSaturationinteger85Tape colour saturation (%)
trackinginteger35Tracking error (%)
trackingPositioninteger75Tracking band position (% of height)
rollnumber4Tracking roll per frame (% of height)
headSwitchinteger45Head-switching noise (%)
jitterinteger30Line jitter (%)
tapeNoiseinteger30Tape noise (%)
seedinteger1977Noise seed
framesinteger1Animation frames
fpsinteger12Animation frame rate (FPS)
paletteselect (none, mono, gb-green, gb-gray, cga-0-low, cga-0-high, cga-1-low, cga-1-high, cga-5-high, cga-16, ega-64, c64, nes, rgb-8, custom)"none"Retro palette
customPalettetextarea—Custom palette (HEX list, GPL or JASC-PAL)
ditherselect (none, bayer2, bayer4, bayer8, blue-noise, floyd, atkinson, jarvis, stucki, burkes, sierra3, sierra2, sierra-lite)"bayer4"Dithering method
strengthnumber100Dither strength (%)
serpentinebooleantrueSerpentine scanning for error diffusion
matchselect (srgb, redmean, linear)"srgb"Colour matching
cellsselect (none, c64-hires, c64-multicolor, nes)"none"Attribute cells
brightnessnumber0Brightness
contrastnumber0Contrast
gammanumber1Gamma
saturationnumber100Saturation (%)

Every result contains

inputs (normalised, defaults applied), summary, result (validated against the published schema), units, assumptions, sources, warnings, computedAt and links.

MCP (Model Context Protocol)

{
  "mcpServers": {
    "flipline-crt-vhs-filter": { "type": "http", "url": "https://fliplinecrtvhsfilter.usefulweb.app/mcp" }
  }
}