← Catalog
Edit Props (live)
TEXT
config
Source
42 linesimport React from 'react';
import { AbsoluteFill, interpolate, random, useCurrentFrame } from 'remotion';
interface Props {
text: string;
glitchIntensity: number;
}
export default function CrtGlitch({ text, glitchIntensity }: Props) {
const frame = useCurrentFrame();
const resolvedAt = 30;
const revealRatio = interpolate(frame, [0, resolvedAt], [0, 1], {
extrapolateRight: 'clamp',
});
const charsToShow = Math.floor(text.length * revealRatio);
const jitter = random(`j-${frame}`) * glitchIntensity * 4 - 2;
const display = text
.split('')
.map((ch, i) => (i < charsToShow ? ch : String.fromCharCode(0x2591)))
.join('');
return (
<AbsoluteFill
style={{
backgroundColor: '#000',
color: '#d0ffdc',
fontFamily: 'monospace',
fontSize: 68,
fontWeight: 700,
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
textShadow: `${jitter}px 0 0 #ff3399, ${-jitter}px 0 0 #33ccff`,
padding: 60,
}}
>
{display}
</AbsoluteFill>
);
}
Schema (Zod)
import { z } from 'zod';
export const Schema = z.object({
text: z.string().describe('$port:text Text to reveal through CRT scan'),
glitchIntensity: z.number().min(0).max(1).default(0.6),
});
CRT Glitch Reveal
crt_glitch_revealText reveal with CRT scan, chromatic-aberration jitter, and progressive character decrypt. Inspired by Lovis Odin's CRT-anim LoRA aesthetic.
Workflow Inputs (1)
- Text to reveal through CRT scan
textTEXTRequired
Config Fields (1)
glitchIntensity
Meta
- Updated
- 4/21/2026