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 (
);
}