import React from 'react'; import { AbsoluteFill, Audio, Img, OffthreadVideo, Sequence, interpolate, spring, useCurrentFrame, useVideoConfig, } from 'remotion'; const C = { carbon: '#020101', paper: '#FDFBFA', red: '#DC222D', blue: '#2148FF', voltage: '#D7FF1F', mist: '#D8D8D4', }; const clamp = {extrapolateLeft: 'clamp' as const, extrapolateRight: 'clamp' as const}; const Signal = ({color = C.red, width = 320}: {color?: string; width?: number}) => { const frame = useCurrentFrame(); const draw = interpolate(frame, [4, 26], [0, 1], clamp); return (
); }; const Meta = ({light = false}: {light?: boolean}) => (
PHASE OBJECT LOS ANGELES / 2027
); const Intro = ({asset}: {asset: (p: string) => string}) => { const frame = useCurrentFrame(); const {fps} = useVideoConfig(); const logoY = interpolate(frame, [0, 26], [26, 0], clamp); const logoOpacity = interpolate(frame, [0, 18], [0, 1], clamp); const detailOpacity = interpolate(frame, [18, 42], [0, 1], clamp); const exit = interpolate(frame, [68, 84], [0, -110], clamp); const node = spring({frame: frame - 10, fps, config: {damping: 16, stiffness: 170}}); return (
Ideas should
change shape.
SEP 23—26, 2027ROW DTLA
Festival of image, sound
and machine culture
); }; const WordStack = ({lines, accent = C.red, align = 'left'}: {lines: string[]; accent?: string; align?: 'left'|'right'}) => { const frame = useCurrentFrame(); const {fps} = useVideoConfig(); return (
{lines.map((line, i) => { const s = spring({frame: frame - i * 5, fps, config: {damping: 18, stiffness: 150}}); const y = interpolate(s, [0, 1], [74, 0]); return
{line}
; })}
); }; const PageOne = () => { const frame = useCurrentFrame(); const panel = interpolate(frame, [0, 18], [100, 0], clamp); const out = interpolate(frame, [63, 78], [0, -110], clamp); return (
A new cultural frequency
); }; const PageTwo = () => { const frame = useCurrentFrame(); const reveal = interpolate(frame, [0, 20], [100, 0], clamp); const out = interpolate(frame, [66, 82], [0, 100], clamp); return (
18,000 attendees
120+ artists / 45 countries
60 installations / 30 premieres
); }; const PageThree = () => { const frame = useCurrentFrame(); const slice = interpolate(frame, [0, 22], [-105, 0], clamp); const opacity = interpolate(frame, [0, 10, 66, 80], [0, 1, 1, 0], clamp); return (
8 stages
one shared
signal
); }; const PageFour = () => { const frame = useCurrentFrame(); const {fps} = useVideoConfig(); const grow = spring({frame, fps, config: {damping: 18, stiffness: 90}}); const fade = interpolate(frame, [0, 12, 76, 90], [0, 1, 1, 0], clamp); return (
SEP 23—26 / ROW DTLA
); }; const EndCard = ({asset}: {asset: (p: string) => string}) => { const frame = useCurrentFrame(); const wipe = interpolate(frame, [0, 12], [100, 0], clamp); const details = interpolate(frame, [73, 94], [0, 1], clamp); return (
September 23—26, 2027 Ideas should change shape. ROW DTLA / Los Angeles
); }; export default function PhaseObjectLaunch({asset}: {asset: (p: string) => string}) { const frame = useCurrentFrame(); const musicVolume = interpolate(frame, [0, 10, 486, 527], [0, 0.9, 0.9, 0], clamp); return (