thermal-rgb-contour-scan
Any frame turned into a glowing false-colour CRT thermal scanner — dense horizontal RGB scan-contours that bend topographically around the hidden shape of the image.
What it’s for
thermal-rgb-contour-scan is what a picture looks
like through a synthetic medical scanner: a thermal-imaging
false-colour field overlaid with stacked horizontal red, green
and blue scan-lines that bend, compress and wrap around bright
structure like topographic elevation contours. Part oscilloscope
contour map, part RGB shadow-mask CRT, part early
computer-vision visualization — hypnotic and controlled,
not chaotic.
Reach for it when a shot needs to read as instrument
output rather than footage: a face becoming a topographic
skull, a silhouette emerging from scanline displacement, a logo
rendered as energized scanner traces. It operates purely on
luminance and edges — never semantic content — so it
works on any source: video, AI images, text, particles. The
master strength dials it from a faint scan overlay
to a full glowing heatmap that has eaten the frame.
What it does to a frame
- Height field — an 8-tap luminance ring plus a 3×3 Sobel edge pass turn the source into a scalar elevation field: bright = raised terrain, dark = valleys and signal voids.
- False-colour thermal map — a smooth 9-stop palette (black → deep blue → electric blue → cyan → green → yellow → orange → red → white-hot) with no posterisation.
- RGB contour bands — dense horizontal stripes cycling red → green → blue → dark-gap, soft and phosphor-glowing.
- Field displacement — the height field warps the band coordinate so contours curve and compress around bright regions and fall inward into black holes.
- Edge-outline glow — a cyan→yellow Sobel rim with RGB fringe energizes silhouettes like scanner traces.
- CRT mask — pixel-locked RGB aperture grille, scanline modulation, barrel curvature and vignette — displayed on old hardware, not clean vector graphics.
- Temporal motion — slow vertical scan drift, subtle horizontal wobble, per-channel phase, luminance shimmer and tiny horizontal-sync instability.
- Analog persistence — single-pass phosphor bloom and frame-feedback afterimage trails (triple-braked against runaway).
Where it lives in the app
Canvas effect tray, group Signature shaders. A GL post-process overlay — it runs after the ASCII pipeline on the rendered canvas, so it composites over any layer stack. It reads strongest on content with clear bright structure against dark areas, because the contour displacement needs topology to bend around. Gate it with a mask layer so only the diegetic screen or subject becomes a thermal scan while the rest of the frame stays intact.
Parameters
| Key | Range | Default | Effect |
|---|---|---|---|
strength | 0–1 | 0.85 | Master gate — crossfade from untouched source to full scan |
stripeDensity | 20–600 | 220 | Horizontal scan-band lines per screen height |
stripeThickness | 0.05–0.95 | 0.42 | Lit duty fraction of each band |
stripeGlow | 0–1 | 0.6 | Phosphor floor / soft band edges |
displacementStrength | 0–1 | 0.7 | How hard contours bend around bright structure |
displacementRadius | 1–100 % | 18 | Height-field sampling radius (→ UV ring) |
thermalPaletteStrength | 0–1 | 0.85 | False-colour vs luma-tint mix |
edgeGlow | 0–1 | 0.55 | Cyan→yellow Sobel rim gain |
rgbSeparation | 0–1 | 0.4 | Per-channel phase + chroma split |
crtMaskStrength | 0–1 | 0.5 | Aperture-grille + scanline mask depth |
scanDriftSpeed | 0–4 | 1.0 | Vertical scan drift / wobble speed (0 freezes) |
contourSharpness | 0–1 | 0.6 | Band edge crispness |
bloomAmount | 0–1 | 0.45 | Single-pass phosphor bloom gain |
vignetteAmount | 0–1 | 0.5 | Barrel curvature + vignette darkening |
feedbackPersistence | 0–0.96 | 0.55 | Frame-feedback afterimage weight (hard-capped) |
Pairs well with
- thermal-refraction — mirage heat-warp under the scan, so the contours themselves appear to shimmer with heat.
- phosphor — deepens the persistence into a scanner that has been running for hours.
- palette quantize — locks the false-colour so the heatmap reads as one specific instrument rather than a generic gradient.
- mask layers — scan only the in-frame monitor, subject or lower third while the rest stays intact.