raea is the engine. void is the Mac app you talk to. Ask it for a reel, an app promo or a game, and it writes the piece as code, renders it, checks every frame and the sound, then plays it for you.

Early access opens in small batches.

What you can make with raea.

Four ways in, one engine underneath. Everything shown here was made with it.

Cut by what was said.

void transcribes every take and pins each cut, caption and card to the words. Move a line in the script and everything tied to it moves too, then only the frames that changed render again.

More on video editing
2 percent of creative ▾
❯
CJ reelvideo
0:000:22

Both are the approved renders. The conversations are shortened; the code in Files is as void wrote it.

A game you can only watch isn't finished.

Games made in void run live on its stage at 120 frames a second, and the keys are yours. Each frame is one step from the keys pressed so far, so a recorded play renders back to the same pixels.

More on game development
Game of ponggameframe 000 · 120 fps
——

state(f) = step(state(f − 1), keys(f)). Record the keys and the play renders back to the same pixels.

The engine inside the app.

void is a Rust desktop app, and raea draws its stage: video, games, 3D and documents on the GPU, in the app's own window. The UGC Pro Mac app is built on raea the same way, and the same code runs on the iPhone.

More on desktop apps
  1. 1

    The app

    void's interface: Rust and Dioxus, the terminal and the chrome around the stage

  2. 2

    raea's stage

    a native layer in the app's window: video, games, 3D and documents, drawn by the engine

  3. 3

    raea engine

    Bevy on the GPU. The same code drives the iPhone apps

raea runs without a screen.

Render from the command line or a server. Let an agent drive void through its MCP server. Write compositions yourself with @raea/motion, the TypeScript SDK void writes in.

More on headless
~/raea/react
$

What happens after you ask.

The CJ reel, from her raw take to the approved cut, the way raea made it.

  1. 1It reads the take.

    raea transcribes the footage word by word, with each word's start time. CJ's 75-second take became 247 timed words to cut and cue against.

    cj.mov · raw take · 0:31.9

    CJ's raw take, before the edit

    cj.words.json · 247 words

    Back29.39to29.55Apps29.63Flyer30.03They30.59found30.83that31.15just31.39two31.63percent31.87of32.19creative32.35ends32.99up33.23capturing33.39about33.87half34.11of34.35the34.51spend34.67and35.15the35.31top35.4710%35.71
  2. 2It writes the edit as code.

    The cut, the stat card and the captions are one React file. The card's “2%” is pinned to the moment she says “two percent”, so if the cut moves, the card moves with it.

    spaces/cj-reel/edit.tsx · line 399

    <StatCard from={89} y={236} h={440}
    big="2%" bigW={321} bigPop={cued("two percent")}
    lineSize={70} lines={[
    { text: "of creative", color: WHITE, at: 91 },
    { text: "captures", color: GREY, at: 93 },
    { text: "half the spend", color: LIME, at: cued("half") },
    ]}
    bars={[
    { label: "share of creative", value: "2%", at: 89 + 8 },
    { label: "share of spend", value: "~50%", at: cued("half") },
    ]} />

    cued("two percent") → 31.63 s in the take · cued("half") → 34.11 s

  3. 3It renders every frame.

    672 frames at 30 a second, on the Mac's GPU, and the same code renders on the iPhone. Change a line and only the frames that line touches render again.

    672 frames · 30 fps · 1080 × 1920

    Frame 1 of the reel
    Frame 2 of the reel
    Frame 3 of the reel
    Frame 4 of the reel
    Frame 5 of the reel
    Frame 6 of the reel
    Frame 7 of the reel
    Frame 8 of the reel
    Frame 9 of the reel
    Frame 10 of the reel
    Frame 11 of the reel
    Frame 12 of the reel

    edit: the card's bar · 2 of 12 shown frames render again

  4. 4It checks its own work.

    Before you see anything, raea looks at the frames, checks every caption against her voice, and measures the mix. This one came out at −14.1 LUFS, on target.

    the mix · 22.4 s

    −14.1 LUFS

    • ✓lookevery cut and card, frame by frame
    • ✓checkeach caption within one frame of her voice
    • ✓measure−14.1 LUFS integrated, target −14

What would you make first?

Tell void, and leave your email. Early access opens in small batches, and we'll write when yours is ready.

Early access opens in small batches.